From fc24998da41f8aea70caeae9ca1b8e05cb017b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Podg=C3=B3rski?= Date: Fri, 15 May 2020 19:03:13 +0200 Subject: [PATCH] WASM support (#24) Never compiled with JS and presented on documentation page Co-authored-by: smaludzi --- CMakeLists.txt | 23 +- back/dlcache.c | 41 +- back/emit.c | 46 +- back/fficall.c | 3 + back/fficall.h | 4 + back/libvm.c | 8 +- back/nev.c | 3 + back/program.c | 3 +- back/utils.c | 14 +- back/vm.c | 282 +- back/vm.h | 2 +- docs/Serpiente_alquimica.jpg | Bin 31791 -> 0 bytes docs/_config.yml | 11 - docs/brainf.md | 212 - docs/btree.md | 213 - docs/btree.png | Bin 21133 -> 0 bytes docs/btree.svg | 243 - docs/btree_del.png | Bin 17502 -> 0 bytes docs/btree_del.svg | 219 - docs/codemirror.css | 349 + docs/codemirror.js | 9833 ++++ docs/contact.md | 5 - docs/curradd.md | 63 - docs/custom_theme/github.min.css | 1 - docs/custom_theme/highlight.min.js | 9 - docs/custom_theme/install.sh | 6 - docs/custom_theme/main.html | 9 - docs/custom_theme/never.js | 140 - docs/custom_theme/never.min.js | 1 - docs/ffi.md | 136 - docs/fizzbuzz.md | 46 - docs/index.md | 1511 - docs/never-cm.js | 172 + docs/never-lang.js | 73290 +++++++++++++++++++++++++++ docs/never-web.md | 351 + docs/perceptron.md | 385 - docs/perceptron.png | Bin 18966 -> 0 bytes docs/perceptron.svg | 406 - docs/pitria.md | 63 - docs/qsort.md | 177 - docs/rodcut.md | 130 - docs/tailrec.md | 211 - docs/wave.md | 190 - docs/wave_small.gif | Bin 652872 -> 0 bytes front/constred.c | 6 +- front/gencode.c | 8 +- front/parser.y | 1 - front/scanner.h | 3 + front/scanner.l | 5 + front/strutil.c | 4 +- front/tcforin.c | 4 +- front/tcheckarr.c | 14 +- front/tciflet.c | 4 +- front/tcmatch.c | 34 +- front/typecheck.c | 182 +- main.c | 28 +- mkdocs.yml | 25 - never-init.js | 4 + test/test_ffi.c | 4 + 59 files changed, 84407 insertions(+), 4730 deletions(-) delete mode 100644 docs/Serpiente_alquimica.jpg delete mode 100644 docs/_config.yml delete mode 100644 docs/brainf.md delete mode 100644 docs/btree.md delete mode 100644 docs/btree.png delete mode 100644 docs/btree.svg delete mode 100644 docs/btree_del.png delete mode 100644 docs/btree_del.svg create mode 100644 docs/codemirror.css create mode 100644 docs/codemirror.js delete mode 100644 docs/contact.md delete mode 100644 docs/curradd.md delete mode 100644 docs/custom_theme/github.min.css delete mode 100644 docs/custom_theme/highlight.min.js delete mode 100755 docs/custom_theme/install.sh delete mode 100644 docs/custom_theme/main.html delete mode 100644 docs/custom_theme/never.js delete mode 100644 docs/custom_theme/never.min.js delete mode 100644 docs/ffi.md delete mode 100644 docs/fizzbuzz.md delete mode 100644 docs/index.md create mode 100644 docs/never-cm.js create mode 100644 docs/never-lang.js create mode 100644 docs/never-web.md delete mode 100644 docs/perceptron.md delete mode 100644 docs/perceptron.png delete mode 100644 docs/perceptron.svg delete mode 100644 docs/pitria.md delete mode 100644 docs/qsort.md delete mode 100644 docs/rodcut.md delete mode 100644 docs/tailrec.md delete mode 100644 docs/wave.md delete mode 100644 docs/wave_small.gif delete mode 100644 mkdocs.yml create mode 100644 never-init.js diff --git a/CMakeLists.txt b/CMakeLists.txt index e4aab0f0..a91d1f5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.0.2) project(never) enable_language(C) @@ -29,7 +29,6 @@ if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL endif(ENABLE_COVERAGE) endif () - file(GLOB SRC "back/*.c" "front/*.c" @@ -42,11 +41,29 @@ add_library(nev STATIC ${FLEX_scanner_OUTPUTS} ${SRC} ) -target_link_libraries(nev m dl ffi) + +if (WASM_ONLY OR JS_ONLY) + target_link_libraries(nev m dl) +else() + target_link_libraries(nev m dl ffi) +endif() add_executable(${CMAKE_PROJECT_NAME} main.c getopt.c) target_link_libraries(${CMAKE_PROJECT_NAME} nev) +if(WASM_ONLY) + message(STATUS "Setting compilation target to native WASM") + set(CMAKE_EXECUTABLE_SUFFIX ".wasm") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG -DNO_FFI") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_FLAGS "-s WASM=1 -s EXPORTED_FUNCTIONS='[_never]' -s EXTRA_EXPORTED_RUNTIME_METHODS='[ccall, cwrap]'") +endif(WASM_ONLY) + +if(JS_ONLY) + message(STATUS "Setting compilation target to native JavaScript") + set(CMAKE_EXECUTABLE_SUFFIX ".js") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG -DNO_FFI") + set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_FLAGS "-s WASM=0 -s EXPORTED_FUNCTIONS='[_never]' -s EXTRA_EXPORTED_RUNTIME_METHODS='[ccall, cwrap]' --pre-js ../never-init.js") +endif(JS_ONLY) # test enable_testing() diff --git a/back/dlcache.c b/back/dlcache.c index 8f9211eb..7e213074 100644 --- a/back/dlcache.c +++ b/back/dlcache.c @@ -11,7 +11,7 @@ dlcache_entry * dlcache_entry_new(unsigned int size) { dlcache_entry * entry = (dlcache_entry *)malloc(sizeof(dlcache_entry) * size); memset(entry, 0, sizeof(dlcache_entry) * size); - + return entry; } @@ -21,14 +21,14 @@ void dlcache_entry_delete(dlcache_entry * entries) } void dlcache_entry_add_dl( - dlcache_entry * entries, + dlcache_entry * entries, unsigned int size, const char * dl_name, void * handle) { unsigned int times = 0; unsigned int index = 0; - + index = hash_string(dl_name) % size; while (entries[index].dl_name != NULL) { @@ -42,7 +42,7 @@ void dlcache_entry_add_dl( entries[index].dl_name = dl_name; entries[index].handle = handle; } - + dlcache_entry * dlcache_entry_lookup( dlcache_entry * entries, unsigned int size, @@ -50,7 +50,7 @@ dlcache_entry * dlcache_entry_lookup( { unsigned int times = 0; unsigned int index = 0; - + index = hash_string(dl_name) % size; while (entries[index].dl_name != NULL) { @@ -58,14 +58,14 @@ dlcache_entry * dlcache_entry_lookup( { return &entries[index]; } - + index = (index + 1) % size; if (times++ > size) { return NULL; } } - + return NULL; } @@ -73,7 +73,7 @@ void dlcache_entry_resize(dlcache_entry * entries, unsigned int size, dlcache_entry * entries_new, unsigned int size_new) { unsigned int i = 0; - + for (i = 0; i < size; i++) { if (entries[i].dl_name != NULL) @@ -96,16 +96,19 @@ dlcache * dlcache_new(unsigned int size) { dlcache * cache = (dlcache *)malloc(sizeof(dlcache)); dlcache_entry * entries = dlcache_entry_new(size); - void * host_handle = NULL; - + cache->size = size; cache->count = 0; cache->entries = entries; +#ifndef NO_FFI + void * host_handle = NULL; host_handle = ffi_decl_get_handle("host"); dlcache_add_dl(cache, "host", host_handle); - return cache; +#else + return cache; +#endif } void dlcache_delete(dlcache * cache) @@ -113,7 +116,7 @@ void dlcache_delete(dlcache * cache) if (cache->entries != NULL) { unsigned int i = 0; - + for (i = 0; i < cache->size; i++) { if (cache->entries[i].handle != NULL) @@ -121,7 +124,7 @@ void dlcache_delete(dlcache * cache) dlclose(cache->entries[i].handle); } } - + dlcache_entry_delete(cache->entries); } free(cache); @@ -133,7 +136,7 @@ void dlcache_add_dl(dlcache * cache, const char * dl_name, void * handle) { return; } - + dlcache_entry_add_dl(cache->entries, cache->size, dl_name, handle); cache->count++; @@ -160,6 +163,7 @@ void * dlcache_get_handle(dlcache * cache, const char * dl_name) } else { +#ifndef NO_FFI handle = ffi_decl_get_handle(dl_name); if (handle == NULL) { @@ -167,8 +171,9 @@ void * dlcache_get_handle(dlcache * cache, const char * dl_name) return NULL; } dlcache_add_dl(cache, dl_name, handle); +#endif } - + return handle; } @@ -178,10 +183,10 @@ void dlcache_resize(dlcache * cache) { unsigned int size_new = cache->size * 2; dlcache_entry * entries_new = dlcache_entry_new(size_new); - + dlcache_entry_resize(cache->entries, cache->size, entries_new, size_new); dlcache_entry_delete(cache->entries); - + cache->size = size_new; cache->entries = entries_new; } @@ -190,7 +195,7 @@ void dlcache_resize(dlcache * cache) void dlcache_print(dlcache * cache) { unsigned int i = 0; - + for (i = 0 ; i < cache->size; i++) { dlcache_entry_print(&cache->entries[i]); diff --git a/back/emit.c b/back/emit.c index 590c5d96..7e6a261e 100644 --- a/back/emit.c +++ b/back/emit.c @@ -197,7 +197,7 @@ int func_freevar_emit(freevar * value, int stack_level, module * module_value, switch (value->src.type) { case FREEVAR_UNKNOWN: - print_error_msg(0, "unknown freevar %s during emit\n", value->id); + print_error_msg(0, "unknown freevar %s during emit", value->id); assert(0); break; case FREEVAR_PARAM: @@ -421,7 +421,7 @@ int expr_id_emit(expr * value, int stack_level, module * module_value, { case ID_TYPE_UNKNOWN: print_error_msg(value->line_no, - "not recognized id, at this stage it is very bad\n"); + "not recognized id, at this stage it is very bad"); assert(0); break; case ID_TYPE_LOCAL: @@ -505,7 +505,7 @@ int expr_neg_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot neg type %s\n", + print_error_msg(value->line_no, "cannot neg type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -576,7 +576,7 @@ int expr_add_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot add type %s\n", + print_error_msg(value->line_no, "cannot add type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -617,7 +617,7 @@ int expr_sub_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot sub type %s\n", + print_error_msg(value->line_no, "cannot sub type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -674,7 +674,7 @@ int expr_mul_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot mul type %s\n", + print_error_msg(value->line_no, "cannot mul type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -791,7 +791,7 @@ int expr_not_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot not type %s\n", + print_error_msg(value->line_no, "cannot not type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -868,7 +868,7 @@ int expr_ass_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot assign type %s\n", + print_error_msg(value->line_no, "cannot assign type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -2135,7 +2135,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot div type %s\n", + print_error_msg(value->line_no, "cannot div type %s", comb_type_str(value->comb.comb)); assert(0); } @@ -2157,7 +2157,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot mod type %s %s\n", + print_error_msg(value->line_no, "cannot mod type %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2188,7 +2188,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot lt different types %s %s\n", + print_error_msg(value->line_no, "cannot lt different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2219,7 +2219,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot gt different types %s %s\n", + print_error_msg(value->line_no, "cannot gt different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2251,7 +2251,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, { *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot lte different types %s %s\n", + "cannot lte different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2283,7 +2283,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, { *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot gte different types %s %s\n", + "cannot gte different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2324,7 +2324,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, case ENUMTYPE_TYPE_RECORD: *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot compare enum record type\n"); + "cannot compare enum record type"); assert(0); break; } @@ -2384,7 +2384,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot eq different types %s %s\n", + print_error_msg(value->line_no, "cannot eq different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2426,7 +2426,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, case ENUMTYPE_TYPE_RECORD: *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot compare enum record type\n"); + "cannot compare enum record type"); assert(0); break; } @@ -2487,7 +2487,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, { *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot neq different types %s %s\n", + "cannot neq different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); assert(0); @@ -2536,7 +2536,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, { *result = EMIT_FAIL; print_error_msg(value->line_no, - "cannot deref type %s\n", + "cannot deref type %s", comb_type_str(value->array_deref.array_expr->comb.comb)); assert(0); } @@ -2626,7 +2626,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot convert type %s to float\n", + print_error_msg(value->line_no, "cannot convert type %s to float", comb_type_str(value->left->comb.comb)); assert(0); } @@ -2643,7 +2643,7 @@ int expr_emit(expr * value, int stack_level, module * module_value, else { *result = EMIT_FAIL; - print_error_msg(value->line_no, "cannot convert type %s to int\n", + print_error_msg(value->line_no, "cannot convert type %s to int", comb_type_str(value->left->comb.comb)); assert(0); } @@ -3830,7 +3830,7 @@ int func_body_emit_ffi_param(param * value, module * module_value, int * result) case PARAM_RECORD: case PARAM_FUNC: *result = EMIT_FAIL; - print_error_msg(value->line_no, "ffi type not supported\n"); + print_error_msg(value->line_no, "ffi type not supported"); break; } @@ -4101,7 +4101,7 @@ int func_main_emit( else { *result = EMIT_FAIL; - print_error_msg(0, "no %s function defined\n", main_name); + print_error_msg(0, "no %s function defined", main_name); } return 0; } diff --git a/back/fficall.c b/back/fficall.c index aee14d35..e6e7c86f 100644 --- a/back/fficall.c +++ b/back/fficall.c @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#ifndef NO_FFI + #include "fficall.h" #include #include @@ -164,4 +166,5 @@ char * test_conc_int_str(int d, const char * s) return c; } +#endif /* NO_FFI */ diff --git a/back/fficall.h b/back/fficall.h index afb87227..21dc86f2 100644 --- a/back/fficall.h +++ b/back/fficall.h @@ -22,6 +22,8 @@ #ifndef __FFICALL_H__ #define __FFICALL_H__ +#ifndef NO_FFI + #include #define FFI_SUCC 0 @@ -62,5 +64,7 @@ int test_print_str(const char * str); char * test_conc_str(const char * a, const char * b); char * test_conc_int_str(int d, const char * s); +#endif + #endif /* __FFICALL_H__ */ diff --git a/back/libvm.c b/back/libvm.c index 06ee5be6..9c0472df 100644 --- a/back/libvm.c +++ b/back/libvm.c @@ -218,7 +218,7 @@ void libvm_execute_build_in(vm * machine, bytecode * code) gc_get_int(machine->collector, machine->stack[machine->sp].addr); if (x == 0) { - print_error_msg(machine->line_no, "assert failed\n"); + print_error_msg(machine->line_no, "assert failed"); machine->running = VM_ERROR; return; } @@ -233,7 +233,7 @@ void libvm_execute_build_in(vm * machine, bytecode * code) machine->stack[machine->sp - 1].addr); if (-delta > x || x > delta) { - print_error_msg(machine->line_no, "assert failed\n"); + print_error_msg(machine->line_no, "assert failed"); machine->running = VM_ERROR; return; } @@ -246,6 +246,7 @@ void libvm_execute_build_in(vm * machine, bytecode * code) assert(0); } +#ifndef NO_FFI if (fetestexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)) { if (fetestexcept(FE_DIVBYZERO)) @@ -266,13 +267,14 @@ void libvm_execute_build_in(vm * machine, bytecode * code) } print_error_msg(machine->line_no, - "an error occurred in build in function %s %s\n", + "an error occurred in build in function %s %s", libmath_func_to_str(code->build_in.id), except_to_str(machine->exception)); machine->running = VM_EXCEPTION; return; } +#endif /* NO_FFI */ entry.type = GC_MEM_ADDR; entry.addr = addr; diff --git a/back/nev.c b/back/nev.c index 50d1ab86..1c17dc1f 100644 --- a/back/nev.c +++ b/back/nev.c @@ -43,6 +43,7 @@ extern FILE * yyin; extern int parse_result; +extern int yyparse (never ** nev); int never_func_main_params( const char * main_name, never * nev, @@ -91,7 +92,9 @@ int nev_compile_prog(const char * main_name, program * prog) int ret = 0; never * nev = NULL; + set_line_no(1); parse_result = 0; + yyparse(&nev); if ((ret = parse_result) == 0) { diff --git a/back/program.c b/back/program.c index aace31cf..23fe1b44 100644 --- a/back/program.c +++ b/back/program.c @@ -24,8 +24,7 @@ #include "module.h" #include -program * program_new(object * params, unsigned int param_count, - bytecode * code_arr, unsigned int code_size) +program * program_new() { program * value = malloc(sizeof(program)); diff --git a/back/utils.c b/back/utils.c index 6b4896d5..6a833f48 100644 --- a/back/utils.c +++ b/back/utils.c @@ -23,7 +23,7 @@ #include #include -const char * utils_file_name = NULL; +const char * utils_file_name = "line"; void set_utils_file_name(const char * file_name) { @@ -39,6 +39,12 @@ void print_error_msg(int line_no, const char * format, ...) fprintf(stderr, "%s:%d: error: ", utils_file_name, line_no); vfprintf(stderr, format, args); +#ifndef NO_FFI + fprintf(stderr, "\n"); +#else + fprintf(stderr, "\r\n"); +#endif + va_end(args); } @@ -51,5 +57,11 @@ void print_warning_msg(int line_no, const char * format, ...) fprintf(stderr, "%s:%d: warning: ", utils_file_name, line_no); vfprintf(stderr, format, args); +#ifndef NO_FFI + fprintf(stderr, "\n"); +#else + fprintf(stderr, "\r\n"); +#endif + va_end(args); } diff --git a/back/vm.c b/back/vm.c index c2afdee5..4ac923c7 100644 --- a/back/vm.c +++ b/back/vm.c @@ -180,7 +180,6 @@ vm_execute_str vm_execute_op[] = { { BYTECODE_FUNC_DEF, vm_execute_func_def }, { BYTECODE_FUNC_OBJ, vm_execute_func_obj }, - { BYTECODE_FUNC_FFI, vm_execute_func_ffi }, { BYTECODE_FUNC_FFI_INT, vm_execute_func_ffi_int }, { BYTECODE_FUNC_FFI_FLOAT, vm_execute_func_ffi_float }, @@ -221,7 +220,7 @@ void vm_check_stack(vm * machine) if (machine->sp >= machine->stack_size) { fprintf(stderr, "stack too large\n"); - vm_print(machine); + vm_print(machine, "stack too large"); exit(1); } } @@ -264,13 +263,13 @@ void vm_execute_char(vm * machine, bytecode * code) { gc_stack entry = { 0 }; mem_ptr addr = gc_alloc_char(machine->collector, code->chr.value); - + machine->sp++; vm_check_stack(machine); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp] = entry; } @@ -282,10 +281,10 @@ void vm_execute_string(vm * machine, bytecode * code) machine->sp++; vm_check_stack(machine); - + entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp] = entry; } @@ -302,7 +301,7 @@ void vm_execute_id_top(vm * machine, bytecode * code) entry.type = GC_MEM_ADDR; entry.addr = addr; - machine->stack[machine->sp] = entry; + machine->stack[machine->sp] = entry; } void vm_execute_id_local(vm * machine, bytecode * code) @@ -498,7 +497,7 @@ void vm_execute_op_div_int(vm * machine, bytecode * code) if (b == 0) { - print_error_msg(machine->line_no, "cannot divide by zero\n"); + print_error_msg(machine->line_no, "cannot divide by zero"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_DIVISION; return; @@ -523,7 +522,7 @@ void vm_execute_op_mod_int(vm * machine, bytecode * code) if (b == 0) { - print_error_msg(machine->line_no, "cannot divide by zero\n"); + print_error_msg(machine->line_no, "cannot divide by zero"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_DIVISION; return; @@ -610,7 +609,7 @@ void vm_execute_op_div_float(vm * machine, bytecode * code) if (b == 0) { - print_error_msg(machine->line_no, "cannot divide by zero\n"); + print_error_msg(machine->line_no, "cannot divide by zero"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_DIVISION; return; @@ -637,16 +636,16 @@ void vm_execute_op_add_string(vm * machine, bytecode * code) machine->exception = EXCEPT_NIL_POINTER; return; } - + char * a = gc_get_string(machine->collector, str_a); char * b = gc_get_string(machine->collector, str_b); mem_ptr addr = 0; - + addr = gc_alloc_string_take(machine->collector, string_add(a, b)); entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -666,12 +665,12 @@ void vm_execute_op_add_int_string(vm * machine, bytecode * code) char * b = gc_get_string(machine->collector, str_b); mem_ptr addr = 0; - + addr = gc_alloc_string_take(machine->collector, string_add_int(b, a, 0)); entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -691,12 +690,12 @@ void vm_execute_op_add_string_int(vm * machine, bytecode * code) char * a = gc_get_string(machine->collector, str_a); int b = gc_get_int(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = 0; - + addr = gc_alloc_string_take(machine->collector, string_add_int(a, b, 1)); entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -716,12 +715,12 @@ void vm_execute_op_add_float_string(vm * machine, bytecode * code) char * b = gc_get_string(machine->collector, str_b); mem_ptr addr = 0; - + addr = gc_alloc_string_take(machine->collector, string_add_float(b, a, 0)); entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -740,12 +739,12 @@ void vm_execute_op_add_string_float(vm * machine, bytecode * code) char * a = gc_get_string(machine->collector, str_a); float b = gc_get_float(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = 0; - + addr = gc_alloc_string_take(machine->collector, string_add_float(a, b, 1)); entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_string_ref(machine->collector, addr); - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1035,7 +1034,7 @@ void vm_execute_op_neq_char(vm * machine, bytecode * code) void vm_execute_op_eq_string(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr str_b = gc_get_string_ref(machine->collector, machine->stack[machine->sp].addr); if (str_a == nil_ptr || str_b == nil_ptr) @@ -1048,10 +1047,10 @@ void vm_execute_op_eq_string(vm * machine, bytecode * code) char * a = gc_get_string(machine->collector, str_a); char * b = gc_get_string(machine->collector, str_b); mem_ptr addr = gc_alloc_int(machine->collector, strcmp(a, b) ? 0 : 1); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1059,7 +1058,7 @@ void vm_execute_op_eq_string(vm * machine, bytecode * code) void vm_execute_op_neq_string(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr str_b = gc_get_string_ref(machine->collector, machine->stack[machine->sp].addr); if (str_a == nil_ptr || str_b == nil_ptr) @@ -1072,10 +1071,10 @@ void vm_execute_op_neq_string(vm * machine, bytecode * code) char * a = gc_get_string(machine->collector, str_a); char * b = gc_get_string(machine->collector, str_b); mem_ptr addr = gc_alloc_int(machine->collector, strcmp(a, b) ? 1 : 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1083,14 +1082,14 @@ void vm_execute_op_neq_string(vm * machine, bytecode * code) void vm_execute_op_eq_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr a = gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr b = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, a == b); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1098,14 +1097,14 @@ void vm_execute_op_eq_nil(vm * machine, bytecode * code) void vm_execute_op_eq_string_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, str_a == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1113,14 +1112,14 @@ void vm_execute_op_eq_string_nil(vm * machine, bytecode * code) void vm_execute_op_eq_array_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr arr = gc_get_arr_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1128,14 +1127,14 @@ void vm_execute_op_eq_array_nil(vm * machine, bytecode * code) void vm_execute_op_eq_record_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr arr = gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1148,10 +1147,10 @@ void vm_execute_op_eq_func_nil(vm * machine, bytecode * code) machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, fptr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1159,14 +1158,14 @@ void vm_execute_op_eq_func_nil(vm * machine, bytecode * code) void vm_execute_op_eq_nil_string(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, str_a == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1174,14 +1173,14 @@ void vm_execute_op_eq_nil_string(vm * machine, bytecode * code) void vm_execute_op_eq_nil_array(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr arr = gc_get_arr_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1189,14 +1188,14 @@ void vm_execute_op_eq_nil_array(vm * machine, bytecode * code) void vm_execute_op_eq_nil_record(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr arr = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1209,10 +1208,10 @@ void vm_execute_op_eq_nil_func(vm * machine, bytecode * code) ip_ptr fptr = gc_get_func_addr(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, fptr == 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1220,14 +1219,14 @@ void vm_execute_op_eq_nil_func(vm * machine, bytecode * code) void vm_execute_op_neq_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr a = gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr b = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, a != b); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1235,14 +1234,14 @@ void vm_execute_op_neq_nil(vm * machine, bytecode * code) void vm_execute_op_neq_string_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, str_a != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1250,14 +1249,14 @@ void vm_execute_op_neq_string_nil(vm * machine, bytecode * code) void vm_execute_op_neq_array_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr arr = gc_get_arr_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1265,14 +1264,14 @@ void vm_execute_op_neq_array_nil(vm * machine, bytecode * code) void vm_execute_op_neq_record_nil(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr arr = gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1285,10 +1284,10 @@ void vm_execute_op_neq_func_nil(vm * machine, bytecode * code) machine->stack[machine->sp - 1].addr); gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, fptr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1296,14 +1295,14 @@ void vm_execute_op_neq_func_nil(vm * machine, bytecode * code) void vm_execute_op_neq_nil_string(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr str_a = gc_get_string_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, str_a != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1311,14 +1310,14 @@ void vm_execute_op_neq_nil_string(vm * machine, bytecode * code) void vm_execute_op_neq_nil_array(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr arr = gc_get_arr_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1326,14 +1325,14 @@ void vm_execute_op_neq_nil_array(vm * machine, bytecode * code) void vm_execute_op_neq_nil_record(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + gc_get_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr arr = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, arr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1346,10 +1345,10 @@ void vm_execute_op_neq_nil_func(vm * machine, bytecode * code) ip_ptr fptr = gc_get_func_addr(machine->collector, machine->stack[machine->sp].addr); mem_ptr addr = gc_alloc_int(machine->collector, fptr != 0); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp - 1] = entry; machine->sp--; } @@ -1371,7 +1370,7 @@ void vm_execute_op_inc_int(vm * machine, bytecode * code) mem_ptr addr = machine ->stack[machine->sp - (code->id_local.stack_level - code->id_local.index)].addr; - gc_inc_int(machine->collector, addr); + gc_inc_int(machine->collector, addr); } void vm_execute_op_dec_int(vm * machine, bytecode * code) @@ -1379,7 +1378,7 @@ void vm_execute_op_dec_int(vm * machine, bytecode * code) mem_ptr addr = machine ->stack[machine->sp - (code->id_local.stack_level - code->id_local.index)].addr; - gc_dec_int(machine->collector, addr); + gc_dec_int(machine->collector, addr); } void vm_execute_op_dup_int(vm * machine, bytecode * code) @@ -1444,7 +1443,7 @@ void vm_execute_op_neg_arr_int(vm * machine, bytecode * code) { int eval = gc_get_int(machine->collector, m1->value[e]); mem_ptr cptr = gc_alloc_int(machine->collector, -1 * eval); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1473,7 +1472,7 @@ void vm_execute_op_neg_arr_float(vm * machine, bytecode * code) { float eval = gc_get_float(machine->collector, m1->value[e]); mem_ptr cptr = gc_alloc_float(machine->collector, -1.0 * eval); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1501,7 +1500,7 @@ void vm_execute_op_add_arr_int(vm * machine, bytecode * code) if (!object_arr_can_add(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1515,7 +1514,7 @@ void vm_execute_op_add_arr_int(vm * machine, bytecode * code) int eval1 = gc_get_int(machine->collector, m1->value[e]); int eval2 = gc_get_int(machine->collector, m2->value[e]); mem_ptr cptr = gc_alloc_int(machine->collector, eval1 + eval2); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1544,7 +1543,7 @@ void vm_execute_op_add_arr_float(vm * machine, bytecode * code) if (!object_arr_can_add(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1558,7 +1557,7 @@ void vm_execute_op_add_arr_float(vm * machine, bytecode * code) float eval1 = gc_get_float(machine->collector, m1->value[e]); float eval2 = gc_get_float(machine->collector, m2->value[e]); mem_ptr cptr = gc_alloc_float(machine->collector, eval1 + eval2); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1587,7 +1586,7 @@ void vm_execute_op_sub_arr_int(vm * machine, bytecode * code) if (!object_arr_can_add(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1601,7 +1600,7 @@ void vm_execute_op_sub_arr_int(vm * machine, bytecode * code) int eval1 = gc_get_int(machine->collector, m1->value[e]); int eval2 = gc_get_int(machine->collector, m2->value[e]); mem_ptr cptr = gc_alloc_int(machine->collector, eval1 - eval2); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1630,7 +1629,7 @@ void vm_execute_op_sub_arr_float(vm * machine, bytecode * code) if (!object_arr_can_add(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1644,7 +1643,7 @@ void vm_execute_op_sub_arr_float(vm * machine, bytecode * code) float eval1 = gc_get_float(machine->collector, m1->value[e]); float eval2 = gc_get_float(machine->collector, m2->value[e]); mem_ptr cptr = gc_alloc_float(machine->collector, eval1 - eval2); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1676,7 +1675,7 @@ void vm_execute_op_mul_arr_int(vm * machine, bytecode * code) { int eval = gc_get_int(machine->collector, m1->value[e]); mem_ptr cptr = gc_alloc_int(machine->collector, a * eval); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1710,7 +1709,7 @@ void vm_execute_op_mul_arr_float(vm * machine, bytecode * code) { float eval = gc_get_float(machine->collector, m1->value[e]); mem_ptr cptr = gc_alloc_float(machine->collector, a * eval); - + gc_set_arr_elem(machine->collector, mres, e, cptr); } @@ -1739,7 +1738,7 @@ void vm_execute_op_mul_arr_arr_int(vm * machine, bytecode * code) if (!object_arr_can_mult(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1764,7 +1763,7 @@ void vm_execute_op_mul_arr_arr_int(vm * machine, bytecode * code) for (k = 0; k < m1->dv[1].elems; k++) { sum += gc_get_int(machine->collector, - m1->value[ i * m1->dv[1].elems + k ]) + m1->value[ i * m1->dv[1].elems + k ]) * gc_get_int(machine->collector, m2->value[ k * m2->dv[1].elems + j ]); @@ -1785,7 +1784,7 @@ void vm_execute_op_mul_arr_arr_int(vm * machine, bytecode * code) void vm_execute_op_mul_arr_arr_float(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr array_1 = gc_get_arr_ref(machine->collector, machine->stack[machine->sp - 1].addr); mem_ptr array = gc_get_arr_ref(machine->collector, machine->stack[machine->sp].addr); if (array == nil_ptr || array_1 == nil_ptr) @@ -1800,7 +1799,7 @@ void vm_execute_op_mul_arr_arr_float(vm * machine, bytecode * code) if (!object_arr_can_mult(m1, m2)) { - print_error_msg(machine->line_no, "improper array size\n"); + print_error_msg(machine->line_no, "improper array size"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_ARR_SIZE; return; @@ -1825,7 +1824,7 @@ void vm_execute_op_mul_arr_arr_float(vm * machine, bytecode * code) for (k = 0; k < m1->dv[1].elems; k++) { sum += gc_get_float(machine->collector, - m1->value[ i * m1->dv[1].elems + k ]) + m1->value[ i * m1->dv[1].elems + k ]) * gc_get_float(machine->collector, m2->value[ k * m2->dv[1].elems + j ]); @@ -1848,8 +1847,8 @@ void vm_execute_op_ass_int(vm * machine, bytecode * code) int a = gc_get_int(machine->collector, machine->stack[machine->sp].addr); gc_set_int(machine->collector, machine->stack[machine->sp - 1].addr, a); - - machine->sp--; + + machine->sp--; } void vm_execute_op_ass_float(vm * machine, bytecode * code) @@ -1858,7 +1857,7 @@ void vm_execute_op_ass_float(vm * machine, bytecode * code) machine->stack[machine->sp].addr); gc_set_float(machine->collector, machine->stack[machine->sp - 1].addr, a); - machine->sp--; + machine->sp--; } void vm_execute_op_ass_char(vm * machine, bytecode * code) @@ -1867,7 +1866,7 @@ void vm_execute_op_ass_char(vm * machine, bytecode * code) machine->stack[machine->sp].addr); gc_set_char(machine->collector, machine->stack[machine->sp - 1].addr, a); - machine->sp--; + machine->sp--; } void vm_execute_op_ass_string(vm * machine, bytecode * code) @@ -1882,7 +1881,7 @@ void vm_execute_op_ass_string(vm * machine, bytecode * code) } gc_set_string_ref(machine->collector, machine->stack[machine->sp - 1].addr, str_a); - + machine->sp--; } @@ -1898,7 +1897,7 @@ void vm_execute_op_ass_array(vm * machine, bytecode * code) } gc_set_arr_ref(machine->collector, machine->stack[machine->sp - 1].addr, array_1); - + machine->sp--; } @@ -1907,7 +1906,7 @@ void vm_execute_op_ass_record(vm * machine, bytecode * code) mem_ptr rec_1 = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); gc_set_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr, rec_1); - + machine->sp--; } @@ -1916,7 +1915,7 @@ void vm_execute_op_ass_record_nil(vm * machine, bytecode * code) mem_ptr nil = gc_get_vec_ref(machine->collector, machine->stack[machine->sp].addr); gc_set_vec_ref(machine->collector, machine->stack[machine->sp - 1].addr, nil); - + machine->sp--; } @@ -1977,7 +1976,7 @@ void vm_execute_mk_array_num(vm * machine, bytecode * code, param_type value) if (e <= 0) { object_arr_dim_delete(dv); - print_error_msg(machine->line_no, "array index %d out of bounds\n", + print_error_msg(machine->line_no, "array index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; @@ -2174,7 +2173,7 @@ void vm_get_slice_range( { *oob = 1; return; - } + } } } else @@ -2188,7 +2187,7 @@ void vm_get_slice_range( { *oob = 1; return; - } + } } else { @@ -2196,10 +2195,10 @@ void vm_get_slice_range( { *oob = 1; return; - } + } } } -} +} void vm_execute_slice_array(vm * machine, bytecode * code) { @@ -2439,7 +2438,7 @@ void vm_execute_slice_string(vm * machine, bytecode * code) inline void vm_execute_array_deref_univ( vm * machine, - bytecode * code, + bytecode * code, mem_ptr (* gc_get_array) (gc * collector, mem_ptr addr)) { gc_stack entry = { 0 }; @@ -2457,7 +2456,7 @@ inline void vm_execute_array_deref_univ( if (e < 0) { object_arr_dim_delete(addr); - print_error_msg(machine->line_no, "array index %d out of bounds\n", + print_error_msg(machine->line_no, "array index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; @@ -2475,7 +2474,7 @@ inline void vm_execute_array_deref_univ( machine->exception = EXCEPT_NIL_POINTER; return; } - + assert(gc_get_arr_dims(machine->collector, array) == dims); int oobounds = 0; @@ -2488,7 +2487,7 @@ inline void vm_execute_array_deref_univ( if (oobounds >= 0) { - print_error_msg(machine->line_no, "array index %d out of bounds\n", + print_error_msg(machine->line_no, "array index %d out of bounds", oobounds); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; @@ -2562,7 +2561,7 @@ void vm_execute_range_deref(vm * machine, bytecode * code) if (range_indx < 0) { - print_error_msg(machine->line_no, "range index %d out of bounds\n", d); + print_error_msg(machine->line_no, "range index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; return; @@ -2573,7 +2572,7 @@ void vm_execute_range_deref(vm * machine, bytecode * code) &res_from, &res_to, &oob); if (oob) { - print_error_msg(machine->line_no, "range index %d out of bounds\n", d); + print_error_msg(machine->line_no, "range index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; return; @@ -2596,7 +2595,7 @@ void vm_execute_slice_deref(vm * machine, bytecode * code) unsigned int dims = 0; object_arr_dim * addr = NULL; - dims = code->array_deref.dims; + dims = code->array_deref.dims; addr = object_arr_dim_new(dims); for (d = 0; d < dims; d++) { @@ -2604,7 +2603,7 @@ void vm_execute_slice_deref(vm * machine, bytecode * code) if (e < 0) { object_arr_dim_delete(addr); - print_error_msg(machine->line_no, "slice index %d out of bounds\n", d); + print_error_msg(machine->line_no, "slice index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; return; @@ -2654,7 +2653,7 @@ void vm_execute_slice_deref(vm * machine, bytecode * code) if (oob) { object_arr_dim_delete(addr); - print_error_msg(machine->line_no, "slice index %d out of bounds\n", d); + print_error_msg(machine->line_no, "slice index %d out of bounds", d); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; return; @@ -2672,7 +2671,7 @@ void vm_execute_slice_deref(vm * machine, bytecode * code) if (oobounds >= 0) { - print_error_msg(machine->line_no, "slice index %d out of bounds\n", + print_error_msg(machine->line_no, "slice index %d out of bounds", oobounds); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; @@ -2737,7 +2736,7 @@ void vm_execute_array_append(vm * machine, bytecode * code) } mem_ptr obj = machine->stack[machine->sp--].addr; - + gc_append_arr_elem(machine->collector, array, obj); } @@ -2745,20 +2744,20 @@ void vm_execute_record(vm * machine, bytecode * code) { gc_stack entry = { 0 }; mem_ptr addr = gc_alloc_vec(machine->collector, code->record.count); - + unsigned int c; for (c = 0; c < code->record.count; c++) { gc_set_vec(machine->collector, addr, c, machine->stack[machine->sp--].addr); } - + machine->sp++; vm_check_stack(machine); - + entry.type = GC_MEM_ADDR; entry.addr = gc_alloc_vec_ref(machine->collector, addr); - + machine->stack[machine->sp] = entry; } @@ -2800,7 +2799,7 @@ void vm_execute_vecref_deref(vm * machine, bytecode * code) void vm_execute_vecref_vec_deref(vm * machine, bytecode * code) { gc_stack entry = { 0 }; - + mem_ptr record_ref = machine->stack[machine->sp - code->attr.stack_level].addr; mem_ptr record_value = gc_get_vec_ref(machine->collector, record_ref); if (record_value == nil_ptr) @@ -2809,19 +2808,19 @@ void vm_execute_vecref_vec_deref(vm * machine, bytecode * code) machine->exception = EXCEPT_NIL_POINTER; return; } - + /* TODO: consider changing into assert as vectors are used only intenally * and should always correctly calculated indexed */ unsigned int size = gc_get_vec_size(machine->collector, record_value); if (code->attr.index >= size) { - print_error_msg(machine->line_no, "attribute index out of bounds\n"); + print_error_msg(machine->line_no, "attribute index out of bounds"); machine->running = VM_EXCEPTION; machine->exception = EXCEPT_NO_INDEX_OOB; return; } - + mem_ptr addr = gc_get_vec(machine->collector, record_value, code->attr.index); @@ -2838,13 +2837,13 @@ void vm_execute_nil_record_ref(vm * machine, bytecode * code) { gc_stack entry = { 0 }; mem_ptr addr = gc_alloc_vec_ref(machine->collector, nil_ptr); - + machine->sp++; vm_check_stack(machine); - + entry.type = GC_MEM_ADDR; entry.addr = addr; - + machine->stack[machine->sp] = entry; } @@ -2860,10 +2859,11 @@ int vm_str_print(char * str) void vm_execute_func_ffi(vm * machine, bytecode * code) { +#ifndef NO_FFI bytecode bc = { 0 }; int ret = FFI_SUCC; unsigned int i = 0; - + ffi_decl * fd = ffi_decl_new(code->ffi.count); /* prepare param types and values */ @@ -2894,7 +2894,7 @@ void vm_execute_func_ffi(vm * machine, bytecode * code) { char * char_value; char_value = gc_get_char_ptr(machine->collector, machine->stack[machine->sp - i].addr); - + ffi_decl_set_param_type(fd, i, &ffi_type_schar); ffi_decl_set_param_value(fd, i, char_value); } @@ -2943,7 +2943,7 @@ void vm_execute_func_ffi(vm * machine, bytecode * code) machine->exception = EXCEPT_FFI_FAIL; return; } - + /* call */ gc_stack entry = { 0 }; mem_ptr addr = { 0 }; @@ -2962,7 +2962,7 @@ void vm_execute_func_ffi(vm * machine, bytecode * code) machine->exception = EXCEPT_FFI_FAIL; return; } - + ret = ffi_decl_call(fd, strtab_array[code->ffi.fname_index], handle); if (ret != FFI_SUCC) { @@ -3004,6 +3004,7 @@ void vm_execute_func_ffi(vm * machine, bytecode * code) entry.addr = addr; machine->stack[machine->sp] = entry; +#endif /* NO_FFI */ } void vm_execute_func_ffi_int(vm * machine, bytecode * code) @@ -3304,7 +3305,7 @@ int vm_execute(vm * machine, program * prog, object * result) if (machine->running == VM_ERROR) { - vm_print(machine); + vm_print(machine, "VM_ERROR"); vm_print_stack_trace(machine); } else if (machine->running == VM_HALT) @@ -3361,19 +3362,19 @@ void vm_print_stack_trace(vm * machine) ip_ptr ip = { 0 }; ip_ptr line = { 0 }; stack_ptr fp = { 0 }; - + fp = machine->fp; while (fp > 0) { line = machine->stack[fp - 3].ip; ip = machine->stack[fp].ip; printf("called from line %u ip:%u fp:%d\n", line, ip, fp); - + fp = machine->stack[fp - 1].sp; } } -void vm_print(vm * machine) +void vm_print(vm * machine, const char * msg) { printf("machine:\n"); printf("\tsp: %d\n", machine->sp); @@ -3385,6 +3386,7 @@ void vm_print(vm * machine) printf("\tstack_size: %u\n", machine->stack_size); printf("\tmem_size: %u\n", machine->collector->mem_size); printf("\trunning: %d\n", machine->running); + printf("\tmessage: %s\n", msg); printf("\n"); } diff --git a/back/vm.h b/back/vm.h index 25055045..ae7bd706 100644 --- a/back/vm.h +++ b/back/vm.h @@ -244,6 +244,6 @@ vm * vm_new(unsigned int mem_size, unsigned int stack_size); void vm_delete(vm * machine); void vm_print_stack_trace(vm * machine); -void vm_print(vm * machine); +void vm_print(vm * machine, const char * msg); #endif /* __VM_H__ */ diff --git a/docs/Serpiente_alquimica.jpg b/docs/Serpiente_alquimica.jpg deleted file mode 100644 index 8ad7b3836c37187c9f77408e9dd3e59406328e95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31791 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
qSA;H*3VBcwJTx6sn8z2Xnz;rmGU$whzc1) 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 | Move the memory pointer to the right | -| < | Move the memory pointer to the left | -| + | Increment the memory cell under the memory pointer | -| - | Decrement the memory cell under the memory pointer | -| . | Print the character signified by the memory cell at the memory pointer | -| , | Read a character and store it in the memory cell at the memory pointer | -| [ | Jump past the matchin \] if the memory cell under the memory pointer is 0 | -| ] | Jump back to the mating \[ if the memory cell under the memory pointer is not 0 | - -## Implementation - -### Data Structures - -```never -record BFI -{ - cmd : char; - next : BFI; - jmp : BFI; -} - -record MEM -{ - val : int; - next : MEM; - prev : MEM; -} -``` - -Brain F\*\*\*\* compiler and interpreter uses ```BFI``` record to store -list of instuctions linked with ```next``` attribute. ```jmp``` attribute -is used to point where a jump should be executed when \[ or \] instruction -is executed. ```MEM``` record is a double linked list through ```next``` and -```prev``` attributes which stores memory values. - -### Algorithms - -```never -func compile(prog : string) -> BFI -{ - var i = 0; - var n = BFI; - var p = BFI; - var j = BFI; - var pgm = BFI; - - /* - * Only valid programs are accepted by the following function. - * Add each valid BF command onto the end of the program. - * The 'j' variable points at the list of currently open '[' commands, - * one is matched off by each ']'. - */ - - for (i = 0; i < length(prog); i = i + 1) { - printc(prog[i]); - - /* create program instruction */ - n = BFI('0', nil, nil); - - /* add it at the end program which begins at pgm */ - if (p != nil) { - p.next = n - } else { - pgm = n - }; - - /* instruction name */ - n.cmd = prog[i]; - p = n; - - /* if opening \[ was found push instruction pointer to stack */ - if (prog[i] == '[') { - n.jmp = j; - j = n; - 0 - - /* if closing \] was found pop instruction pointer from stack */ - } else if (prog[i] == ']') { - n.jmp = j; - j = j.jmp; - n.jmp.jmp = n; - 0 - } else { - 0 - } - }; - - pgm -} -``` - -```never -func exec(pgm : BFI) -> int -{ - var m = MEM(0, nil, nil); - var n = BFI; - - for (n = pgm; n != nil; n = n.next) { - /* increase memory cell */ - if (n.cmd == '+') { - m.val = m.val + 1 - /* decrease memory cell */ - } else if (n.cmd == '-') { - m.val = m.val - 1 - /* print character */ - } else if (n.cmd == '.') { - printc(chr(m.val)); - 0 - /* read character */ - } else if (n.cmd == ',') { - m.val = read() - /* jump if value in memory is 0 */ - } else if (n.cmd == '[') { - if (m.val == 0) { - n = n.jmp; - 0 - } else { - 0 - } - /* jump is value in memory is not 0 */ - } else if (n.cmd == ']') { - if (m.val != 0) { - n = n.jmp; - 0 - } else { - 0 - } - /* move to previous memory cell */ - } else if (n.cmd == '<') { - m = m.prev; - 0 - /* move to next memory cell. if not available extend memory */ - } else if (n.cmd == '>') { - if (m.next == nil) { - m.next = MEM(0, nil, nil); - m.next.prev = m; - 0 - } else { - 0 - }; - - m = m.next; - 0 - } else { - 0 - } - }; - - 0 -} -``` - -```never -func run(prog : string) -> int -{ - var pgm = BFI; - - pgm = compile(prog); - - prints("\n"); - - exec(pgm); - - 0 -} -``` - -```never -func main() -> int -{ - /* Hello World! */ - run("++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."); - #run("++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>."); - #prints("Adds two digits\n"); run(",>,[<+>-]<."); - #run(",>,.<."); - - 0 -} -``` - -Brain F\*\*\*\* compiler and interpreter is implemeneted using two major -functions - ```compile``` and ```exec```. Former function creates a list of instructions -and marks jumps which should be executed when \[ or \] instruction is executed. -Later function executes instructions according to their specifiction. - -## Summary - -I hope you liked this entry! - -[1]: https://rosettacode.org/wiki/Execute_Brain****/C "Rosetta Code BF" - - diff --git a/docs/btree.md b/docs/btree.md deleted file mode 100644 index b0f61e8c..00000000 --- a/docs/btree.md +++ /dev/null @@ -1,213 +0,0 @@ ---- -title: Binary Tree ---- - -# Binary Tree - -![btree][btree] - - -## Introduction - -Binary trees are used to quickly insert, search and delete data. The following -sections present how insert and delete operations are implemented in Never -programming language. - -```never -record Node -{ - value : int; - left : Node; - right : Node; -} -``` - -Each node in binary tree consists of value and left and right subtrees. - -## Insert - -```never -func btree_insert(tree : Node, value : int) -> Node -{ - if (tree == nil) - { - Node(value, nil, nil) - } - else if (value < tree.value) - { - tree.left = btree_insert(tree.left, value); - tree - } - else if (value >= tree.value) - { - tree.right = btree_insert(tree.right, value); - tree - } - else - { - Node - } -} -``` - -Insert operation is very simple. If value being inserted is less than -node's value then value is inserted in left subtree. When value is larger -or equal node's value then value is inserted in right subtree. - -```never -func main() -> int -{ - var btree = Node; - - btree = btree_insert(btree, 10); - btree = btree_insert(btree, 5); - btree = btree_insert(btree, 20); - btree = btree_insert(btree, 1); - btree = btree_insert(btree, 12); - btree = btree_insert(btree, 25); - btree_print(btree, 0); - - 0 -} -``` - -The above code snippet presents how binary tree shown in the above picture -is created. - -## Delete - -```never -func btree_min(tree : Node) -> Node -{ - var min = Node; - - min = tree; - while (min != nil && min.left != nil) - { - min = min.left - }; - - min -} -``` - -```never -func btree_delete(tree : Node, value : int) -> Node -{ - if (tree != nil) - { - if (value < tree.value) - { - tree.left = btree_delete(tree.left, value); - tree - } - else if (value > tree.value) - { - tree.right = btree_delete(tree.right, value); - tree - } - else - { - if (tree.left == nil && tree.right == nil) - { - Node - } - else if (tree.left == nil) - { - tree.right - } - else if (tree.right == nil) - { - tree.left - } - else - { - tree.value = btree_min(tree.right).value; - tree.right = btree_delete(tree.right, tree.value); - tree - } - } - } - else - { - Node(value, nil, nil) - } -} -``` - -Delete operation is executed in the following three cases: - -1. Delete node with no subtrees (left and right are nil). -2. Delete node with one subtree (left xor right is nil). -3. Delete node with both subrees (left and right are not nil). - -First two cases are very simple. When node contains no subtrees (is a leaf) -then it can be safely deleted (case 1.). Also when node contains only one -subtree then such node is deleted and deleted node's parent will point -to only subtree (case 2). Case 3. is a little bit more complicated. In this -implementation it was decided to search for inorder successor of deleted node. -Inorder successor can be found by searching minimum value of the right subtree. -Function ```btree_min``` returns inorder successor. After its value is replaced -in current node, then it is deleted as inorder successor is a leaf. - -![btree_del][btree_del] - -```never -func main() -> int -{ - btree = btree_delete(btree, 10); - btree_print(btree, 0); - - 0 -} - -} -``` - -Binary tree which is used as an example in this article, after node 10 is -deleted is shown above. - -## Print - -```never -func btree_print(tree : Node, depth : int) -> string -{ - if (tree != nil) - { - if (tree.left != nil) - { - btree_print(tree.left, depth + 1) - } - else - { - prints("nil\n") - }; - - prints("value = " + tree.value + " at depth " + depth + "\n"); - - if (tree.right != nil) - { - btree_print(tree.right, depth + 1) - } - else - { - prints("nil\n") - } - } - else - { - prints("nil\n") - } -} -``` -There are many ways to print out binary tree. The above function presents -binary tree in order representation. - -## Summary - -This short article presents how basic binary tree can be implemented in Never -programming language. Search operation is left unspecified as an exercise. - -[btree]: https://never-lang.github.io/never/btree.png "Binary tree before delete" -[btree_del]: https://never-lang.github.io/never/btree_del.png "Binary tree after delete" - diff --git a/docs/btree.png b/docs/btree.png deleted file mode 100644 index 8c6fe552dbaac647b4411d17576c82d70c1b6400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21133 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 bOQ-uO>YYn - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - 5 - - - - 20 - - - - 1 - - - - 12 - - - - 25 - - - - diff --git a/docs/btree_del.png b/docs/btree_del.png deleted file mode 100644 index 419545ba6f03800c9cf741cb53b9747801d7c2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17502 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 diff --git a/docs/btree_del.svg b/docs/btree_del.svg deleted file mode 100644 index 8fab714a..00000000 --- a/docs/btree_del.svg +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - 5 - - - - 20 - - - - 1 - - - - 12 - - - - 25 - - - diff --git a/docs/codemirror.css b/docs/codemirror.css new file mode 100644 index 00000000..bc910fb9 --- /dev/null +++ b/docs/codemirror.css @@ -0,0 +1,349 @@ +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: monospace; + height: 300px; + color: black; + direction: ltr; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre.CodeMirror-line, +.CodeMirror pre.CodeMirror-line-like { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + white-space: nowrap; +} + +.CodeMirror-guttermarker { color: black; } +.CodeMirror-guttermarker-subtle { color: #999; } + +/* CURSOR */ + +.CodeMirror-cursor { + border-left: 1px solid black; + border-right: none; + width: 0; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.cm-fat-cursor .CodeMirror-cursor { + width: auto; + border: 0 !important; + background: #7e7; +} +.cm-fat-cursor div.CodeMirror-cursors { + z-index: 1; +} +.cm-fat-cursor-mark { + background-color: rgba(20, 255, 20, 0.5); + -webkit-animation: blink 1.06s steps(1) infinite; + -moz-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; +} +.cm-animate-fat-cursor { + width: auto; + border: 0; + -webkit-animation: blink 1.06s steps(1) infinite; + -moz-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; + background-color: #7e7; +} +@-moz-keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} +@-webkit-keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} +@keyframes blink { + 0% {} + 50% { background-color: transparent; } + 100% {} +} + +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror-overwrite .CodeMirror-cursor {} + +.cm-tab { display: inline-block; text-decoration: inherit; } + +.CodeMirror-rulers { + position: absolute; + left: 0; right: 0; top: -50px; bottom: 0; + overflow: hidden; +} +.CodeMirror-ruler { + border-left: 1px solid #ccc; + top: 0; bottom: 0; + position: absolute; +} + +/* DEFAULT THEME */ + +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-link {text-decoration: underline;} +.cm-strikethrough {text-decoration: line-through;} + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable, +.cm-s-default .cm-punctuation, +.cm-s-default .cm-property, +.cm-s-default .cm-operator {} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-s-default .cm-error {color: #f00;} +.cm-invalidchar {color: #f00;} + +.CodeMirror-composing { border-bottom: 2px solid; } + +/* Default styles for common addons */ + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} +.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } +.CodeMirror-activeline-background {background: #e8f2ff;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + position: relative; + overflow: hidden; + background: white; +} + +.CodeMirror-scroll { + overflow: scroll !important; /* Things will break if this is overridden */ + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actual scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + min-height: 100%; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + display: inline-block; + vertical-align: top; + margin-bottom: -30px; +} +.CodeMirror-gutter-wrapper { + position: absolute; + z-index: 4; + background: none !important; + border: none !important; +} +.CodeMirror-gutter-background { + position: absolute; + top: 0; bottom: 0; + z-index: 4; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} +.CodeMirror-gutter-wrapper ::selection { background-color: transparent } +.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } + +.CodeMirror-lines { + cursor: text; + min-height: 1px; /* prevents collapsing before first draw */ +} +.CodeMirror pre.CodeMirror-line, +.CodeMirror pre.CodeMirror-line-like { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; + -webkit-tap-highlight-color: transparent; + -webkit-font-variant-ligatures: contextual; + font-variant-ligatures: contextual; +} +.CodeMirror-wrap pre.CodeMirror-line, +.CodeMirror-wrap pre.CodeMirror-line-like { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} + +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + padding: 0.1px; /* Force widget margins to stay inside of the container */ +} + +.CodeMirror-widget {} + +.CodeMirror-rtl pre { direction: rtl; } + +.CodeMirror-code { + outline: none; +} + +/* Force content-box sizing for the elements where we expect it */ +.CodeMirror-scroll, +.CodeMirror-sizer, +.CodeMirror-gutter, +.CodeMirror-gutters, +.CodeMirror-linenumber { + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.CodeMirror-cursor { + position: absolute; + pointer-events: none; +} +.CodeMirror-measure pre { position: static; } + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 3; +} +div.CodeMirror-dragcursors { + visibility: visible; +} + +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } +.CodeMirror-crosshair { cursor: crosshair; } +.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } +.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } + +.cm-searching { + background-color: #ffa; + background-color: rgba(255, 255, 0, .4); +} + +/* Used to force a border model for a node */ +.cm-force-border { padding-right: .1px; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror div.CodeMirror-cursors { + visibility: hidden; + } +} + +/* See issue #2901 */ +.cm-tab-wrap-hack:after { content: ''; } + +/* Help users use markselection to safely style text background */ +span.CodeMirror-selectedtext { background: none; } diff --git a/docs/codemirror.js b/docs/codemirror.js new file mode 100644 index 00000000..1eff2385 --- /dev/null +++ b/docs/codemirror.js @@ -0,0 +1,9833 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.CodeMirror = factory()); +}(this, (function () { 'use strict'; + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + + var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { presto_version = Number(presto_version[1]); } + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") } + + var rmClass = function(node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + { e.removeChild(e.firstChild); } + return e + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e) + } + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { e.className = className; } + if (style) { e.style.cssText = style; } + if (typeof content == "string") { e.appendChild(document.createTextNode(content)); } + else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } } + return e + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e + } + + var range; + if (document.createRange) { range = function(node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r + }; } + else { range = function(node, start, end) { + var r = document.body.createTextRange(); + try { r.moveToElementText(node.parentNode); } + catch(e) { return r } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r + }; } + + function contains(parent, child) { + if (child.nodeType == 3) // Android browser always returns false when child is a textnode + { child = child.parentNode; } + if (parent.contains) + { return parent.contains(child) } + do { + if (child.nodeType == 11) { child = child.host; } + if (child == parent) { return true } + } while (child = child.parentNode) + } + + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch(e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) + { activeElement = activeElement.shadowRoot.activeElement; } + return activeElement + } + + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } } + return b + } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; } + else if (ie) // Suppress mysterious IE10 errors + { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args)} + } + + function copyObj(obj, target, overwrite) { + if (!target) { target = {}; } + for (var prop in obj) + { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + { target[prop] = obj[prop]; } } + return target + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { end = string.length; } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + { return n + (end - i) } + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + } + + var Delayed = function() { + this.id = null; + this.f = null; + this.time = 0; + this.handler = bind(this.onTimeout, this); + }; + Delayed.prototype.onTimeout = function (self) { + self.id = 0; + if (self.time <= +new Date) { + self.f(); + } else { + setTimeout(self.handler, self.time - +new Date); + } + }; + Delayed.prototype.set = function (ms, f) { + this.f = f; + var time = +new Date + ms; + if (!this.id || time < this.time) { + clearTimeout(this.id); + this.id = setTimeout(this.handler, ms); + this.time = time; + } + }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + { if (array[i] == elt) { return i } } + return -1 + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 30; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = {toString: function(){return "CodeMirror.Pass"}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { nextTab = string.length; } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + { return pos + Math.min(skipped, goal - col) } + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) { return pos } + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + { spaceStrs.push(lst(spaceStrs) + " "); } + return spaceStrs[n] + } + + function lst(arr) { return arr[arr.length-1] } + + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); } + return out + } + + function insertSorted(array, value, score) { + var pos = 0, priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { pos++; } + array.splice(pos, 0, value); + } + + function nothing() {} + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { copyObj(props, inst); } + return inst + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)) + } + function isWordChar(ch, helper) { + if (!helper) { return isWordCharBasic(ch) } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true } + return helper.test(ch) + } + + function isEmpty(obj) { + for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } } + return true + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; } + return pos + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { return from } + var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { return pred(mid) ? from : to } + if (pred(mid)) { to = mid; } + else { from = mid + dir; } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { return f(from, to, "ltr", 0) } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { f(from, to, "ltr"); } + } + + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { return i } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { found = i; } + else { bidiOther = i; } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { found = i; } + else { bidiOther = i; } + } + } + return found != null ? found : bidiOther + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { return lowTypes.charAt(code) } + else if (0x590 <= code && code <= 0x5f4) { return "R" } + else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) } + else if (0x6ee <= code && code <= 0x8ac) { return "r" } + else if (0x2000 <= code && code <= 0x200b) { return "w" } + else if (code == 0x200c) { return "b" } + else { return "L" } + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false } + var len = str.length, types = []; + for (var i = 0; i < len; ++i) + { types.push(charType(str.charCodeAt(i))); } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { types[i$1] = prev; } + else { prev = type; } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { types[i$2] = "n"; } + else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; } + else if (type$2 == "," && prev$1 == types[i$3+1] && + (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { types[i$4] = "N"; } + else if (type$3 == "%") { + var end = (void 0); + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i$4; j < end; ++j) { types[j] = replace; } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; } + else if (isStrong.test(type$4)) { cur$1 = type$4; } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = (void 0); + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6-1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? (before ? "L" : "R") : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, at = order.length, isRTL = direction == "rtl" ? 1 : 0; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + at += isRTL; + pos = j$2; + } else { ++j$2; } + } + if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + + return direction == "rtl" ? order.reverse() : order + } + })(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { order = line.order = bidiOrdering(line.text, direction); } + return order + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + + var on = function(emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers || (emitter._handlers = {}); + map$$1[type] = (map$$1[type] || noHandlers).concat(f); + } + }; + + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) + { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); } + } + } + } + + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { return } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") + { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { return } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1) + { set.push(arr[i]); } } + } + + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0 + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { e.stopPropagation(); } + else { e.cancelBubble = true; } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + + function e_target(e) {return e.target || e.srcElement} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { b = 1; } + else if (e.button & 2) { b = 3; } + else if (e.button & 4) { b = 2; } + } + if (mac && e.ctrlKey && b == 1) { b = 3; } + return b + } + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { return false } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div + }(); + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); } + } + var node = zwspSupported ? elt("span", "\u200b") : + elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { return badBidiRects } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780) + return badBidiRects = (r1.right - r0.right < 3) + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { nl = string.length; } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result + } : function (string) { return string.split(/\r\n?|\n/); }; + + var hasSelection = window.getSelection ? function (te) { + try { return te.selectionStart != te.selectionEnd } + catch(e) { return false } + } : function (te) { + var range$$1; + try {range$$1 = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range$$1 || range$$1.parentElement() != te) { return false } + return range$$1.compareEndPoints("StartToEnd", range$$1) != 0 + }; + + var hasCopyEvent = (function () { + var e = elt("div"); + if ("oncopy" in e) { return true } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function" + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { return badZoomedRects } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1 + } + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) + { mode.dependencies = Array.prototype.slice.call(arguments, 2); } + modes[name] = mode; + } + + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { found = {name: found}; } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml") + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json") + } + if (typeof spec == "string") { return {name: spec} } + else { return spec || {name: "null"} } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { return getMode(options, "text/plain") } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { continue } + if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { modeObj.helperType = spec.helperType; } + if (spec.modeProps) { for (var prop$1 in spec.modeProps) + { modeObj[prop$1] = spec.modeProps[prop$1]; } } + + return modeObj + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + } + + function copyState(mode, state) { + if (state === true) { return state } + if (mode.copyState) { return mode.copyState(state) } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { val = val.concat([]); } + nstate[n] = val; + } + return nstate + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { break } + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state} + } + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function(string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + + StringStream.prototype.eol = function () {return this.pos >= this.string.length}; + StringStream.prototype.sol = function () {return this.pos == this.lineStart}; + StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined}; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) + { return this.string.charAt(this.pos++) } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { ok = ch == match; } + else { ok = ch && (match.test ? match.test(ch) : match(ch)); } + if (ok) {++this.pos; return ch} + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start + }; + StringStream.prototype.eatSpace = function () { + var this$1 = this; + + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; } + return this.pos > start + }; + StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;}; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true} + }; + StringStream.prototype.backUp = function (n) {this.pos -= n;}; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { this.pos += pattern.length; } + return true + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { return null } + if (match && consume !== false) { this.pos += match[0].length; } + return match + } + }; + StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)}; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { return inner() } + finally { this.lineStart -= n; } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n) + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos) + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break } + n -= sz; + } + } + return chunk.lines[n] + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { text = text.slice(0, end.ch); } + if (n == start.line) { text = text.slice(start.ch); } + out.push(text); + ++n; + }); + return out + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value + return out + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { return null } + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { break } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], ch = child.height; + if (h < ch) { chunk = child; continue outer } + h -= ch; + n += child.chunkSize(); + } + return n + } while (!chunk.lines) + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) { break } + h -= lh; + } + return n + i + } + + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size} + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)) + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if ( sticky === void 0 ) sticky = null; + + if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { return a.line - b.line || a.ch - b.ch } + + function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 } + + function copyPos(x) {return Pos(x.line, x.ch)} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))} + function clipPos(doc, pos) { + if (pos.line < doc.first) { return Pos(doc.first, 0) } + var last = doc.first + doc.size - 1; + if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) } + return clipToLen(pos, getLine(doc, pos.line).text.length) + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { return Pos(pos.line, linelen) } + else if (ch < 0) { return Pos(pos.line, 0) } + else { return pos } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); } + return out + } + + var SavedContext = function(state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + + var Context = function(doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; } + return line + }; + + Context.prototype.baseToken = function (n) { + var this$1 = this; + + if (!this.baseTokens) { return null } + while (this.baseTokens[this.baseTokenPos] <= n) + { this$1.baseTokenPos += 2; } + var type = this.baseTokens[this.baseTokenPos + 1]; + return {type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n} + }; + + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { this.maxLookAhead--; } + }; + + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) + { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) } + else + { return new Context(doc, copyState(doc.mode, saved), line) } + }; + + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state + }; + + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); }, + lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function ( o ) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], i = 1, at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + { st.splice(i, 1, end, st[i+1], i_end); } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { return } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + + for (var o = 0; o < cm.state.overlays.length; ++o) loop( o ); + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null} + } + + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { context.state = resetState; } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { line.styleClasses = result.classes; } + else if (line.styleClasses) { line.styleClasses = null; } + if (updateFrontier === cm.doc.highlightFrontier) + { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } + } + return line.styles + } + + function getContextBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) { return new Context(doc, true, n) } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { doc.modeFrontier = context.line; } + return context + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { callBlankLine(mode, context.state); } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + + function callBlankLine(mode, state) { + if (mode.blankLine) { return mode.blankLine(state) } + if (!mode.innerMode) { return } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) } + } + + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { inner[0] = innerMode(mode, state).mode; } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { return style } + } + throw new Error("Mode " + mode.name + " failed to advance stream.") + } + + var Token = function(stream, type, state) { + this.start = stream.start; this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, mode = doc.mode, style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), tokens; + if (asArray) { tokens = []; } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); } + } + return asArray ? tokens : new Token(stream, style, context.state) + } + + function extractLineClasses(type, output) { + if (type) { for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { break } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + { output[prop] = lineClass[2]; } + else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) + { output[prop] += " " + lineClass[2]; } + } } + return type + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; } + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { processLine(cm, text, context, stream.pos); } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { style = "m-" + (style ? mName + " " + style : mName); } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { return doc.first } + var line = getLine(doc, search - 1), after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) + { return search } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline + } + + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { return } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { return span } + } } + } + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) + { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } + return r + } + // Add a span to a line. + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } } + return nw + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } } + return nw + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { return null } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { return null } + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { span.to = startCh; } + else if (sameLine) { span.to = found.to == null ? null : found.to + offset; } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { span$1.to += offset; } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } else { + span$1.from += offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { first = clearEmptySpans(first); } + if (last && last != first) { last = clearEmptySpans(last); } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + { for (var i$2 = 0; i$2 < first.length; ++i$2) + { if (first[i$2].to == null) + { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } } + for (var i$3 = 0; i$3 < gap; ++i$3) + { newMarkers.push(gapMarkers); } + newMarkers.push(last); + } + return newMarkers + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + { spans.splice(i--, 1); } + } + if (!spans.length) { return null } + return spans + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + { (markers || (markers = [])).push(mark); } + } } + }); + if (!markers) { return null } + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue } + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + { newParts.push({from: p.from, to: m.from}); } + if (dto > 0 || !mk.inclusiveRight && !dto) + { newParts.push({from: m.to, to: p.to}); } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.detachLine(line); } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.attachLine(line); } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { return lenDiff } + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { return -fromCmp } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { return toCmp } + return b.id - a.id + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + { found = sp.marker; } + } } + return found + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) } + + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; } + } } + return found + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) { + var line = getLine(doc, lineNo$$1); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { continue } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || + fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) + { return true } + } } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + { line = merged.find(-1, true).line; } + return line + } + + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return line + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line + ;(lines || (lines = [])).push(line); + } + return lines + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) { return lineN } + return lineNo(vis) + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { return lineN } + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) { return lineN } + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return lineNo(line) + 1 + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { continue } + if (sp.from == null) { return true } + if (sp.marker.widgetNode) { continue } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + { return true } + } } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)) + } + if (span.marker.inclusiveRight && span.to == line.text.length) + { return true } + for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) { return true } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { break } + else { h += line.height; } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { break } + else { h += cur.height; } + } + } + return h + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { return 0 } + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + + Line.prototype.lineNo = function () { return lineNo(this) }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + if (line.order != null) { line.order = null; } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { return null } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")) + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content, + col: 0, pos: 0, cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping")}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0); + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) + { builder.addToken = buildTokenBadBidi(builder.addToken, order); } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); } + if (line.styleClasses.textClass) + { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map) + ;(lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) + { builder.content.className = "cm-tab-wrap-hack"; } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); } + + return builder + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { return } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { mustWrap = true; } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); } + else { content.appendChild(txt); } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { break } + pos += skipped + 1; + var txt$1 = (void 0); + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); } + else { content.appendChild(txt$1); } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css) { + var fullStyle = style || ""; + if (startStyle) { fullStyle += startStyle; } + if (endStyle) { fullStyle += endStyle; } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") + { token.setAttribute(attr, attributes[attr]); } } + } + return builder.content.appendChild(token) + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { return text } + var spaceBefore = trailingBefore, result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) + { ch = "\u00a0"; } + result += ch; + spaceBefore = ch == " "; + } + return result + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = (void 0); + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { break } + } + if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + } + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) + { widget = builder.content.appendChild(document.createElement("span")); } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1+=2) + { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); } + return + } + + var len = allText.length, pos = 0, i = 1, text = "", style, css; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; nextChange = Infinity; + var foundBookmarks = [], endStyles = (void 0); + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { spanStyle += " " + m.className; } + if (m.css) { css = (css ? css + ";" : "") + m.css; } + if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; } + if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { (attributes || (attributes = {})).title = m.title; } + if (m.attributes) { + for (var attr in m.attributes) + { (attributes || (attributes = {}))[attr] = m.attributes[attr]; } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + { collapsed = sp; } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) + { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } } + + if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) + { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { return } + if (collapsed.to == pos) { collapsed = false; } + } + } + if (pos >= len) { break } + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array + } + + var operationGroup = null; + + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + { callbacks[i].call(null); } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + { while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } } + } + } while (i < callbacks.length) + } + + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { return } + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + endCb(group); + } + } + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { return } + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function ( i ) { + list.push(function () { return arr[i].apply(null, args); }); + }; + + for (var i = 0; i < arr.length; ++i) + loop( i ); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { delayed[i](); } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { updateLineText(cm, lineView); } + else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); } + else if (type == "class") { updateLineClasses(cm, lineView); } + else if (type == "widget") { updateLineWidgets(cm, lineView, dims); } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; } + } + return lineView.node + } + + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { cls += " CodeMirror-linebackground"; } + if (lineView.background) { + if (cls) { lineView.background.className = cls; } + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built + } + return buildLineContent(cm, lineView) + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { lineView.node = built.pre; } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) + { ensureLineWrapped(lineView).className = lineView.line.wrapClass; } + else if (lineView.node != lineView.text) + { lineView.node.className = ""; } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, + ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) + { gutterWrap.className += " " + lineView.line.gutterClass; } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + { lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); } + if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id]; + if (found) + { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); } + } } + } + } + + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { lineView.alignable = null; } + var isWidget = classTest("CodeMirror-linewidget"); + for (var node = lineView.node.firstChild, next = (void 0); node; node = next) { + next = node.nextSibling; + if (isWidget.test(node.className)) { lineView.node.removeChild(node); } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { lineView.bgClass = built.bgClass; } + if (built.textClass) { lineView.textClass = built.textClass; } + + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } } + } + + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { return } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget" + (widget.className ? " " + widget.className : "")); + if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) + { wrap.insertBefore(node, lineView.gutter || lineView.text); } + else + { wrap.appendChild(node); } + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; } + } + } + + function widgetHeight(widget) { + if (widget.height != null) { return widget.height } + var cm = widget.doc.cm; + if (!cm) { return 0 } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; } + if (widget.noHScroll) + { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || + (n.parentNode == display.sizer && n != display.mover)) + { return true } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight} + function paddingH(display) { + if (display.cachedPaddingH) { return display.cachedPaddingH } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; } + return data + } + + function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + { heights.push((cur.bottom + next.top) / 2 - rect.top); } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + { return {map: lineView.measure.map, cache: lineView.measure.cache} } + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias) + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + { return cm.display.view[findViewIndex(cm, lineN)] } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + { return ext } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) + { view = updateExternalMeasurement(cm, line); } + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + } + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { ch = -1; } + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + { prepared.rect = prepared.view.text.getBoundingClientRect(); } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { prepared.cache[key] = found; } + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom} + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function nodeAndOffsetInLineMap(map$$1, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map$$1.length; i += 3) { + mStart = map$$1[i]; + mEnd = map$$1[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { collapse = "right"; } + } + if (start != null) { + node = map$$1[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + { collapse = bias; } + if (bias == "left" && start == 0) + { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) { + node = map$$1[(i -= 3) + 2]; + collapse = "left"; + } } + if (bias == "right" && start == mEnd - mStart) + { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) { + node = map$$1[(i += 3) + 2]; + collapse = "right"; + } } + break + } + } + return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd} + } + + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { break } + } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { break } + } } + return rect + } + + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, start = place.start, end = place.end, collapse = place.collapse; + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) + { rect = node.parentNode.getBoundingClientRect(); } + else + { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); } + if (rect.left || rect.right || start == 0) { break } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); } + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) { collapse = bias = "right"; } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + { rect = rects[bias == "right" ? rects.length - 1 : 0]; } + else + { rect = node.getBoundingClientRect(); } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; } + else + { rect = nullRect; } + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) + { if (mid < heights[i]) { break } } + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) { result.bogus = true; } + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + { return rect } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY} + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { lineView.measure.caches[i] = {}; } } + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + { clearLineMeasurementCacheFor(cm.display.view[i]); } + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; } + cm.display.lineNumChars = null; + } + + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft + } + function pageScrollY() { + if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } + return window.pageYOffset || (document.documentElement || document.body).scrollTop + } + + function widgetTopHeight(lineObj) { + var height = 0; + if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) + { height += widgetHeight(lineObj.widgets[i]); } } } + return height + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; rect.bottom += height; + } + if (context == "line") { return rect } + if (!context) { context = "local"; } + var yOff = heightAtLine(lineObj); + if (context == "local") { yOff += paddingTop(cm.display); } + else { yOff -= cm.display.viewOffset; } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { return coords } + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top} + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { lineObj = getLine(cm.doc, pos.line); } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context) + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { m.left = m.right; } else { m.right = m.left; } + return intoCoordSystem(cm, lineObj, m, context) + } + var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") } + + function getBidi(ch, partPos, invert) { + var part = order[partPos], right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert) + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { val.other = getBidi(ch, other, sticky != "before"); } + return val + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height} + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { pos.outside = outside; } + return pos + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) } + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) } + if (x < 0) { x = 0; } + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0)); + if (!collapsed) { return found } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { return rangeEnd } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0); + end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end); + return {begin: begin, end: end} + } + + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop) + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x + } + + function coordsCharInner(cm, lineObj, lineNo$$1, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight$$1 = widgetTopHeight(lineObj); + var begin = 0, end = lineObj.text.length, ltr = true; + + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart) + (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight$$1; box.bottom += widgetHeight$$1; + if (!boxIsAfter(box, x, y, false)) { return false } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true + }, begin, end); + + var baseX, sticky, outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { ch++; } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : + (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ? + "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0; + } + + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX) + } + + function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"), + "line", lineObj, preparedMeasure), x, y, true) + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"), + "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) + { part = order[index - 1]; } + } + return part + } + + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; } + var part = null, closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { continue } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { part = order[order.length - 1]; } + // Clip the part to the wrapped line. + if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; } + if (part.to > end) { part = {from: part.from, to: end, level: part.level}; } + return part + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { return display.cachedTextHeight } + if (measureText == null) { + measureText = elt("pre", null, "CodeMirror-line-like"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { display.cachedTextHeight = height; } + removeChildren(display.measure); + return height || 1 + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { return display.cachedCharWidth } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor], "CodeMirror-line-like"); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) { display.cachedCharWidth = width; } + return width || 10 + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth} + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { return 0 } + + var widgetsHeight = 0; + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; } + } } + + if (wrapping) + { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th } + else + { return widgetsHeight + th } + } + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null } + + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e) { return null } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { return null } + n -= cm.display.viewFrom; + if (n < 0) { return null } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { return i } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { from = cm.doc.first; } + if (to == null) { to = cm.doc.first + cm.doc.size; } + if (!lendiff) { lendiff = 0; } + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + { display.updateLineNumbers = from; } + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + { resetView(cm); } + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + { ext.lineN += lendiff; } + else if (from < ext.lineN + ext.size) + { display.externalMeasured = null; } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + { display.externalMeasured = null; } + + if (line < display.viewFrom || line >= display.viewTo) { return } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { return } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { arr.push(type); } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + { return {index: index, lineN: newN} } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) + { n += view[i].size; } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { return null } + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { return null } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN} + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); } + else if (display.viewFrom < from) + { display.view = display.view.slice(findViewIndex(cm, from)); } + display.viewFrom = from; + if (display.viewTo < to) + { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); } + else if (display.viewTo > to) + { display.view = display.view.slice(0, findViewIndex(cm, to)); } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; } + } + return dirty + } + + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + + function prepareSelection(cm, primary) { + if ( primary === void 0 ) primary = true; + + var doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { continue } + var range$$1 = doc.sel.ranges[i]; + if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue } + var collapsed = range$$1.empty(); + if (collapsed || cm.options.showCursorWhenSelecting) + { drawSelectionCursor(cm, range$$1.head, curFragment); } + if (!collapsed) + { drawSelectionRange(cm, range$$1, selFragment); } + } + return result + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + function cmpCoords(a, b) { return a.top - b.top || a.left - b.left } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range$$1, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + + function add(left, top, width, bottom) { + if (top < 0) { top = 0; } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px"))); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias) + } + + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = (dir == "ltr") == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop] + } + + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + + var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen; + var first = i == 0, last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + + if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; } + if (cmpCoords(toPos, start) < 0) { start = toPos; } + if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; } + if (cmpCoords(toPos, end) < 0) { end = toPos; } + }); + return {start: start, end: end} + } + + var sFrom = range$$1.from(), sTo = range$$1.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + { add(leftSide, leftEnd.bottom, null, rightStart.top); } + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { return } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; }, + cm.options.cursorBlinkRate); } + else if (cm.options.cursorBlinkRate < 0) + { display.cursorDiv.style.visibility = "hidden"; } + } + + function ensureFocus(cm) { + if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); } + } + + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + onBlur(cm); + } }, 100); + } + + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; } + + if (cm.options.readOnly == "nocursor") { return } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { return } + + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], wrapping = cm.options.lineWrapping; + var height = (void 0), width = 0; + if (cur.hidden) { continue } + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) + { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) + { updateWidgetHeight(cur.rest[j]); } } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], parent = w.node.parentNode; + if (parent) { w.height = parent.offsetHeight; } + } } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return {from: from, to: Math.max(to, from + 1)} + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } + + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (rect.top + box.top < 0) { doScroll = true; } + else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;")); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { margin = 0; } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = {left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin}; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; } + } + if (!changed) { break } + } + return rect + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); } + if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (rect.top < 0) { rect.top = 0; } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), result = {}; + if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { result.scrollTop = newTop; } + } + + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; + var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0); + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { rect.right = rect.left + screenw; } + if (rect.left < 10) + { result.scrollLeft = 0; } + else if (rect.left < screenleft) + { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); } + else if (rect.right > screenw + screenleft - 3) + { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; } + return result + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { return } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin}; + } + + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { resolveScrollToPos(cm); } + if (x != null) { cm.curOp.scrollLeft = x; } + if (y != null) { cm.curOp.scrollTop = y; } + } + + function scrollToRange(cm, range$$1) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range$$1; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range$$1 = cm.curOp.scrollToPos; + if (range$$1) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to); + scrollToCoordsRange(cm, from, to, range$$1.margin); + } + } + + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { return } + if (!gecko) { updateDisplaySimple(cm, {top: val}); } + setScrollTop(cm, val, true); + if (gecko) { updateDisplaySimple(cm); } + startWorker(cm, 100); + } + + function setScrollTop(cm, val, forceScroll) { + val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); + if (cm.display.scroller.scrollTop == val && !forceScroll) { return } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + } + } + + var NativeScrollbars = function(place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); place(horiz); + + on(vert, "scroll", function () { + if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); } + }); + + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; } + }; + + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = + Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = + Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { this.zeroWidthHack(); } + this.checkedZeroWidth = true; + } + + return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0} + }; + + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; } + if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); } + }; + + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; } + if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); } + }; + + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed; + this.disableVert = new Delayed; + }; + + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) + : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt$$1 != bar) { bar.style.pointerEvents = "none"; } + else { delay.set(1000, maybeDisable); } + } + delay.set(1000, maybeDisable); + }; + + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + + var NullScrollbars = function () {}; + + NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + + function updateScrollbars(cm, measure) { + if (!measure) { measure = measureForScrollbars(cm); } + var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) + { updateHeightsInViewport(cm); } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { d.scrollbarFiller.style.display = ""; } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { d.gutterFiller.style.display = ""; } + } + + var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; + + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) + { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { setScrollLeft(cm, pos); } + else { updateScrollTop(cm, pos); } + }, cm); + if (cm.display.scrollbars.addClass) + { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: 0, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + focus: false, + id: ++nextOpId // Unique ID + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) + { group.ops[i].cm.curOp = null; } + endOperations(group); + }); } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + { endOperation_R1(ops[i]); } + for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe) + { endOperation_W1(ops[i$1]); } + for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM + { endOperation_R2(ops[i$2]); } + for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe) + { endOperation_W2(ops[i$3]); } + for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM + { endOperation_finish(ops[i$4]); } + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { findMaxLine(cm); } + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) { updateHeightsInViewport(cm); } + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = + Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + + if (op.updatedDisplay || op.selectionChanged) + { op.preparedSelection = display.input.prepareSelection(); } + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); } + cm.display.maxLineChanged = false; + } + + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) + { cm.display.input.showSelection(op.preparedSelection, takeFocus); } + if (op.updatedDisplay || op.startHeight != cm.doc.height) + { updateScrollbars(cm, op.barMeasure); } + if (op.updatedDisplay) + { setDocumentHeight(cm, op.barMeasure); } + + if (op.selectionChanged) { restartBlink(cm); } + + if (cm.state.focused && op.updateInput) + { cm.display.input.reset(op.typing); } + if (takeFocus) { ensureFocus(op.cm); } + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + { display.wheelStartX = display.wheelStartY = null; } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); } + + if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) { for (var i = 0; i < hidden.length; ++i) + { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } } + if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1) + { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } } + + if (display.wrapper.offsetHeight) + { doc.scrollTop = cm.display.scroller.scrollTop; } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + { signal(cm, "changes", cm, op.changeObjs); } + if (op.update) + { op.update.finish(); } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { return f() } + startOperation(cm); + try { return f() } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) { return f.apply(cm, arguments) } + startOperation(cm); + try { return f.apply(cm, arguments) } + finally { endOperation(cm); } + } + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) { return f.apply(this, arguments) } + startOperation(this); + try { return f.apply(this, arguments) } + finally { endOperation(this); } + } + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) { return f.apply(this, arguments) } + startOperation(cm); + try { return f.apply(this, arguments) } + finally { endOperation(cm); } + } + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) + { cm.state.highlight.set(time, bind(highlightWorker, cm)); } + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { return } + var end = +new Date + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { context.state = resetState; } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) { line.styleClasses = newCls; } + else if (oldCls) { line.styleClasses = null; } + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; } + if (ischange) { changedLines.push(context.line); } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) + { processLine(cm, line.text, context); } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) + { regLineChange(cm, changedLines[i], "text"); } + }); } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) + { this.events.push(arguments); } + }; + DisplayUpdate.prototype.finish = function () { + var this$1 = this; + + for (var i = 0; i < this.events.length; i++) + { signal.apply(null, this$1.events[i]); } + }; + + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + + function selectionSnapshot(cm) { + if (cm.hasFocus()) { return null } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { return null } + var result = {activeElt: active}; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result + } + + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } + snapshot.activeElt.focus(); + if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), range$$1 = document.createRange(); + range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range$$1.collapse(false); + sel.removeAllRanges(); + sel.addRange(range$$1); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + + if (update.editorIsHidden) { + resetView(cm); + return false + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + display.renderedView == display.view && countDirtyView(cm) == 0) + { return false } + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); } + if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + { return false } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { display.lineDiv.style.display = "none"; } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { display.lineDiv.style.display = ""; } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true + } + + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + { break } + } else if (first) { + update.visible = visibleLines(cm.display, cm.doc, viewport); + } + if (!updateDisplayIfNeeded(cm, update)) { break } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; + } + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + { node.style.display = "none"; } + else + { node.parentNode.removeChild(node); } + return next + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) { cur = rm(cur); } + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { cur = rm(cur); } + } + + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) { if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) + { view[i].gutter.style.left = left; } + if (view[i].gutterBackground) + { view[i].gutterBackground.style.left = left; } + } + var align = view[i].alignable; + if (align) { for (var j = 0; j < align.length; j++) + { align[j].style.left = left; } } + } } + if (cm.options.fixedGutter) + { display.gutters.style.left = (comp + gutterW) + "px"; } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { return false } + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true + } + return false + } + + function getGutters(gutters, lineNumbers) { + var result = [], sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], style = null; + if (typeof name != "string") { style = name.style; name = name.className; } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { continue } + else { sawLineNumbers = true; } + } + result.push({className: name, style: style}); + } + if (lineNumbers && !sawLineNumbers) { result.push({className: "CodeMirror-linenumbers", style: null}); } + return result + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { gElt.style.cssText = style; } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; } + + if (place) { + if (place.appendChild) { place.appendChild(d.wrapper); } + else { place(d.wrapper); } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + + d.activeTouch = null; + + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { wheelPixelsPerUnit = -.53; } + else if (gecko) { wheelPixelsPerUnit = 15; } + else if (chrome) { wheelPixelsPerUnit = -.7; } + else if (safari) { wheelPixelsPerUnit = -1/3; } + + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; } + else if (dy == null) { dy = e.wheelDelta; } + return {x: dx, y: dy} + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta + } + + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { return } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { + if (dy && canScrollY) + { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || (dy && canScrollY)) + { e_preventDefault(e); } + display.wheelStartX = null; // Abort measurement, if in progress + return + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) { top = Math.max(0, top + pixels - 50); } + else { bot = Math.min(cm.doc.height, bot + pixels + 50); } + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { return } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) { return } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + + Selection.prototype.primary = function () { return this.ranges[this.primIndex] }; + + Selection.prototype.equals = function (other) { + var this$1 = this; + + if (other == this) { return true } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false } + for (var i = 0; i < this.ranges.length; i++) { + var here = this$1.ranges[i], there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false } + } + return true + }; + + Selection.prototype.deepCopy = function () { + var this$1 = this; + + var out = []; + for (var i = 0; i < this.ranges.length; i++) + { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); } + return new Selection(out, this.primIndex) + }; + + Selection.prototype.somethingSelected = function () { + var this$1 = this; + + for (var i = 0; i < this.ranges.length; i++) + { if (!this$1.ranges[i].empty()) { return true } } + return false + }; + + Selection.prototype.contains = function (pos, end) { + var this$1 = this; + + if (!end) { end = pos; } + for (var i = 0; i < this.ranges.length; i++) { + var range = this$1.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + { return i } + } + return -1 + }; + + var Range = function(anchor, head) { + this.anchor = anchor; this.head = head; + }; + + Range.prototype.from = function () { return minPos(this.anchor, this.head) }; + Range.prototype.to = function () { return maxPos(this.anchor, this.head) }; + Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { --primIndex; } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex) + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0) + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { return change.to } + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)) + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { return pos } + if (cmp(pos, change.to) <= 0) { return changeEnd(change) } + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; } + return Pos(line, ch) + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex) + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + { return Pos(nw.line, pos.ch - old.ch + nw.ch) } + else + { return Pos(nw.line + (pos.line - old.line), pos.ch) } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex) + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { regChange(cm); } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore) + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight$$1) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight$$1); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) + { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); } + return result + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { doc.remove(from.line, nlines); } + if (added.length) { doc.insert(from.line, added); } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); } + doc.insert(from.line + 1, added$2); + } + + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { continue } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { continue } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { throw new Error("This document is already in use.") } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + if (!cm.options.lineWrapping) { findMaxLine(cm); } + cm.options.mode = doc.modeOption; + regChange(cm); + } + + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + + function History(startGen) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = startGen || 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true); + return histChange + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { array.pop(); } + else { break } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done) + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done) + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done) + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + var last; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + { pushSelectionToHistory(doc.sel, hist.done); } + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { hist.done.shift(); } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) { signal(doc, "historyAdded"); } + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500) + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + { hist.done[hist.done.length - 1] = sel; } + else + { pushSelectionToHistory(sel, hist.done); } + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + { clearSelectionEvents(hist.undone); } + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + { dest.push(sel); } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) + { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { return null } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } } + else if (out) { out.push(spans[i]); } + } + return !out ? spans : out.length ? out : null + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { return null } + var nw = []; + for (var i = 0; i < change.text.length; ++i) + { nw.push(removeClearedSpans(found[i])); } + return nw + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { return stretched } + if (!stretched) { return old } + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + { if (oldCur[k].marker == span.marker) { continue spans } } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m = (void 0); + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } } } + } + } + return copy + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head) + } else { + return new Range(other || head, head) + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) + { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + var this$1 = this; + + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); } + if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) } + else { return sel } + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + { sel = filterSelectionChange(doc, sel, options); } + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm) + { ensureCursorVisible(doc.cm); } + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { return } + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { out = sel.ranges.slice(0, i); } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel + } + + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight; + + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && + (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { break } + else {--i; continue} + } + } + if (!m.atomic) { continue } + + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), diff = (void 0); + if (dir < 0 ? preventCursorRight : preventCursorLeft) + { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) + { return skipAtomicInner(doc, near, pos, dir, mayClear) } + } + + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) + { far = movePos(doc, far, dir, far.line == pos.line ? line : null); } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null + } + } } + return pos + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || + skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0) + } + return found + } + + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) } + else { return null } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) } + else { return null } + } else { + return new Pos(pos.line, pos.ch + dir) + } + } + + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { return obj.canceled = true; } + }; + if (update) { obj.update = function (from, to, text, origin) { + if (from) { obj.from = clipPos(doc, from); } + if (to) { obj.to = clipPos(doc, to); } + if (text) { obj.text = text; } + if (origin !== undefined) { obj.origin = origin; } + }; } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); } + + if (obj.canceled) { + if (doc.cm) { doc.cm.curOp.updateInput = 2; } + return null + } + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin} + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) } + if (doc.cm.state.suppressEdits) { return } + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { return } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); } + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { return } + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + { break } + } + if (i == source.length) { return } + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return + } + selAfter = event; + } else if (suppress) { + source.push(event); + return + } else { break } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + var loop = function ( i ) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {} + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop( i$1 ); + + if ( returned ) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { return } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range( + Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch) + ); }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + { regLineChange(doc.cm, l, "gutter"); } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) } + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return + } + if (change.from.line > doc.lastLine()) { return } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) { selAfter = computeSelAfterChange(doc, change); } + if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); } + else { updateDoc(doc, change, spans); } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + + if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0))) + { doc.cantEdit = false; } + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + { signalCursorActivity(cm); } + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; } + } + + retreatFrontier(doc, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) + { regChange(cm); } + else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + { regLineChange(cm, from.line, "text"); } + else + { regChange(cm, from.line, to.line + 1, lendiff); } + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { signalLater(cm, "change", cm, obj); } + if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); } + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + var assign; + + if (!to) { to = from; } + if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); } + if (typeof code == "string") { code = doc.splitLines(code); } + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); } + else { no = lineNo(handle); } + if (no == null) { return null } + if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); } + return line + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + var this$1 = this; + + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this$1; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length }, + + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + var this$1 = this; + + for (var i = at, e = at + n; i < e; ++i) { + var line = this$1.lines[i]; + this$1.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + var this$1 = this; + + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; } + }, + + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + var this$1 = this; + + for (var e = at + n; at < e; ++at) + { if (op(this$1.lines[at])) { return true } } + } + }; + + function BranchChunk(children) { + var this$1 = this; + + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this$1; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size }, + + removeInner: function(at, n) { + var this$1 = this; + + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this$1.height -= oldHeight - child.height; + if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) { break } + at = 0; + } else { at -= sz; } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + + collapse: function(lines) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); } + }, + + insertInner: function(at, lines, height) { + var this$1 = this; + + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this$1.children.splice(++i, 0, leaf); + leaf.parent = this$1; + } + child.lines = child.lines.slice(0, remaining); + this$1.maybeSpill(); + } + break + } + at -= sz; + } + }, + + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) { return } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10) + me.parent.maybeSpill(); + }, + + iterN: function(at, n, op) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { return true } + if ((n -= used) == 0) { break } + at = 0; + } else { at -= sz; } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function(doc, node, options) { + var this$1 = this; + + if (options) { for (var opt in options) { if (options.hasOwnProperty(opt)) + { this$1[opt] = options[opt]; } } } + this.doc = doc; + this.node = node; + }; + + LineWidget.prototype.clear = function () { + var this$1 = this; + + var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) { return } + for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } } + if (!ws.length) { line.widgets = null; } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + + LineWidget.prototype.changed = function () { + var this$1 = this; + + var oldH = this.height, cm = this.doc.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { return } + if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + { addToScrollTop(cm, diff); } + } + + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { cm.display.alignWidgets = true; } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { widgets.push(widget); } + else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { addToScrollTop(cm, widget.height); } + cm.curOp.forceUpdate = true; + } + return true + }); + if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); } + return widget + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + var TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) { startOperation(cm); } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { signalLater(this, "clear", found.from, found.to); } + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), "text"); } + else if (cm) { + if (span.to != null) { max = lineNo(line); } + if (span.from != null) { min = lineNo(line); } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm) + { updateLineHeight(line, textHeight(cm.display)); } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } } + + if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { reCheckSelection(cm.doc); } + } + if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); } + if (withOp) { endOperation(cm); } + if (this.parent) { this.parent.clear(); } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + var this$1 = this; + + if (side == null && this.type == "bookmark") { side = 1; } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { return from } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { return to } + } + } + return from && {from: from, to: to} + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1 = this; + + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) { return } + runInOp(cm, function () { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + { updateLineHeight(line, line.height + dHeight); } + } + signalLater(cm, "markerChanged", cm, this$1); + }); + }; + + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } + } + this.lines.push(line); + }; + + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp + ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { return markTextShared(doc, from, to, options, type) } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) } + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) { copyObj(options, marker, false); } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + { return marker } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); } + if (options.insertLeft) { marker.widgetNode.insertLeft = true; } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + { throw new Error("Inserting collapsed marker partially overlapping an existing one") } + seeCollapsedSpans(); + } + + if (marker.addToHistory) + { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); } + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + { updateMaxLine = true; } + if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null)); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); } + }); } + + if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); } + + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) + { doc.clearHistory(); } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { cm.curOp.updateMaxLine = true; } + if (marker.collapsed) + { regChange(cm, from.line, to.line + 1); } + else if (marker.className || marker.startStyle || marker.endStyle || marker.css || + marker.attributes || marker.title) + { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } } + if (marker.atomic) { reCheckSelection(cm.doc); } + signalLater(cm, "markerAdded", cm, marker); + } + return marker + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function(markers, primary) { + var this$1 = this; + + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + { markers[i].parent = this$1; } + }; + + SharedTextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + { this$1.markers[i].clear(); } + signalLater(this, "clear"); + }; + + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj) + }; + eventMixin(SharedTextMarker); + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { options.widgetNode = widget.cloneNode(true); } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + { if (doc.linked[i].isParent) { return } } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary) + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; }) + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + var loop = function ( i ) { + var marker = markers[i], linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { return linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + + for (var i = 0; i < markers.length; i++) loop( i ); + } + + var nextDocId = 0; + var Doc = function(text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) } + if (firstLine == null) { firstLine = 0; } + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = (direction == "rtl") ? "rtl" : "ltr"; + this.extend = false; + + if (typeof text == "string") { text = this.splitLines(text); } + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) { this.iterN(from - this.first, to - from, op); } + else { this.iterN(this.first, this.first + this.size, from); } + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { height += lines[i].height; } + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), origin: "setValue", full: true}, true); + if (this.cm) { scrollToCoords(this.cm, 0, 0); } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text}, + + getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }}, + getLineNumber: function(line) {return lineNo(line)}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") { line = getLine(this, line); } + return visualLine(line) + }, + + lineCount: function() {return this.size}, + firstLine: function() {return this.first}, + lastLine: function() {return this.first + this.size - 1}, + + clipPos: function(pos) {return clipPos(this, pos)}, + + getCursor: function(start) { + var range$$1 = this.sel.primary(), pos; + if (start == null || start == "head") { pos = range$$1.head; } + else if (start == "anchor") { pos = range$$1.anchor; } + else if (start == "end" || start == "to" || start === false) { pos = range$$1.to(); } + else { pos = range$$1.from(); } + return pos + }, + listSelections: function() { return this.sel.ranges }, + somethingSelected: function() {return this.sel.somethingSelected()}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + var this$1 = this; + + if (!ranges.length) { return } + var out = []; + for (var i = 0; i < ranges.length; i++) + { out[i] = new Range(clipPos(this$1, ranges[i].anchor), + clipPos(this$1, ranges[i].head)); } + if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var this$1 = this; + + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { return lines } + else { return lines.join(lineSep || this.lineSeparator()) } + }, + getSelections: function(lineSep) { + var this$1 = this; + + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); } + parts[i] = sel; + } + return parts + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + { dup[i] = code; } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var this$1 = this; + + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range$$1 = sel.ranges[i]; + changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) + { makeChange(this$1, changes[i$1]); } + if (newSel) { setSelectionReplaceHistory(this, newSel); } + else if (this.cm) { ensureCursorVisible(this.cm); } + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } } + return {undo: done, redo: undone} + }, + clearHistory: function() { + var this$1 = this; + + this.history = new History(this.history.maxGeneration); + linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true); + }, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; } + return this.history.generation + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration) + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)} + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history.maxGeneration); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + setGutterMarker: docMethodOp(function(line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { line.gutterMarkers = null; } + return true + }) + }), + + clearGutter: docMethodOp(function(gutterID) { + var this$1 = this; + + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; } + return true + }); + } + }); + }), + + lineInfo: function(line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { return null } + n = line; + line = getLine(this, line); + if (!line) { return null } + } else { + n = lineNo(line); + if (n == null) { return null } + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets} + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { line[prop] = cls; } + else if (classTest(cls).test(line[prop])) { return false } + else { line[prop] += " " + cls; } + return true + }) + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { return false } + else if (cls == null) { line[prop] = null; } + else { + var found = cur.match(classTest(cls)); + if (!found) { return false } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true + }) + }), + + addLineWidget: docMethodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options) + }), + removeLineWidget: function(widget) { widget.clear(); }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range") + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark") + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + { markers.push(span.marker.parent || span.marker); } + } } + return markers + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo$$1 = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to || + span.from == null && lineNo$$1 != from.line || + span.from != null && lineNo$$1 == to.line && span.from >= to.ch) && + (!filter || filter(span.marker))) + { found.push(span.marker.parent || span.marker); } + } } + ++lineNo$$1; + }); + return found + }, + getAllMarks: function() { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) + { if (sps[i].from != null) { markers.push(sps[i].marker); } } } + }); + return markers + }, + + posFromIndex: function(off) { + var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { ch = off; return true } + off -= sz; + ++lineNo$$1; + }); + return clipPos(this, Pos(lineNo$$1, ch)) + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { return 0 } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), + this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc + }, + + linkedDoc: function(options) { + if (!options) { options = {}; } + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) { from = options.from; } + if (options.to != null && options.to < to) { to = options.to; } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { copy.history = this.history + ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy + }, + unlinkDoc: function(other) { + var this$1 = this; + + if (other instanceof CodeMirror) { other = other.doc; } + if (this.linked) { for (var i = 0; i < this.linked.length; ++i) { + var link = this$1.linked[i]; + if (link.doc != other) { continue } + this$1.linked.splice(i, 1); + other.unlinkDoc(this$1); + detachSharedMarkers(findSharedMarkers(this$1)); + break + } } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode}, + getEditor: function() {return this.cm}, + + splitLines: function(str) { + if (this.lineSep) { return str.split(this.lineSep) } + return splitLinesAuto(str) + }, + lineSeparator: function() { return this.lineSep || "\n" }, + + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { dir = "ltr"; } + if (dir == this.direction) { return } + this.direction = dir; + this.iter(function (line) { return line.order = null; }); + if (this.cm) { directionChanged(this.cm); } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + { return } + e_preventDefault(e); + if (ie) { lastDrop = +new Date; } + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { return } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var markAsReadAndPasteIfAllFilesAreRead = function () { + if (++read == n) { + operation(cm, function () { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, + text: cm.doc.splitLines( + text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())), + origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); + })(); + } + }; + var readTextFromFile = function (file, i) { + if (cm.options.allowDropFileTypes && + indexOf(cm.options.allowDropFileTypes, file.type) == -1) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + var reader = new FileReader; + reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); }; + reader.onload = function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + text[i] = content; + markAsReadAndPasteIfAllFilesAreRead(); + }; + reader.readAsText(file); + }; + for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); } + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { return cm.display.input.focus(); }, 20); + return + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) + { selected = cm.listSelections(); } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1) + { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } + catch(e){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return } + + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { img.parentNode.removeChild(img); } + } + } + + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { return } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { return } + var byClass = document.getElementsByClassName("CodeMirror"), editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { editors.push(cm); } + } + if (editors.length) { editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { f(editors[i]); } + }); } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { return } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { return forEachCodeMirror(onBlur); }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + + var keyNames = { + 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", + 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 145: "ScrollLock", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; } + + var keyMap = {}; + + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + "fallthrough": "basic" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars", + "Ctrl-O": "openLine" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + "fallthrough": ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; } + else if (/^a(lt)?$/i.test(mod)) { alt = true; } + else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; } + else if (/^s(hift)?$/i.test(mod)) { shift = true; } + else { throw new Error("Unrecognized modifier name: " + mod) } + } + if (alt) { name = "Alt-" + name; } + if (ctrl) { name = "Ctrl-" + name; } + if (cmd) { name = "Cmd-" + name; } + if (shift) { name = "Shift-" + name; } + return name + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue } + if (value == "...") { delete keymap[keyname]; continue } + + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = (void 0), name = (void 0); + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { copy[name] = val; } + else if (prev != val) { throw new Error("Inconsistent bindings for " + name) } + } + delete keymap[keyname]; + } } + for (var prop in copy) { keymap[prop] = copy[prop]; } + return keymap + } + + function lookupKey(key, map$$1, handle, context) { + map$$1 = getKeyMap(map$$1); + var found = map$$1.call ? map$$1.call(key, context) : map$$1[key]; + if (found === false) { return "nothing" } + if (found === "...") { return "multi" } + if (found != null && handle(found)) { return "handled" } + + if (map$$1.fallthrough) { + if (Object.prototype.toString.call(map$$1.fallthrough) != "[object Array]") + { return lookupKey(key, map$$1.fallthrough, handle, context) } + for (var i = 0; i < map$$1.fallthrough.length; i++) { + var result = lookupKey(key, map$$1.fallthrough[i], handle, context); + if (result) { return result } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod" + } + + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { name = "Alt-" + name; } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; } + if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; } + return name + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { return false } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { return false } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { name = event.code; } + return addModifierNames(name, event, noShift) + } + + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) + { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); } + ensureCursorVisible(cm); + }); + } + + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target + } + + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before") + } + + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + if (cm.doc.direction == "rtl") { dir = -dir; } + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = (dir < 0) == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); } + } else { ch = dir < 0 ? part.to : part.from; } + return new Pos(lineNo, ch, sticky) + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after") + } + + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { return moveLogically(line, start, dir) } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir) + } + + var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch) + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = (part.level == 1) == (dir < 0); + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky) + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder + ? new Pos(start.line, mv(ch, 1), "before") + : new Pos(start.line, ch, "after"); }; + + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = (dir > 0) == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { return res } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { return res } + } + + // Case 4: Nowhere to move + return null + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); }, + killLine: function (cm) { return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + { return {from: range.head, to: Pos(range.head.line + 1, 0)} } + else + { return {from: range.head, to: Pos(range.head.line, len)} } + } else { + return {from: range.from(), to: range.to()} + } + }); }, + deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }); }); }, + delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), to: range.from() + }); }); }, + delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()} + }); }, + delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos } + }); }, + undo: function (cm) { return cm.undo(); }, + redo: function (cm) { return cm.redo(); }, + undoSelection: function (cm) { return cm.undoSelection(); }, + redoSelection: function (cm) { return cm.redoSelection(); }, + goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); }, + goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); }, + goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1} + ); }, + goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); }, + {origin: "+move", bias: 1} + ); }, + goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1} + ); }, + goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div") + }, sel_move); }, + goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div") + }, sel_move); }, + goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) } + return pos + }, sel_move); }, + goLineUp: function (cm) { return cm.moveV(-1, "line"); }, + goLineDown: function (cm) { return cm.moveV(1, "line"); }, + goPageUp: function (cm) { return cm.moveV(-1, "page"); }, + goPageDown: function (cm) { return cm.moveV(1, "page"); }, + goCharLeft: function (cm) { return cm.moveH(-1, "char"); }, + goCharRight: function (cm) { return cm.moveH(1, "char"); }, + goColumnLeft: function (cm) { return cm.moveH(-1, "column"); }, + goColumnRight: function (cm) { return cm.moveH(1, "column"); }, + goWordLeft: function (cm) { return cm.moveH(-1, "word"); }, + goGroupRight: function (cm) { return cm.moveH(1, "group"); }, + goGroupLeft: function (cm) { return cm.moveH(-1, "group"); }, + goWordRight: function (cm) { return cm.moveH(1, "word"); }, + delCharBefore: function (cm) { return cm.deleteH(-1, "char"); }, + delCharAfter: function (cm) { return cm.deleteH(1, "char"); }, + delWordBefore: function (cm) { return cm.deleteH(-1, "word"); }, + delWordAfter: function (cm) { return cm.deleteH(1, "word"); }, + delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); }, + delGroupAfter: function (cm) { return cm.deleteH(1, "group"); }, + indentAuto: function (cm) { return cm.indentSelection("smart"); }, + indentMore: function (cm) { return cm.indentSelection("add"); }, + indentLess: function (cm) { return cm.indentSelection("subtract"); }, + insertTab: function (cm) { return cm.replaceSelection("\t"); }, + insertSoftTab: function (cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { cm.indentSelection("add"); } + else { cm.execCommand("insertTab"); } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { return runInOp(cm, function () { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { continue } + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); }, + newlineAndIndent: function (cm) { return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) + { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) + { cm.indentLine(sels[i$1].from().line, null, true); } + ensureCursorVisible(cm); + }); }, + openLine: function (cm) { return cm.replaceSelection("\n", "start"); }, + toggleOverwrite: function (cm) { return cm.toggleOverwrite(); } + }; + + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, visual, lineN, 1) + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, line, lineN, -1) + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) + } + return start + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { return false } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + if (dropShift) { cm.display.shift = false; } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done + } + + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { return result } + } + return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) + || lookupKey(name, cm.options.keyMap, handle, cm) + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed; + + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { return "handled" } + if (/\'$/.test(name)) + { cm.state.keySeq = null; } + else + { stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true } + } + return dispatchKeyInner(cm, name, e, handle) + } + + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + + if (result == "multi") + { cm.state.keySeq = name; } + if (result == "handled") + { signalLater(cm, "keyHandled", cm, name, e); } + + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + + return !!result + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { return false } + + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); }) + || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + { return doHandleBinding(cm, b) } + }) + } else { + return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); }) + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); }) + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { return } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + { cm.replaceSelection("", null, "cut"); } + } + if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand) + { document.execCommand("cut"); } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + { showCrossHair(cm); } + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) { this.doc.sel.shift = false; } + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} + if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { return } + if (handleCharBinding(cm, e, ch)) { return } + cm.display.input.onKeyPress(e); + } + + var DOUBLECLICK_DELAY = 400; + + var PastClick = function(time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && + cmp(pos, this.pos) == 0 && button == this.button + }; + + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple" + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double" + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single" + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return } + display.input.ensurePolled(); + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { return display.scroller.draggable = true; }, 100); + } + return + } + if (clickInGutter(cm, e)) { return } + var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) + { cm.state.selectingText(e); } + + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return } + + if (button == 1) { + if (pos) { leftButtonDown(cm, pos, repeat, e); } + else if (e_target(e) == display.scroller) { e_preventDefault(e); } + } else if (button == 2) { + if (pos) { extendSelection(cm.doc, pos); } + setTimeout(function () { return display.input.focus(); }, 20); + } else if (button == 3) { + if (captureRightClick) { cm.display.input.onContextMenu(e); } + else { delayBlurEvent(cm); } + } + } + + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { name = "Double" + name; } + else if (repeat == "triple") { name = "Triple" + name; } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { bound = commands[bound]; } + if (!bound) { return false } + var done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done + }) + } + + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; } + if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; } + if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); } + return value + } + + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { setTimeout(bind(ensureFocus, cm), 0); } + else { cm.curOp.focus = activeElt(); } + + var behavior = configureMouse(cm, repeat, event); + + var sel = cm.doc.sel, contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && + repeat == "single" && (contained = sel.contains(pos)) > -1 && + (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && + (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) + { leftButtonStartDrag(cm, event, pos, behavior); } + else + { leftButtonSelect(cm, event, pos, behavior); } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { display.scroller.draggable = false; } + cm.state.draggingText = false; + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) + { extendSelection(cm.doc, pos, null, null, behavior.extend); } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if (webkit || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); } + else + { display.input.focus(); } + } + }); + var mouseMove = function(e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { return moved = true; }; + // Let the drag handler handle this. + if (webkit) { display.scroller.draggable = true; } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + // IE's approach to draggable + if (display.scroller.dragDrop) { display.scroller.dragDrop(); } + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + + delayBlurEvent(cm); + setTimeout(function () { return display.input.focus(); }, 20); + } + + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { return new Range(pos, pos) } + if (unit == "word") { return cm.findWordAt(pos) } + if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) } + var result = unit(cm, pos); + return new Range(result.from, result.to) + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + var display = cm.display, doc = cm.doc; + e_preventDefault(event); + + var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + { ourRange = ranges[ourIndex]; } + else + { ourRange = new Range(start, start); } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { ourRange = new Range(start, start); } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range$$1 = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) + { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); } + else + { ourRange = range$$1; } + } + + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), + {scroll: false, origin: "*mouse"}); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { return } + lastPos = pos; + + if (behavior.unit == "rectangle") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } + else if (text.length > leftPos) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } + } + if (!ranges.length) { ranges.push(new Range(start, start)); } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range$$1 = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, head; + if (cmp(range$$1.anchor, anchor) > 0) { + head = range$$1.head; + anchor = minPos(oldRange.from(), range$$1.anchor); + } else { + head = range$$1.anchor; + anchor = maxPos(oldRange.to(), range$$1.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { return } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { setTimeout(operation(cm, function () { + if (counter != curCount) { return } + display.scroller.scrollTop += outside; + extend(e); + }), 50); } + } + } + + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { done(e); } + else { extend(e); } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range$$1) { + var anchor = range$$1.anchor; + var head = range$$1.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 } + var order = getOrder(anchorLine); + if (!order) { return range$$1 } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 } + var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { return range$$1 } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) + { leftSide = dir < 0; } + else + { leftSide = dir > 0; } + } + + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head) + } + + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { mX = e.clientX; mY = e.clientY; } + catch(e) { return false } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false } + if (prevent) { e_preventDefault(e); } + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) } + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e) + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true) + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return } + if (signalDOMEvent(cm, e, "contextmenu")) { return } + if (!captureRightClick) { cm.display.input.onContextMenu(e); } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { return false } + return gutterEvent(cm, e, "gutterContextMenu", false) + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + var Init = {toString: function(){return "CodeMirror.Init"}}; + + var defaults = {}; + var optionHandlers = {}; + + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { optionHandlers[name] = + notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; } + } + + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { return cm.setValue(val); }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { return } + var newBreaks = [], lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { break } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) + { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { cm.refresh(); } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME + }, true); + option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true); + option("autocorrect", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true); + option("autocapitalize", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { prev.detach(cm, next); } + if (next.attach) { next.attach(cm, prev || null); } + }); + option("extraKeys", null); + option("configureMouse", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { return integer; }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + + option("screenReaderLabel", null, function (cm, val) { + val = (val === '') ? null : val; + cm.display.input.screenReaderLabelChanged(val); + }); + + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { cm.display.input.resetPosition(); } + }); + + option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true); + option("phrases", null); + } + + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { return updateScrollbars(cm); }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1 = this; + + if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) } + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + + var doc = options.value; + if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); } + else if (options.mode) { doc.modeOption = options.mode; } + this.doc = doc; + + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) + { this.display.wrapper.className += " CodeMirror-wrap"; } + initScrollbars(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), // stores highlight worker timeout + keySeq: null, // Unfinished key sequence + specialChars: null + }; + + if (options.autofocus && !mobile) { display.input.focus(); } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); } + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || this.hasFocus()) + { setTimeout(bind(onFocus, this), 20); } + else + { onBlur(this); } + + for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt)) + { optionHandlers[opt](this$1, options[opt], Init); } } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { options.finishInit(this); } + for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && + getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") + { display.lineDiv.style.textRendering = "auto"; } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + { on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { return } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); } + else + { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); + on(d.input.getField(), "contextmenu", function (e) { + if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); } + }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, prevTouch = {end: 0}; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date; + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { return false } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1 + } + function farAway(touch, other) { + if (other.left == null) { return true } + var dx = other.left - touch.left, dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20 + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date; + d.activeTouch = {start: now, moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null}; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { d.activeTouch.moved = true; } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && + !touch.moved && new Date - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), range; + if (!touch.prev || farAway(touch, touch.prev)) // Single tap + { range = new Range(pos, pos); } + else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap + { range = cm.findWordAt(pos); } + else // Triple tap + { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); }); + on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + d.dragFunctions = { + enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }}, + over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, + start: function (e) { return onDragStart(cm, e); }, + drop: operation(cm, onDrop), + leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} + }; + + var inp = d.input.getField(); + on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { return onFocus(cm, e); }); + on(inp, "blur", function (e) { return onBlur(cm, e); }); + } + + var initHooks = []; + CodeMirror.defineInitHook = function (f) { return initHooks.push(f); }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) { how = "add"; } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { how = "prev"; } + else { state = getContextBefore(cm, n).state; } + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { line.stateAfter = null; } + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { return } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); } + else { indentation = 0; } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} } + if (pos < indentation) { indentString += spaceStr(indentation - pos); } + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { sel = doc.sel; } + + var recent = +new Date - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) + { multiPaste.push(doc.splitLines(lastCopied.text[i])); } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { return [l]; }); + } + } + + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range$$1 = sel.ranges[i$1]; + var from = range$$1.from(), to = range$$1.to(); + if (range$$1.empty()) { + if (deleted && deleted > 0) // Handle deletion + { from = Pos(from.line, from.ch - deleted); } + else if (cm.state.overwrite && !paste) // Handle overwrite + { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); } + else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted) + { from = to = Pos(from.line, 0); } + } + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input")}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) + { triggerElectric(cm, inserted); } + + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) + { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } + return true + } + } + + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { return } + var sel = cm.doc.sel; + + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range$$1 = sel.ranges[i]; + if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue } + var mode = cm.getModeAt(range$$1.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range$$1.head.line, "smart"); + break + } } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch))) + { indented = indentLine(cm, range$$1.head.line, "smart"); } + } + if (indented) { signalLater(cm, "electricInput", cm, range$$1.head.line); } + } + } + + function copyableRanges(cm) { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return {text: text, ranges: ranges} + } + + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { te.style.width = "1000px"; } + else { te.setAttribute("wrap", "off"); } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { te.style.border = "1px solid black"; } + disableBrowserMagic(te); + return div + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + var helpers = CodeMirror.helpers = {}; + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); this.display.input.focus();}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") { return } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + { operation(this, optionHandlers[option])(this, value, old); } + signal(this, "optionChange", this, option); + }, + + getOption: function(option) {return this.options[option]}, + getDoc: function() {return this.doc}, + + addKeyMap: function(map$$1, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map$$1)); + }, + removeKeyMap: function(map$$1) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + { if (maps[i] == map$$1 || maps[i].name == map$$1) { + maps.splice(i, 1); + return true + } } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { throw new Error("Overlays may not be stateful.") } + insertSorted(this.state.overlays, + {mode: mode, modeSpec: spec, opaque: options && options.opaque, + priority: (options && options.priority) || 0}, + function (overlay) { return overlay.priority; }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var this$1 = this; + + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this$1.state.modeGen++; + regChange(this$1); + return + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; } + else { dir = dir ? "add" : "subtract"; } + } + if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); } + }), + indentSelection: methodOp(function(how) { + var this$1 = this; + + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range$$1 = ranges[i]; + if (!range$$1.empty()) { + var from = range$$1.from(), to = range$$1.to(); + var start = Math.max(end, from.line); + end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + { indentLine(this$1, j, how); } + var newRanges = this$1.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); } + } else if (range$$1.head.line > end) { + indentLine(this$1, range$$1.head.line, how, true); + end = range$$1.head.line; + if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); } + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + return takeToken(this, pos, precise) + }, + + getLineTokens: function(line, precise) { + return takeToken(this, Pos(line), precise, true) + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) { type = styles[2]; } + else { for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; } + else if (styles[mid * 2 + 1] < ch) { before = mid + 1; } + else { type = styles[mid * 2 + 2]; break } + } } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1) + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { return mode } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0] + }, + + getHelpers: function(pos, type) { + var this$1 = this; + + var found = []; + if (!helpers.hasOwnProperty(type)) { return found } + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { found.push(help[mode[type]]); } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { found.push(val); } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1) + { found.push(cur.val); } + } + return found + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getContextBefore(this, line + 1, precise).state + }, + + cursorCoords: function(start, mode) { + var pos, range$$1 = this.doc.sel.primary(); + if (start == null) { pos = range$$1.head; } + else if (typeof start == "object") { pos = clipPos(this.doc, start); } + else { pos = start ? range$$1.from() : range$$1.to(); } + return cursorCoords(this, pos, mode || "page") + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page") + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top) + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset) + }, + heightAtLine: function(line, mode, includeWidgets) { + var end = false, lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { line = this.doc.first; } + else if (line > last) { line = last; end = true; } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top + + (end ? this.doc.height - heightAtLine(lineObj) : 0) + }, + + defaultTextHeight: function() { return textHeight(this.display) }, + defaultCharWidth: function() { return charWidth(this.display) }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + { top = pos.top - node.offsetHeight; } + else if (pos.bottom + node.offsetHeight <= vspace) + { top = pos.bottom; } + if (left + node.offsetWidth > hspace) + { left = hspace - node.offsetWidth; } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { left = 0; } + else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; } + node.style.left = left + "px"; + } + if (scroll) + { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); } + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + { return commands[cmd].call(null, this) } + }, + + triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), + + findPosH: function(from, amount, unit, visually) { + var this$1 = this; + + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this$1.doc, cur, dir, unit, visually); + if (cur.hitSide) { break } + } + return cur + }, + + moveH: methodOp(function(dir, unit) { + var this$1 = this; + + this.extendSelectionsBy(function (range$$1) { + if (this$1.display.shift || this$1.doc.extend || range$$1.empty()) + { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) } + else + { return dir < 0 ? range$$1.from() : range$$1.to() } + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + { doc.replaceSelection("", null, "+delete"); } + else + { deleteNearSelection(this, function (range$$1) { + var other = findPosH(doc, range$$1.head, dir, unit, false); + return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other} + }); } + }), + + findPosV: function(from, amount, unit, goalColumn) { + var this$1 = this; + + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this$1, cur, "div"); + if (x == null) { x = coords.left; } + else { coords.left = x; } + cur = findPosV(this$1, coords, dir, unit); + if (cur.hitSide) { break } + } + return cur + }, + + moveV: methodOp(function(dir, unit) { + var this$1 = this; + + var doc = this.doc, goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range$$1) { + if (collapse) + { return dir < 0 ? range$$1.from() : range$$1.to() } + var headPos = cursorCoords(this$1, range$$1.head, "div"); + if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; } + goals.push(headPos.left); + var pos = findPosV(this$1, headPos, dir, unit); + if (unit == "page" && range$$1 == doc.sel.primary()) + { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); } + return pos + }, sel_move); + if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++) + { doc.sel.ranges[i].goalColumn = goals[i]; } } + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function (ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); } + : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); }; + while (start > 0 && check(line.charAt(start - 1))) { --start; } + while (end < line.length && check(line.charAt(end))) { ++end; } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)) + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) { return } + if (this.state.overwrite = !this.state.overwrite) + { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + else + { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return this.display.input.getField() == activeElt() }, + isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, + + scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), + getScrollInfo: function() { + var scroller = this.display.scroller; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), clientWidth: displayWidth(this)} + }, + + scrollIntoView: methodOp(function(range$$1, margin) { + if (range$$1 == null) { + range$$1 = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) { margin = this.options.cursorScrollMargin; } + } else if (typeof range$$1 == "number") { + range$$1 = {from: Pos(range$$1, 0), to: null}; + } else if (range$$1.from == null) { + range$$1 = {from: range$$1, to: null}; + } + if (!range$$1.to) { range$$1.to = range$$1.from; } + range$$1.margin = margin || 0; + + if (range$$1.from.line != null) { + scrollToRange(this, range$$1); + } else { + scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin); + } + }), + + setSize: methodOp(function(width, height) { + var this$1 = this; + + var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; }; + if (width != null) { this.display.wrapper.style.width = interpret(width); } + if (height != null) { this.display.wrapper.style.height = interpret(height); } + if (this.options.lineWrapping) { clearLineMeasurementCache(this); } + var lineNo$$1 = this.display.viewFrom; + this.doc.iter(lineNo$$1, this.display.viewTo, function (line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) + { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, "widget"); break } } } + ++lineNo$$1; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + + operation: function(f){return runInOp(this, f)}, + startOperation: function(){return startOperation(this)}, + endOperation: function(){return endOperation(this)}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping) + { estimateLineHeights(this); } + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { this.state.selectingText(); } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old + }), + + phrase: function(phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText + }, + + getInputField: function(){return this.display.input.getField()}, + getWrapperElement: function(){return this.display.wrapper}, + getScrollerElement: function(){return this.display.scroller}, + getGutterElement: function(){return this.display.gutters} + }; + eventMixin(CodeMirror); + + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "char", "column" (like char, but doesn't + // cross line boundaries), "word" (across next word), or "group" (to + // the start of next group of word or non-word-non-whitespace + // chars). The visually param controls whether, in right-to-left + // text, direction 1 means to move towards the next index in the + // string, or towards the character to the right of the current + // position. The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + var lineDir = visually && doc.direction == "rtl" ? -dir : dir; + function findNextLine() { + var l = pos.line + lineDir; + if (l < doc.first || l >= doc.first + doc.size) { return false } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l) + } + function moveOnce(boundToLine) { + var next; + if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) + { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); } + else + { return false } + } else { + pos = next; + } + return true + } + + if (unit == "char") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { break } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) { type = "s"; } + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";} + break + } + + if (type) { sawType = type; } + if (dir > 0 && !moveOnce(!first)) { break } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { result.hitSide = true; } + return result + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { break } + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break } + y += dir * 5; + } + return target + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function(cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + + ContentEditableInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = input.cm; + var div = input.div = display.lineDiv; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + + on(div, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); } + }); + + on(div, "compositionstart", function (e) { + this$1.composing = {data: e.data, done: false}; + }); + on(div, "compositionupdate", function (e) { + if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; } + }); + on(div, "compositionend", function (e) { + if (this$1.composing) { + if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); } + this$1.composing.done = true; + } + }); + + on(div, "touchstart", function () { return input.forceCompositionEnd(); }); + + on(div, "input", function () { + if (!this$1.composing) { this$1.readFromDOMSoon(); } + }); + + function onCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = document.activeElement; + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { input.showPrimarySelection(); } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + + ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.div.setAttribute('aria-label', label); + } else { + this.div.removeAttribute('aria-label'); + } + }; + + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = document.activeElement == this.div; + return result + }; + + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { return } + if (info.focus || takeFocus) { this.showPrimarySelection(); } + this.showMultipleSelections(info); + }; + + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection() + }; + + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary(); + var from = prim.from(), to = prim.to(); + + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return + } + + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && + cmp(minPos(curAnchor, curFocus), from) == 0 && + cmp(maxPos(curAnchor, curFocus), to) == 0) + { return } + + var view = cm.display.view; + var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) || + {node: view[0].measure.map[2], offset: 0}; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]}; + } + + if (!start || !end) { + sel.removeAllRanges(); + return + } + + var old = sel.rangeCount && sel.getRangeAt(0), rng; + try { rng = range(start.node, start.offset, end.offset, end.node); } + catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { sel.addRange(old); } + else if (gecko) { this.startGracePeriod(); } + } + this.rememberSelection(); + }; + + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1 = this; + + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1.gracePeriod = false; + if (this$1.selectionChanged()) + { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); } + }, 20); + }; + + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; + }; + + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { return false } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node) + }; + + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor() || document.activeElement != this.div) + { this.showSelection(this.prepareSelection(), true); } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { this.div.blur(); }; + ContentEditableInput.prototype.getField = function () { return this.div }; + + ContentEditableInput.prototype.supportsTouch = function () { return true }; + + ContentEditableInput.prototype.receivedFocus = function () { + var input = this; + if (this.selectionInEditor()) + { this.pollSelection(); } + else + { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } + + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || + sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset + }; + + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return } + var sel = this.getSelection(), cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs}); + this.blur(); + this.focus(); + return + } + if (this.composing) { return } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; } + }); } + }; + + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + + var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); + var from = sel.from(), to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) + { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) + { to = Pos(to.line + 1, 0); } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false } + + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + + if (!fromNode) { return false } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } + else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } + else { break } + } + + var cutFront = 0, cutEnd = 0; + var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) + { ++cutFront; } + var newBot = lst(newText), oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), + oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) + { ++cutEnd; } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true + } + }; + + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { return } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1 = this; + + if (this.readDOMTimeout != null) { return } + this.readDOMTimeout = setTimeout(function () { + this$1.readDOMTimeout = null; + if (this$1.composing) { + if (this$1.composing.done) { this$1.composing = null; } + else { return } + } + this$1.updateFromDOM(); + }, 80); + }; + + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1 = this; + + if (this.cm.isReadOnly() || !this.pollContent()) + { runInOp(this.cm, function () { return regChange(this$1.cm); }); } + }; + + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { return } + e.preventDefault(); + if (!this.cm.isReadOnly()) + { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); } + }; + + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + + ContentEditableInput.prototype.needsContentAttribute = true; + + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { return null } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + + var order = getOrder(line, cm.doc.direction), side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result + } + + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) + { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } } + return false + } + + function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos } + + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false; + function recognizeMarker(id) { return function (marker) { return marker.id == id; } } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { text += lineSep; } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return + } + var markerID = node.getAttribute("cm-marker"), range$$1; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range$$1 = found[0].find(0))) + { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); } + return + } + if (node.getAttribute("contenteditable") == "false") { return } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return } + + if (isBlock) { close(); } + for (var i = 0; i < node.childNodes.length; i++) + { walk(node.childNodes[i]); } + + if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; } + if (isBlock) { closing = true; } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { break } + from = from.nextSibling; + extraLinebreak = false; + } + return text + } + + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) } + node = null; offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { return null } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) + { return locateNodeInLineView(lineView, node, offset) } + } + } + + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, bad = false; + if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad) + } + } + + var textNode = node.nodeType == 3 ? node : null, topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { offset = textNode.nodeValue.length; } + } + while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; } + var measure = lineView.measure, maps = measure.maps; + + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map$$1 = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map$$1.length; j += 3) { + var curNode = map$$1[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map$$1[j] + offset; + if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; } + return Pos(line, ch) + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { return badPos(found, bad) } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) + { return badPos(Pos(found.line, found.ch - dist), bad) } + else + { dist += after.textContent.length; } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) + { return badPos(Pos(found.line, found.ch + dist$1), bad) } + else + { dist$1 += before.textContent.length; } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function(cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + + TextareaInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = this.cm; + this.createField(display); + var te = this.textarea; + + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { te.style.width = "0px"; } + + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; } + input.poll(); + }); + + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + + cm.state.pasteIncoming = +new Date; + input.fastPoll(); + }); + + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { cm.state.cutIncoming = +new Date; } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date; + input.focus(); + return + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { e_preventDefault(e); } + }); + + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { input.composing.range.clear(); } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + + TextareaInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.textarea.setAttribute('aria-label', label); + } else { + this.textarea.removeAttribute('aria-label'); + } + }; + + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, display = cm.display, doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result + }; + + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { return } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { selectInput(this.textarea); } + if (ie && ie_version >= 9) { this.hasSelection = content; } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { this.hasSelection = null; } + } + }; + + TextareaInput.prototype.getField = function () { return this.textarea }; + + TextareaInput.prototype.supportsTouch = function () { return false }; + + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { this.textarea.focus(); } + catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + + TextareaInput.prototype.blur = function () { this.textarea.blur(); }; + + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + + TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1 = this; + + if (this.pollingFast) { return } + this.polling.set(this.cm.options.pollInterval, function () { + this$1.poll(); + if (this$1.cm.state.focused) { this$1.slowPoll(); } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) {missed = true; input.polling.set(60, p);} + else {input.pollingFast = false; input.slowPoll();} + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1 = this; + + var cm = this.cm, input = this.textarea, prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || + (hasSelection(input) && !prevInput && !this.composing) || + cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) + { return false } + + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { return false } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false + } + + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { prevInput = "\u200b"; } + if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") } + } + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; } + + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, + null, this$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; } + else { this$1.prevInput = text; } + + if (this$1.composing) { + this$1.composing.range.clear(); + this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"), + {className: "CodeMirror-composing"}); + } + }); + return true + }; + + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { this.pollingFast = false; } + }; + + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { this.hasSelection = null; } + this.fastPoll(); + }; + + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, cm = input.cm, display = cm.display, te = input.textarea; + if (input.contextMenuPending) { input.contextMenuPending(); } + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) { return } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); } + + var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { window.scrollTo(null, oldScrollY); } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { return } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); } + var i = 0, poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && + te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) { prepareSelectAllHack(); } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { this.reset(); } + this.textarea.disabled = val == "nocursor"; + }; + + TextareaInput.prototype.setUneditable = function () {}; + + TextareaInput.prototype.needsContentAttribute = false; + + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) + { options.tabindex = textarea.tabIndex; } + if (!options.placeholder && textarea.placeholder) + { options.placeholder = textarea.placeholder; } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { return textarea; }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == "function") + { textarea.form.submit = realSubmit; } + } + }; + }; + + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); }, + options); + return cm + } + + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + { CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments)} + })(Doc.prototype[prop]); } } + + eventMixin(Doc); + CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name/*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; } + defineMode.apply(this, arguments); + }; + + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + + CodeMirror.fromTextArea = fromTextArea; + + addLegacyProps(CodeMirror); + + CodeMirror.version = "5.53.2"; + + return CodeMirror; + +}))); diff --git a/docs/contact.md b/docs/contact.md deleted file mode 100644 index 3cde441f..00000000 --- a/docs/contact.md +++ /dev/null @@ -1,5 +0,0 @@ -# Contact - -If you find it useful for any purpose I will be glad to hear from you. -If you need help to develop a programming or domain specific language please contact me. - diff --git a/docs/curradd.md b/docs/curradd.md deleted file mode 100644 index fb8257a5..00000000 --- a/docs/curradd.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Tribute to Alonso C. ---- - -# Tribute to Alonso C. - -In mathematics functions are relations between two sets (denoted as f: X -> Y). -Quite often functions take several arguments and give one result (for example -add: R x R -> R). Interestingly it is possible to define only functions -which take only one argument and still be possible to express any function. -The process of transforming a function with arbitrary number of arguments -to a function which takes only one argument is called currying. - -## Function Currying - -```never -func add(x : int, y : int) -> int -{ - x + y -} -``` - -The above code snippet presents function ```add``` which returns sum of its -arguments. - -```never -func cadd(x : int) -> (int) -> int -{ - let func (y : int) -> int - { - x + y - } -} -``` - -To curry ```add``` function we define function ```cadd``` which takes first -addend and returns anonymous function (often called lambda) which takes second -addend (cadd: R -> (R -> R)). Then such function can be used to return sum. -Curried ```add``` is presented in Never programming language in the above listing. - -```never -func main() -> int -{ - print(add(5, 7)); - print(add(2, add(3, 7))); - - print(cadd(5)(7)); - print(cadd(2)(cadd(3)(7))); - - 0 -} -``` - -Lets see how ```add``` and ```cadd``` functions are used to add two numbers. -As expected ```add``` takes two arguments. Interesting is usage of ```cadd``` -function which returns anonymous function which is invoked with second argument. - -# Summary - -I hope you liked this short introduction to currying. It is often used -in lambda calculus discovered by Alonso Church. - - diff --git a/docs/custom_theme/github.min.css b/docs/custom_theme/github.min.css deleted file mode 100644 index 5477a1b9..00000000 --- a/docs/custom_theme/github.min.css +++ /dev/null @@ -1 +0,0 @@ -.hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:bold}.hljs-number,.hljs-literal,.hljs-variable,.hljs-template-variable,.hljs-tag .hljs-attr{color:#008080}.hljs-string,.hljs-doctag{color:#d14}.hljs-title,.hljs-section,.hljs-selector-id{color:#900;font-weight:bold}.hljs-subst{font-weight:normal}.hljs-type,.hljs-class .hljs-title{color:#458;font-weight:bold}.hljs-tag,.hljs-name,.hljs-attribute{color:#000080;font-weight:normal}.hljs-regexp,.hljs-link{color:#009926}.hljs-symbol,.hljs-bullet{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} \ No newline at end of file diff --git a/docs/custom_theme/highlight.min.js b/docs/custom_theme/highlight.min.js deleted file mode 100644 index 17438455..00000000 --- a/docs/custom_theme/highlight.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - Highlight.js 10.0.0-beta.0 (13959284) - License: BSD-3-Clause - Copyright (c) 2006-2020, Ivan Sagalaev -*/ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).hljs=n()}(this,(function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!n.hasOwnProperty(r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}function n(e){return e.replace(/&/g,"&").replace(//g,">")}function t(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach((function(e){for(n in e)t[n]=e[n]})),t}function r(e){return e.nodeName.toLowerCase()}var a=Object.freeze({__proto__:null,escapeHTML:n,inherit:t,nodeStream:function(e){var n=[];return function e(t,a){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=e(i,a),r(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n},mergeStreams:function(e,t,a){var i=0,s="",o=[];function l(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||t.length;){var g=l();if(s+=n(a.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+n(a.substr(i))}});const i="",s=e=>!!e.kind;class o{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=n(e)}openNode(e){if(!s(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){s(e)&&(this.buffer+=i)}span(e){this.buffer+=``}value(){return this.buffer}}class l{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){e.children&&(e.children.every(e=>"string"==typeof e)?(e.text=e.children.join(""),delete e.children):e.children.forEach(e=>{"string"!=typeof e&&l._collapse(e)}))}}class c extends l{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){let t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new o(this,this.options).value()}finalize(){}}function u(e){return e&&e.source||e}const d="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",g={begin:"\\\\[\\s\\S]",relevance:0},h={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[g]},f={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[g]},p={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,r){var a=t({className:"comment",begin:e,end:n,contains:[]},r||{});return a.contains.push(p),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),a},b=m("//","$"),v=m("/\\*","\\*/"),x=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:d,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",BACKSLASH_ESCAPE:g,APOS_STRING_MODE:h,QUOTE_STRING_MODE:f,PHRASAL_WORDS_MODE:p,COMMENT:m,C_LINE_COMMENT_MODE:b,C_BLOCK_COMMENT_MODE:v,HASH_COMMENT_MODE:x,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:d,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^\/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[g,{begin:/\[/,end:/\]/,relevance:0,contains:[g]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0}}),E="of and for in not or if then".split(" ");function R(e,n){return n?+n:(t=e,E.includes(t.toLowerCase())?0:1);var t}const N=n,w=t,{nodeStream:y,mergeStreams:O}=a;return function(n){var r=[],a={},i={},s=[],o=!0,l=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,d="Could not find the language '{}', did you forget to load/include a language module?",g={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0,__emitter:c};function h(e){return g.noHighlightRe.test(e)}function f(e,n,t,r){var a={code:n,language:e};T("before:highlight",a);var i=a.result?a.result:p(a.language,a.code,t,r);return i.code=a.code,T("after:highlight",i),i}function p(e,n,r,i){var s=n;function l(e,n){var t=v.case_insensitive?n[0].toLowerCase():n[0];return e.keywords.hasOwnProperty(t)&&e.keywords[t]}function c(){null!=_.subLanguage?function(){if(""!==k){var e="string"==typeof _.subLanguage;if(!e||a[_.subLanguage]){var n=e?p(_.subLanguage,k,!0,E[_.subLanguage]):m(k,_.subLanguage.length?_.subLanguage:void 0);_.relevance>0&&(T+=n.relevance),e&&(E[_.subLanguage]=n.top),w.addSublanguage(n.emitter,n.language)}else w.addText(k)}}():function(){var e,n,t,r;if(_.keywords){for(n=0,_.lexemesRe.lastIndex=0,t=_.lexemesRe.exec(k),r="";t;){r+=k.substring(n,t.index);var a=null;(e=l(_,t))?(w.addText(r),r="",T+=e[1],a=e[0],w.addKeyword(t[0],a)):r+=t[0],n=_.lexemesRe.lastIndex,t=_.lexemesRe.exec(k)}r+=k.substr(n),w.addText(r)}else w.addText(k)}(),k=""}function h(e){e.className&&w.openNode(e.className),_=Object.create(e,{parent:{value:_}})}var f={};function b(n,t){var a,i=t&&t[0];if(k+=n,null==i)return c(),0;if("begin"==f.type&&"end"==t.type&&f.index==t.index&&""===i){if(k+=s.slice(t.index,t.index+1),!o)throw(a=Error("0 width match regex")).languageName=e,a.badRule=f.rule,a;return 1}if(f=t,"begin"===t.type)return function(e){var n=e[0],t=e.rule;return t.__onBegin&&(t.__onBegin(e)||{}).ignoreMatch?function(e){return 0===_.matcher.regexIndex?(k+=e[0],1):(A=!0,0)}(n):(t&&t.endSameAsBegin&&(t.endRe=RegExp(n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),t.skip?k+=n:(t.excludeBegin&&(k+=n),c(),t.returnBegin||t.excludeBegin||(k=n)),h(t),t.returnBegin?0:n.length)}(t);if("illegal"===t.type&&!r)throw(a=Error('Illegal lexeme "'+i+'" for mode "'+(_.className||"")+'"')).mode=_,a;if("end"===t.type){var l=function(e){var n=e[0],t=s.substr(e.index),r=function e(n,t){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(n.endRe,t)){for(;n.endsParent&&n.parent;)n=n.parent;return n}if(n.endsWithParent)return e(n.parent,t)}(_,t);if(r){var a=_;a.skip?k+=n:(a.returnEnd||a.excludeEnd||(k+=n),c(),a.excludeEnd&&(k=n));do{_.className&&w.closeNode(),_.skip||_.subLanguage||(T+=_.relevance),_=_.parent}while(_!==r.parent);return r.starts&&(r.endSameAsBegin&&(r.starts.endRe=r.endRe),h(r.starts)),a.returnEnd?0:n.length}}(t);if(null!=l)return l}return k+=i,i.length}var v=M(e);if(!v)throw console.error(d.replace("{}",e)),Error('Unknown language: "'+e+'"');!function(e){function n(n,t){return RegExp(u(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+="|"),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"==l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("==l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let n=this.matcherRe.exec(e);if(!n)return null;let t=n.findIndex((e,n)=>n>0&&null!=e),r=this.matchIndexes[t];return Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let n=new r;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){let n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e){let n=e.input[e.index-1],t=e.input[e.index+e[0].length];if("."===n||"."===t)return{ignoreMatch:!0}}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");!function r(s,o){s.compiled||(s.compiled=!0,s.__onBegin=null,s.keywords=s.keywords||s.beginKeywords,s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,R(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemesRe=n(s.lexemes||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__onBegin=i),s.begin||(s.begin=/\B|\b/),s.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(s.endRe=n(s.end)),s.terminator_end=u(s.end)||"",s.endsWithParent&&o.terminator_end&&(s.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(s.illegalRe=n(s.illegal)),null==s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return t(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?t(e,{starts:e.starts?t(e.starts):null}):Object.isFrozen(e)?t(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){r(e,s)})),s.starts&&r(s.starts,o),s.matcher=function(e){let n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(s))}(e)}(v);var x,_=i||v,E={},w=new g.__emitter(g);!function(){for(var e=[],n=_;n!==v;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>w.openNode(e))}();var y,O,k="",T=0,L=0;try{var A=!1;for(_.matcher.considerAll();A?A=!1:(_.matcher.lastIndex=L,_.matcher.considerAll()),y=_.matcher.exec(s);)O=b(s.substring(L,y.index),y),L=y.index+O;return b(s.substr(L)),w.closeAllNodes(),w.finalize(),x=w.toHTML(),{relevance:T,value:x,language:e,illegal:!1,emitter:w,top:_}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:s.slice(L-100,L+100),mode:n.mode},sofar:x,relevance:0,value:N(s),emitter:w};if(o)return{relevance:0,value:N(s),emitter:w,language:e,top:_,errorRaised:n};throw n}}function m(e,n){n=n||g.languages||Object.keys(a);var t={relevance:0,emitter:new g.__emitter(g),value:N(e)},r=t;return n.filter(M).filter(k).forEach((function(n){var a=p(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function b(e){return g.tabReplace||g.useBR?e.replace(l,(function(e,n){return g.useBR&&"\n"===e?"
":g.tabReplace?n.replace(/\t/g,g.tabReplace):""})):e}function v(e){var n,t,r,a,s,o=function(e){var n,t=e.className+" ";if(t+=e.parentNode?e.parentNode.className:"",n=g.languageDetectRe.exec(t)){var r=M(n[1]);return r||(console.warn(d.replace("{}",n[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>h(e)||M(e))}(e);h(o)||(T("before:highlightBlock",{block:e,language:o}),g.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e,s=n.textContent,r=o?f(o,s,!0):m(s),(t=y(n)).length&&((a=document.createElement("div")).innerHTML=r.value,r.value=O(t,y(a),s)),r.value=b(r.value),T("after:highlightBlock",{block:e,result:r}),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?i[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function x(){if(!x.called){x.called=!0;var e=document.querySelectorAll("pre code");r.forEach.call(e,v)}}var E={disableAutodetect:!0};function M(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}function k(e){var n=M(e);return n&&!n.disableAutodetect}function T(e,n){var t=e;s.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(n,{highlight:f,highlightAuto:m,fixMarkup:b,highlightBlock:v,configure:function(e){g=w(g,e)},initHighlighting:x,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",x,!1)},registerLanguage:function(e,t){var r;try{r=t(n)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!o)throw n;console.error(n),r=E}r.name||(r.name=e),a[e]=r,r.rawDefinition=t.bind(null,n),r.aliases&&r.aliases.forEach((function(n){i[n]=e}))},listLanguages:function(){return Object.keys(a)},getLanguage:M,requireLanguage:function(e){var n=M(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:k,inherit:w,addPlugin:function(e,n){s.push(e)}}),n.debugMode=function(){o=!1},n.safeMode=function(){o=!0},n.versionString="10.0.0-beta.0";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(n,_),n}({})})); -hljs.registerLanguage("never",function(){"use strict";return function(e){var n={keyword:"catch do enum else extern for func if in let match range record throw var while",type:"bool char float int string",literal:"false nil true",built_in:"assert assertb assertf chr cos exp length log ord pow print printb printc printf prints read sin sqrt str strf tan"},a={className:"string",begin:'"',end:'"'},s={className:"type",begin:"\\b[A-Z][0-9A-Za-z$_]*"},r={className:"array",begin:"\\[",end:"\\]"};return{name:"never",aliases:["Never "],disableAutodetect:!0,case_insensitive:!1,keywords:n,contains:[s,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[r,s]},{className:"params",begin:/->/,end:/\{/,excludeBegin:!0,excludeEnd:!0,endsParent:!0,keywords:n,contains:[r,s]}]},{className:"function",beginKeywords:"enum record",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\{/,end:/\}/,endsParent:!0,keywords:n,contains:[r,s]}]},{className:"function",begin:"extern",end:"[\n\r]",excludeBeging:!0,keywords:n,contains:[a,{className:"title",begin:"\\bfunc",end:/[A-Za-z$_][0-9A-Za-z$_]*/,excludeBegin:!0},{className:"params",begin:/\{/,end:/\}/,endsParent:!0,contains:[r,s]}]},{className:"number",variants:[{begin:"\\b[\\d_]+(\\.[\\deE_]+)?\\b"},{begin:"\\b0[xX][a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?\\b"}]},a,e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE]}}}()); -hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const n={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},t={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,n]};n.contains.push(t);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]};return{name:"Bash",aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},a,e.HASH_COMMENT_MODE,t,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}()); -hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},{begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\((?:.|\n)*?\)\1"/}]},s={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},i={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},o=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+o,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:o,returnBegin:!0,contains:[c],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,s,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,s,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:i,strings:a,keywords:l}}}}()); \ No newline at end of file diff --git a/docs/custom_theme/install.sh b/docs/custom_theme/install.sh deleted file mode 100755 index fd856308..00000000 --- a/docs/custom_theme/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -cp ../../../highlight.js/build/highlight.min.js . -cp ../../../highlight.js/extra/never/dist/never.min.js . -cp ../../../highlight.js/extra/never/src/languages/never.js . - diff --git a/docs/custom_theme/main.html b/docs/custom_theme/main.html deleted file mode 100644 index b54868a3..00000000 --- a/docs/custom_theme/main.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "base.html" %} - -{% block libs %} - {{ super() }} - - - -{% endblock %} - diff --git a/docs/custom_theme/never.js b/docs/custom_theme/never.js deleted file mode 100644 index 7ddb5fa8..00000000 --- a/docs/custom_theme/never.js +++ /dev/null @@ -1,140 +0,0 @@ -/* -Language: Never -Author: Slawomir Maludzinski -Description: Syntactically scoped, strongly typed, call by value, functional programming language -Website: https://never-lang.readthedocs.io/ -Category: functional -*/ - -export default function(hljs) { - var NEVER_KEYWORDS = { - keyword: 'catch do enum else extern for func if in let match range record throw var while', - type: 'bool char float int string', - literal: 'false nil true', - built_in: 'assert assertb assertf chr cos exp length log ord pow print printb printc printf prints read sin sqrt str strf tan' - } - - var NEVER_NUMBER = { - className: 'number', - variants: - [ - { begin: '\\b[\\d_]+(\\.[\\deE_]+)?\\b' }, - { begin: '\\b0[xX][a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?\\b' } - ] - } - - var NEVER_STRING = { - className: 'string', - begin: '"', end: '"' - } - - var NEVER_TYPE = { - className: 'type', - begin: '\\b[A-Z][0-9A-Za-z$_]*', - } - - var NEVER_DIM = { - className: 'array', - begin: '\\[', end: '\\]' - } - - var NEVER_FUNCTION = { - className: 'function', - beginKeywords: 'func', end: '{', excludeEnd: true, - contains: - [ - hljs.inherit(hljs.TITLE_MODE, { - begin: /[A-Za-z$_][0-9A-Za-z$_]*/ - }), - { - className: 'params', - begin: /\(/, end: /\)/, - keywords: NEVER_KEYWORDS, - contains: - [ - NEVER_DIM, - NEVER_TYPE - ] - }, - { - className: 'params', - begin: /->/, end: /\{/, - excludeBegin: true, excludeEnd: true, - endsParent: true, - keywords: NEVER_KEYWORDS, - contains: - [ - NEVER_DIM, - NEVER_TYPE - ] - } - ] - } - - var NEVER_ENUM_RECORD = { - className: 'function', - beginKeywords: 'enum record', end: '{', excludeEnd: true, - contains: - [ - hljs.inherit(hljs.TITLE_MODE, { - begin: /[A-Za-z$_][0-9A-Za-z$_]*/ - }), - { - className: 'params', - begin: /\{/, end: /\}/, - endsParent: true, - keywords: NEVER_KEYWORDS, - contains: - [ - NEVER_DIM, - NEVER_TYPE - ] - } - ] - } - - var NEVER_EXTERN = { - className: 'function', - begin: 'extern', end: '[\n\r]', - excludeBeging: true, - keywords: NEVER_KEYWORDS, - contains: - [ - NEVER_STRING, - { - className: 'title', - begin: '\\bfunc', end: /[A-Za-z$_][0-9A-Za-z$_]*/, - excludeBegin: true - }, - { - className: 'params', - begin: /\{/, end: /\}/, - endsParent: true, - contains: - [ - NEVER_DIM, - NEVER_TYPE - ] - } - ] - } - - return { - name: 'never', - aliases: [ 'Never ' ], - disableAutodetect: true, - case_insensitive: false, // language is case-sensitive - keywords: NEVER_KEYWORDS, - contains: [ - NEVER_TYPE, - NEVER_FUNCTION, - NEVER_ENUM_RECORD, - NEVER_EXTERN, - NEVER_NUMBER, - NEVER_STRING, - hljs.C_BLOCK_COMMENT_MODE, - hljs.HASH_COMMENT_MODE - ] - } -} - diff --git a/docs/custom_theme/never.min.js b/docs/custom_theme/never.min.js deleted file mode 100644 index 9a188abd..00000000 --- a/docs/custom_theme/never.min.js +++ /dev/null @@ -1 +0,0 @@ -hljs.registerLanguage("never",function(){"use strict";return function(e){var n={keyword:"catch do enum else extern for func if in let match range record throw var while",type:"bool char float int string",literal:"false nil true",built_in:"assert assertb assertf chr cos exp length log ord pow print printb printc printf prints read sin sqrt str strf tan"},a={className:"string",begin:'"',end:'"'},s={className:"type",begin:"\\b[A-Z][0-9A-Za-z$_]*"},r={className:"array",begin:"\\[",end:"\\]"};return{name:"never",aliases:["Never "],disableAutodetect:!0,case_insensitive:!1,keywords:n,contains:[s,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[r,s]},{className:"params",begin:/->/,end:/\{/,excludeBegin:!0,excludeEnd:!0,endsParent:!0,keywords:n,contains:[r,s]}]},{className:"function",beginKeywords:"enum record",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\{/,end:/\}/,endsParent:!0,keywords:n,contains:[r,s]}]},{className:"function",begin:"extern",end:"[\n\r]",excludeBeging:!0,keywords:n,contains:[a,{className:"title",begin:"\\bfunc",end:/[A-Za-z$_][0-9A-Za-z$_]*/,excludeBegin:!0},{className:"params",begin:/\{/,end:/\}/,endsParent:!0,contains:[r,s]}]},{className:"number",variants:[{begin:"\\b[\\d_]+(\\.[\\deE_]+)?\\b"},{begin:"\\b0[xX][a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?\\b"}]},a,e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE]}}}()); \ No newline at end of file diff --git a/docs/ffi.md b/docs/ffi.md deleted file mode 100644 index 76e8d6bf..00000000 --- a/docs/ffi.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: FFI Demo ---- - -# Foreign Function Interface - Code Snippet - -```C -/* data */ - -int pos_x = 0; -int pos_y = 0; - -/* externalized functions */ - -int turn_left() -{ - printf("turn_left\n"); - return 0; -} - -int turn_right() -{ - printf("turn_right\n"); - return 0; -} - -int go_ahead(int dist) -{ - printf("go_ahead %d\n", dist); - - pos_x += dist; - pos_y += dist; - - return dist; -} - -int get_x() { return pos_x; } -int get_y() { return pos_y; } - -int fire(int at_x, int at_y) -{ - printf("FIRE! @ (%d, %d)\n", at_x, at_y); - return 0; -} - -/* scripts */ - -int program_one(program * prog) -{ - const char * prog_str = - "extern \"host\" func turn_left() -> int " - "extern \"host\" func turn_right() -> int " - "extern \"host\" func go_ahead(dist : int) -> int " - "extern \"host\" func get_x() -> int " - "extern \"host\" func get_y() -> int " - "extern \"host\" func fire(at_x : int, at_y : int) -> int " - " " - "func on_key(dist : int) -> int " - "{ " - " turn_left(); " - " go_ahead(dist); " - " " - " fire(get_x() + 20, get_y() + 30); " - " " - " 0 " - "}"; - - return nev_compile_str_main(prog_str, "on_key", prog); -} - -int program_two(program * prog) -{ - const char * prog_str = - "extern \"host\" func turn_left() -> int " - "extern \"host\" func turn_right() -> int " - "extern \"host\" func go_ahead(dist : int) -> int " - "extern \"host\" func get_x() -> int " - "extern \"host\" func get_y() -> int " - "extern \"host\" func fire(at_x : int, at_y : int) -> int " - " " - "func on_key(dist : int) -> int " - "{ " - " turn_right(); " - " go_ahead(dist); " - " " - " fire(get_x() + 20, get_y() + 30); " - " fire(get_x() + 25, get_y() + 35); " - " " - " 0 " - "}"; - - return nev_compile_str_main(prog_str, "on_key", prog); -} - -int execute_prog(program * prog, int param1) -{ - int ret = 0; - object result = { 0 }; - - prog->params[0].int_value = param1; - - ret = - nev_execute(prog, &result, DEFAULT_VM_MEM_SIZE, DEFAULT_VM_STACK_SIZE); - if (ret == 0) - { - assert(result.type == OBJECT_INT && result.int_value == 0); - } - - return 0; -} - -/* demo */ - -void test_one() -{ - program * prog_one = program_new(); - program * prog_two = program_new(); - - int ret1 = program_one(prog_one); - int ret2 = program_two(prog_two); - if (ret1 == 0 && ret2 == 0) - { - execute_prog(prog_one, 60); - execute_prog(prog_two, 40); - } - - program_delete(prog_one); - program_delete(prog_two); -} - -int main(int argc, char * argv[]) -{ - test_one(); -} -``` - diff --git a/docs/fizzbuzz.md b/docs/fizzbuzz.md deleted file mode 100644 index 9c2a6ef0..00000000 --- a/docs/fizzbuzz.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Fizz Buzz ---- - -Lets change a little bit the famous Fizz Buzz problem... - -*"Write a program in Never programming language that prints -the numbers from 1 to 100. But for multiples of three print “Fizz” -instead of the number and for the multiples of five print “Buzz”. -For numbers which are multiples of both three and five print “Fizz Buzz”."* - -And the answer is... - -```never -func fizz_buzz() -> int -{ - var i = 1; - - for (i = 1; i <= 100; i = i + 1) - { - /* if (i % 15 == 0) */ - if (i % 3 == 0 && i % 5 == 0) - { - prints("Fizz Buzz\n") - } - else if (i % 3 == 0) - { - prints("Fizz\n") - } - else if (i % 5 == 0) - { - prints("Buzz\n") - } - else - { - prints(i + "\n") - } - }; - - 0 -} -``` - -Enjoy! - - diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index b5154b44..00000000 --- a/docs/index.md +++ /dev/null @@ -1,1511 +0,0 @@ -# Never - Functional Programming Language - - - -Star me! - -Never is a simple functional programming language. Technically it may be -classified as syntactically scoped, strongly typed, call by value, functional programming language. - -In practise Never offers basic data types, assignment, control flow, arrays, -first order functions and some mathematical functions to make it useful -to calculate expressions. Also it demonstrates how functions can be compiled, -invoked and passed as parameters or results between other functions. - -## Introduction -```never -func main() -> float -{ - 100.0 * 1.8 + 32.0 -} -``` -A program written in Never language starts in function ```main```. ```Main``` -function takes no parameters and returns ```int``` or ```float``` value. When embedded -in Unix shell or C language ```main``` can take ```int``` or ```float``` parameters. -The function may only return value of one expression. In the above example temperature -of boiling water given in Celsius degrees is converted to Fahrenheit degrees. - -```never -func cel2fah(c : float) -> float -{ - c * 1.8 + 32.0 -} - -func main() -> float -{ - cel2fah(100.0) -} -``` - -In practice, however, one will define a function which will convert any degree. -The above listing presents such a function. - -In particular, functions may invoke themselves. The Fibonacci function is -a classic example: - -```never -func fib(n : int) -> int -{ - (n == 0) ? 1 : (n == 1) ? 1 : fib(n - 1) + fib(n - 2) -} - -func main() -> int -{ - fib(7) -} -``` - -or greatest common divisor: - -```never -func gcd(x : int, y : int) -> int -{ - (y == 0) ? x : gcd(y, x % y) -} - -func main() -> int -{ - gcd(56, 12) -} -``` - -Result of a function is calculated recursively. The above listing also -demonstrates conditional expression. Conditional expression takes the form -of ```condition ? expr true : expr false```. That is when condition is true, -value after ```?``` is returned. When the condition is false, value after -```:``` is returned. - -When last function called is recursive function we call it tail recursion. It -lets to substitute function invocations with repetitive calls and improve -program execution. In the above examples ```gcd``` function is recursive. -Fibonacci function ```fib``` may seem tail recursive, however the last function -called is addition, thus it is not considered tail recursive. - -## First Class Functions -One of most interesting features of functional programming languages is their -ability to accept and return functions. The following code demonstrates this -feature. - -```never -func fah2cel(f : float) -> float -{ - (f - 32.0) / 1.8 -} - -func cel2fah(c : float) -> float -{ - c * 1.8 + 32.0 -} - -func dir_deg(d : int) -> (float) -> float -{ - d == 0 ? fah2cel : cel2fah -} - -func main() -> float -{ - dir_deg(1)(100.0) -} -``` - -Very interesting is function ```dir_deg```. The function either returns function -which converts from Celsius degrees to Fahrenheit or from Fahrenheit to Celsius -degrees. As Never is strongly typed the function specifies its return type as -```(float) -> float``` which is the type of degree converting functions. - -Functions may also take other functions as arguments. -```never -func fah2cel(f : float) -> float -{ - (f - 32.0) / 1.8 -} - -func cel2fah(c : float) -> float -{ - c * 1.8 + 32.0 -} - -func degrees(conv(float) -> float, degree : float) -> float -{ - conv(degree) -} - -func main() -> float -{ - degrees(cel2fah, 100.0) -} -``` - -In the above example function ```degrees``` takes conversion function which -then is given passed parameter. In the next step function value is returned. -Also its parameter ```conv``` is strongly typed with function type. - -## Syntax Level -Never supports any degree of function nesting. As result it is not needed to -define all functions in programs top level. - -```never -func dir_deg(d : int) -> (float) -> float -{ - func fah2cel(f : float) -> float - { - (f - 32) / 1.8 - } - func cel2fah(c : float) -> float - { - c * 1.8 + 32 - } - - d == 0 ? fah2cel : cel2fah -} - -func main() -> float -{ - dir_deg(0)(100.0) -} -``` - -Functions ```fah2cel``` and ```cel2fah``` nested inside ```dir_deg``` are -defined within syntactical level of function ```dir_deg```. That means that -they cannot be invoked from function ```main```. Only functions and parameters -which are defined above or at the same level in the structure of a program -can be used. - -```never -func dir_deg(d : float, coeff : float) -> (float) -> float -{ - func fah2cel(f : float) -> float - { - coeff * ((f - 32.0) / 1.8) - } - func cel2fah(c : float) -> float - { - coeff * (c * 1.8 + 32.0) - } - - d == 0 ? cel2fah : fah2cel -} - -func main() -> float -{ - dir_deg(0, 100.0)(100.0) -} -``` - -The above listing demonstrates how parameter ```coeff``` is accessed from -within functions ```fah2cel``` or ```cel2fah```. After ```dir_def``` -is called in ```main``` parameter ```coeff``` is bound to ```dir_deg``` -environment. This way ```coeff``` can be used in functions which convert -temperature after ```dir_deg``` returns. - -## Functions as Expressions -Functions in functional programming languages are also expressions. -This leads to very interesting syntax which is supported by Never. - -```never -func degrees(conv(float) -> float, degree : float) -> float -{ - conv(degree) -} - -func main() -> float -{ - degrees(let func rea2cel(d : float) -> float - { - d * 4.0 / 5.0 - }, 100.0) -} -``` - -The above listing outlines how a function ```rea2cel``` may be defined as -a parameter being passed to function ```degrees```. The function converts from -Réaumur degrees to Celsius degrees. - -The idea of in-lining functions may be taken into extreme... -```never -func calc() -> (float) -> float -{ - func fah2cel(f : float) -> float { (f - 32.0) / 1.8 } -} - -func main() -> float -{ - calc()(212.0) -} -``` -... and a little step further. - -```never -func dir_deg(d : int) -> (float) -> float -{ - d == 0 ? let func fah2cel(f : float) -> float { (f - 32.0) / 1.8 } - : let func cel2fah(c : float) -> float { c * 1.8 + 32.0 } -} - -func main() -> float -{ - dir_deg(0)(100.0) -} - -``` - -## Bindings -Functions let to define bindings with local values. - -```never -func area(a : float, b : float, c : float) -> float -{ - let p = (a + b + c) / 2.0; - sqrt(p * (p - a) * (p - b) * (p - c)) -} -``` - -In comparison to function, though, they cannot be mutually recursive. Thus -their values can be declared and used in their order. In the following example -variables ```q``` and ```p``` are declared in correct order. When reversed -compilation error will be displayed. - -```never -func outer(a : float, b : float) -> float -{ - let q = 10.0; - let p = a + q; - - p + q -} -``` - -Bindings can hold any expressions. Thus the following code is also possible... - -```never -func outer(to : int) -> () -> int -{ - let p = 2 * to; - let f = let func rec() -> int - { - p - }; - - f -} -``` - -... or even - -```never -func outer(to : int) -> (int) -> int -{ - let f = let func rec(start : int) -> int - { - start < to ? rec(print(start) + 1) : 0 - }; - - f -} - -func main() -> int -{ - outer(10)(0) -} -``` - -## Assignments and Flow Control - -Writing code using just recursion if very difficult. Never lets to use control -flow expressions known from other languages. These are ```if```, ```if else```, -```while```, ```do while``` and ```for``` expressions. As these structures -are expressions they also return a value. All of them, except for ```if else``` -return ```0 -> int``` value. Also expression following ```if``` must return -```int``` value. - -Assignment expression ```=``` lets to assign value of an expression on the -right hand side to a value on the left hand side. Please note, that if -the value on the left hand side is a temporary, assignment will be discarded. - -The following examples present assignments and flow control. - -```never -func main() -> int -{ - let n = 18; - - do - { - print(n % 2); - n = n / 2 - } while (n != 0) -} -``` - -The above example converts value ```18``` into binary format. - -The following code calculates divisors of a number and outlines ```for``` and ```if``` -expressions. The following factorizes a number using ```for``` -and ```while``` expressions. - -```never -func divisors(n : int) -> int -{ - var i = 1; - - for (i = 1; i * i <= n; i = i + 1) - { - if (n % i == 0) - { - if (n / i != i) - { - print(n / i); - print(i) - } - else - { - print(i) - } - } - } - -} - -func main() -> int -{ - divisors(60) -} -``` - -```never -func factorize(n : int) -> int -{ - var i = 1; - - for (i = 2; i <= n; i = i + 1) - { - while (n % i == 0) - { - print(i); - n = n / i - } - } - -} - -func main() -> int -{ - factorize(2020) -} -``` - -## Arrays -Never supports arrays of any dimension. Array are also expressions and may be -passed between functions. The following example declares an array and returns -value of its element. - -```never -func f1(a -> int) -> [D, D] : int -{ - [ [ a, 0, 0, 0 ], - [ 0, a, 0, 0 ], - [ 0, 0, a, 0 ], - [ 0, 0, 0, a ] ] : int -} - -func main() -> int -{ - f1(11)[0, 0] -} -``` - -Arrays may contain elements of any type. In particular these may be other -arrays... - -```never -func call(tab[row] : [D] : int) -> int -{ - tab[row - 1][1] -} - -func f1() -> int -{ - call([ [ 9, 8, 7, 6, 5 ] : int, - [ 9, 7, 5 ] : int ] : [_] : int) -} - -func main() -> int -{ - f1() -} -``` -...or even functions. -```never -func f1(a : int, b : int, c : int) -> [D] : () -> int -{ - [ - let func f1() -> int { a + b + c }, - let func f2() -> int { a + b - c } - ] : () -> int -} - -func main() -> int -{ - f1(80, 90, 100)[1]() -} - -``` - -When arrays are passed to functions their dimensions are also passed as function -arguments. This type of array passing type is called conformant arrays. -```never -func f1(tab[row, col] : int) -> int -{ - row * col -} - -func main() -> int -{ - f1( [ [10, 20, 30], [30, 40, 50] ] : int ) -} -``` - -Conformat arrays let to iterate over array elements. The following listing -demonstrates how conformant arrays and tail recursion are used to determine -lowest element in an array. -```never -func tmin( t[elems] : int ) -> int -{ - func __tmin( min : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tmin( t[i] < min ? t[i] : min, i + 1, t ) : min - } - __tmin(t[0], 0, t) -} - -func main() -> int -{ - tmin( [ 20, 10, 30, 50, 40 ] : int ) -} -``` - -The following example presents how to pass any function which is executed over -all elements of an array. This program uses arrays, first class functions -and tail recursion. -```never -func add_five(e : int) -> int -{ - print(e + 5) -} - -func tforeach( t[elems] : int, each(e : int) -> int) -> int -{ - func __tforeach( val : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tforeach( each(t[i]), i + 1, t ) : 0 - } - __tforeach(t[0], 0, t) -} - -func main() -> int -{ - tforeach( [ 10, 20, 50, 30, 40 ] : int, add_five ) -} -``` - -Arrays may contain other arrays. This feature lets us to define vectors -of arrays. -```never -func printTab( tab[dim] : int ) -> int -{ - func __printTab( val : int, i : int, tab[dim] : int ) -> int - { - i < dim ? __printTab( print(2 * tab[i]), i + 1, tab) : i - } - __printTab(0, 0, tab) -} - -func print2Tab( tab[dim] : [D] : int ) -> int -{ - func __print2Tab( val : int, i : int, tab[dim] : [D] : int ) -> int - { - i < dim ? __print2Tab( printTab(tab[i]), i + 1, tab ) : i - } - __print2Tab(0, 0, tab) -} - -func main() -> int -{ - print2Tab( [ [ 1, 2, 3, 4, 5, 6 ] : int, - [ 16, 17, 18 ] : int ] : [D] : int ) -} -``` - -The above code can be rewritten using ```foreach``` functions. -```never -func twice(e -> int) -> int -{ - print(2 * e) -} - -func foreachTab( tab[dim] : int, each(e : int) -> int ) -> int -{ - func __foreachTab( val : int, i : int, tab[dim] : int ) -> int - { - i < dim ? __foreachTab( each(tab[i]), i + 1, tab) : i - } - __foreachTab(0, 0, tab) -} - -func foreach2Tab( tab[dim] : [D] : int, eachTab(t[D] : int, (int) -> int) -> int, each(e : int) -> int ) -> int -{ - func __foreach2Tab( val : int, i : int, tab[dim] : [D] : int ) -> int - { - i < dim ? __foreach2Tab( eachTab(tab[i], each), i + 1, tab ) : i - } - __foreach2Tab(0, 0, tab) -} - -func main() -> int -{ - foreach2Tab( [ [ 1, 2, 3, 4, 5, 6 ] : int, - [ 16, 17, 18 ] : int ] : [D] : int, - foreachTab, twice ) -} -``` - -Arrays can be used to memorize sub-problem results in dynamic programming. -The following example solves rod cutting dynamic problem. - -```never -func max(a : int, b : int) -> int { a > b ? a : b } - -func cutrod(price[P] : int, memo[M] : int, len : int) -> int -{ - var i = 0; - var max_p = -1; - - if (memo[len] != -1) - { - max_p = memo[len] - } - else - { - while (i < len) - { - max_p = max(max_p, price[i] + cutrod(price, memo, len - i - 1)); - i = i + 1 - } - }; - - memo[len] = max_p -} - -func main() -> int -{ - let price = [ 2, 7, 9, 10, 10, 14, 17, 21 ] : int; - let memo = [ 0, -1, -1, -1, -1, -1, -1, -1, -1 ] : int; - - cutrod(price, memo, 8) -} -``` - -## Array Operators -Never lets to add, subtract and multiply int and float arrays. - -```never -func main() -> int -{ - printtab( 2 * [ 3, 5, 7, 9 ] : int ) -} -``` - -```never -func main() -> int -{ - printtab( - [ 1, -2, 3, -4, 5, -6 ] : int ) -} -``` - -```never -func main() -> int -{ - printtab( [ 3.5, 5.5, 7.5 ] : float - [ 3.0, 4.0, 7.0 ] : float ) -} -``` - -```never -func main() -> int -{ - printtab( [ 1.5, 2.5, 3.5 ] : float + [ 3.0, 4.0, 7.0 ] : float ) -} -``` - -```never -func main() -> int -{ - printtab( [ [ 1.0, 2.0, 3.0 ], - [ 3.0, 4.0, 5.0 ] ] : float - * - [ [ 3.0, 4.0, 1.0, 1.0 ], - [ 6.0, 7.0, 1.0, 1.0 ], - [ 8.0, 2.0, 1.0, 1.0 ] ] : float ) -} -``` - -## Ranges and Slices - -Writing loops over arrays requires creating an index which is incremented in every loop iteration. Such code -is so common that Never supports syntactic sugar which improves this task. - -```never - -func pr_range( r[from..to] : range ) -> int -{ - prints("[" + from + ".." + to +"]\n"); - 0 -} - -func sl_range( r[from..to] : range ) -> int -{ - pr_range( r ); - pr_range( r[to..from] ); - 0 -} - -func main() -> int -{ - let r = [ 0 .. 100 ]; - - sl_range(r); - - 0 -} -``` - -Ranges specify continous numers starting from first to including the last index. Ranges can also be multidimensional. -The above listing presents a range from 0 to 100. The range is printed in ```pr_range``` function. Ranges can also -be restricted to its subrange. Function ```sl_range``` restricts range ```r``` from its last to first value and -thus reverses it. - -```never -func main() -> int -{ - let a = [ 1, 2, 3, 4, 5, 6 ] : int; - let s = a[5 .. 1]; - - for (i in s) - { - print(i) - } -} -``` - -Ranges can also be used to specify a slice of an array. - - -```never -func main() -> int -{ - let str1 = "Hello World!"; - let str2 = "!dlroW olleH"; - - prints(str1[length(str1) - 1 .. 0] + "\n"); - - 0 -} -``` - -Slices can also be used to extract a string substring. -As slices are Never first class citizens they can be created, passed or returned by functions. Is is also possible -to use list comprehension to create them. - -```never -record R { x : int; y : int; } - -func pr( a[D] : R ) -> int -{ - for ( i in [ 0 .. D - 1 ] ) - { - prints(a[i].x + " " + a[i].y + "\n") - } -} - -func main() -> int -{ - let a = [ R(x, y) | x in [ 0 .. 5 ]; y in [ 0 .. x ] ] : R; - - pr(a); - - 0 -} -``` - -Ranges and slices can also be part of records or enumerated records. - -```never -enum E { - S, - R { x : int; a[D] : int; [from .. to] : range; s [ from_s .. to_s ] : string; } -} - -func pr_array( a[D] : int ) -> int -{ - for (e in a) - { - print(e) - } -} - -func pr_range( [ from .. to ] : range ) -> int -{ - print(from); - print(to); - - 0 -} - -func pr_R( e : E ) -> int -{ - if let (E::R(x, a, r, s) = e) - { - print(x); - - pr_array(a); - pr_range(r); - - for (e in s) - { - prints(e + "\n") - } - }; - - 0 -} - -func main() -> int -{ - let ai = [ 1, 2, 3, 4 ] : int; - let as = [ "zero", "one", "two", "three", "four", "five", "six" ] : string; - let r = E::R(1, ai, [ 10 .. 200 ], as[ 1 .. 3 ]); - - pr_R(r); - - 0 -} -``` - -## List Comprehension - -Never supports list comprehension. Each list consists of a series of -generators and filers and expression which yields list elements. - -```never -func cl() -> [_] : int -{ - [ x * x | x in [10, 20, 30, 40, 50] : int ] : int -} -``` - -The following example presents both generators and filters. - -```never -func cl() -> [_] : int -{ - [ x * x | x in [1, 2, 3, 4, 5, 6, 7, 8] : int; (x * x % 2) == 0 ] : int -} -``` - -List comprehension may also invoke other functions. - -```never -func cl() -> [_] : float -{ - func grad(d : float) -> float - { - d * 2.0 * 3.14159265 / 360.0 - } - - [ f(y) | f in [ sin, cos ] : (float) -> float; - y in [ grad(0.0), grad(30.0), grad(45.0), grad(60.0), grad(90.0) ] : float ] : float -} -``` - -or even return list of closures. - -```never -func cl() -> [_] : (float) -> float -{ - func grad(d : float) -> float - { - d * 2.0 * 3.14159265 / 360.0 - } - - [ g | f in [ sin, cos ] : (float) -> float; - g in [ let func(x : float) -> float { f(grad(x)) } ] : (float) -> float ] : (float) -> float -} -``` - -The following code snippets present other examples: - -```never -func decor(str : string) -> string -{ - "###" + str + "###\n" -} - -func main() -> int -{ - var i = 0; - var texts = [ "one", "two", "three" ] : string; - var decors = [ decor(txt) | txt in texts ] : string; - - for (i = 0; i < 3; i = i + 1) - { - prints(decors[i]) - }; - - 0 -} -``` - -``` -###one### -###two### -###three### -0 -``` - -```never -func main() -> int -{ - var i = 0; - var texts = [ "one", "two", "three" ] : string; - var decors = [ let func () -> int - { - prints("###" + txt + "###\n"); - 0 - } - | txt in texts - ] : () -> int; - - for (i = 0; i < 3; i = i + 1) - { - decors[i]() - }; - - 0 -} -``` - -``` -###one### -###two### -###three### -0 -``` - -```never -func main() -> int -{ - var i = 0; - var texts = [ "one", "two", "three" ] : string; - var decors = [ let func (d : string) -> int - { - prints(d + txt + d + "\n"); - 0 - } - | txt in texts - ] : (string) -> int; - - for (i = 0; i < 3; i = i + 1) - { - decors[i]("#@#") - }; - - 0 -} -``` - -``` -#@#one#@# -#@#two#@# -#@#three#@# -0 -``` - -## Enums - -```never -enum EONE { one, two, three, four, five } - -enum ETWO { one, two, three, four, five } - -func g1() -> EONE -{ - EONE.four -} - -func e1(a : EONE, b : EONE) -> string -{ - if (a == g1()) - { - prints("OK\n") - } - else - { - prints("NOK\n") - } -} - -func main() -> int -{ - prints(e1(EONE.four, EONE.three)); - - 0 -} -``` - -Enums are first class objects in Never. The above example presents how -they can be defined and used. Enums can also be used in match expression -to convert their values. Match expression is exhaustive which means that -all possibile enum values should be covered. - -```never -func main() -> int -{ - match EONE.five - { - E.one -> 1; - E.two -> 2; - E.three -> 3; - else -> 4; - } -} -``` - -## Records - -```never -record Tree -{ - value : int; - left : Tree; - right : Tree; - print(t : Tree) -> int; -} - -func print_tree(t : Tree) -> int -{ - prints("tree value = " + t.value + "\n"); - - if (t.left != nil) - { - t.left.print(t.left) - }; - if (t.right != nil) - { - t.right.print(t.right) - }; - - 0 -} - -func main() -> int -{ - var t1 = Tree(10, nil, nil, print_tree); - var t2 = Tree(200, nil, nil, print_tree); - var t0 = Tree(100, t1, t2, print_tree); - - t0.print(t0); - - 0 -} -``` - -Writing programs with only ```int``` and ```float``` types may be difficult. -More complex data types are needed which can facilitate creation of programs. -Never supports ```record``` type which can hold other types. Both simple -such as ```int```, ```float```, function or table as well as complex data types. - -The above example shows ```Tree``` record which holds value, references to -other records and function. In the ```main``` three records are initialized. -and then function ```print``` is used to recursively print the tree. - -## Enumerated Records - -Enum type can also hold one of possible record values. Such type lets to define -convenient optional values, error codes or recursive data types. - -```never -enum Optional { Some { value : int; }, None } - -func calc() -> Optional -{ - Optional::Some(10) -} - -func main() -> int -{ - match calc() - { - Optional::Some(value) -> print(value); - Optional::None -> print(0); - }; - - 0 -} -``` - -```never -enum Result { Ok { value : int; }, Err { msg : string; } } - -func div(n : int, d : int) -> Result -{ - if (d != 0) - { - Result::Ok(n / d) - } - else - { - Result::Err("division by zero") - } -} - -func main() -> int -{ - match div(10, 0) - { - Result::Ok(value) -> print(value); - Result::Err(msg) -> { prints(msg + "\n"); 0 }; - }; - - 0 -} -``` - -```never -enum Tree { Node { value : int; left : Tree; right : Tree; }, None } - -func printTree(tree : Tree) -> int -{ - match (tree) - { - Tree::Node(value, left, right) -> { - printTree(left); - print(value); - printTree(right); - 0 - }; - Tree::None -> 0; - } -} - -func main() -> int -{ - let tree = Tree::Node(40, - Tree::Node(20, Tree::None, - Tree::Node(30, Tree::None, Tree::None)), - Tree::Node(60, Tree::None, Tree::None)); - - printTree(tree); - - 0 -} -``` - -It may be difficult to enumerate all possible match guards. To check for -just one value and assign its value it is useful to use ```if let``` expression. - -```never -enum Optional { Some{ value : int; }, Other, None } - -func getF(o : Optional) -> () -> int -{ - if let ( Optional::Some(value) = o) - { - let func() -> int { value } - } - else - { - let func() -> int { 1000 } - } -} - -func main() -> int -{ - let o = Optional::Some(10); - - getF(o)(); - - 0 -} -``` - -As ```if let``` is an expression it can be used to initalize variables. - -```never -enum Result { Ok { value : int; }, Err { msg : string; } } - -func calc() -> Result -{ - Result::Ok(1) -} - -func main() -> int -{ - let i = if let (Result::Ok(value) = calc()) - { - value - } - else - { - 90 - }; - - print(i); - - 0 -} -``` - -Enumerated records can be used to create variant type which accepts values of different types. - -```never -enum Variant { Int { value : int; }, - Float { value : float; }, - Char { value : char; }, - String { value : string; } } - -func printv ( v : Variant ) -> Variant -{ - match (v) - { - Variant::Int(value) -> { print(value); v }; - Variant::Float(value) -> { printf(value); v }; - Variant::Char(value) -> { printc(value); v }; - Variant::String(value) -> { prints(value); v }; - } -} - -func main() -> int -{ - let i = 10; - let f = 10.0; - let c = 'A'; - - printv(Variant::Int(i)); - printv(Variant::Float(f)); - printv(Variant::Char(c)); - printv(Variant::String("ten")); - - 0 -} -``` - -## Mathematical Functions -Never supports a few built-in mathematical functions - ```sin(x)```, -```cos(x)```, ```tan(x)```, ```exp(x)```, ```log(x)```, ```sqrt(x)``` -and ```pow(x,y)```. These functions are also first class so they may be passed -in between functions as any other function. - -```never -func deg2rad(deg : float) -> float -{ - deg * 3.14159 / 180 -} - -func get_func() -> (float) -> float -{ - cos -} - -func main() -> float -{ - get_func()(deg2rad(60.0)) -} -``` - -Together with arrays mathematical functions can be used to express and calculate -vector rotations. Code snippet included below rotates vector ```[[ 10.0, 0.0 ]]``` -by 0, 45, 90, 180, 270 and 360 degrees. - -```never -func print_vect(vect[D1, D2] : float) -> int -{ - printf(vect[0, 0]); - printf(vect[0, 1]); - 0 -} - -func rotate_matrix(alpha : float) -> [_,_] : float -{ - [ [ cos(alpha), -sin(alpha) ], - [ sin(alpha), cos(alpha) ] ] : float -} - -func main() -> int -{ - let vect = [[ 10.0, 0.0 ]] -> float; - - print_vect(vect * rotate_matrix(0.0)); - print_vect(vect * rotate_matrix(3.14159 / 4.0)); - print_vect(vect * rotate_matrix(3.14159 / 2.0)); - print_vect(vect * rotate_matrix(3.14159)); - print_vect(vect * rotate_matrix(3.0 * 3.14159 / 2.0)); - print_vect(vect * rotate_matrix(2.0 * 3.14159)) -} -``` - -## Exceptions -During program execution some operations may fail. One well known example of them -is division by zero. Another one is dereferencing array out of its bounds. -A well written program should handle such situations and respond in another way. - -Never can handle internal errors using exceptions handlers specified after -every function. Such handlers can execute arbitrary code. If an exception -happens inside exception handler it replaces exception being processed. - -The following code shows how exception ```invalid_domain``` raised when negative -parameter passed to ```sqrt``` function is passed. - -```never -func main() -> int -{ - sqrt(-1) -} -catch (invalid_domain) -{ - -1 -} -``` - -Exception need not be processed in the same function where they occurred. They -are passed down call stack. First function which defines exception handler -is used. Also any exception can be caught by parameterless exception handler. - -```never -func three(d : int, c : int) -> int -{ - let t = [ 1, 2, 3 ] : int; - - t[0] = d; - 170 / d -} - -func two(d : int) -> int -{ - three(d, 199) -} -catch (wrong_array_size) -{ - 0 -} -catch (index_out_of_bounds) -{ - d + 102 -} - -func one(d : int) -> int -{ - two(d) -} - -func main() -> int -{ - one(0) -} -catch (division_by_zero) -{ - 155 -} -``` - -In the above example exception division by zero is caught by handler defined -in function ```main```. If index out of bound was raised it would be caught -by exception handler defined in function ```two```. Please also note that -exception handlers can access function parameters. All bindings and nested -functions are not accessible. - -## Console Output -Never implements simple `print(int x) -> int` and `printf(float x) -> float` functions. -The function writes an integer or float parameter `x` (with a new line character) -to standard output and returns passed value. By default `printf` uses `"%.2f\n"` formatting. - -```never -func main() -> float -{ - printf(123.456) -} -``` - -It is also possible to print string of characters. - -```never -func main() -> int -{ - let txt = "answer is "; - let value = 200; - - prints(txt + str(value) + "\n"); - - 0 -} -``` - -They may be concatenated with integers or floats. - -```never -func print_vect(vect[D1, D2] : float) -> int -{ - prints("[" + vect[0, 0] + "," + vect[0, 1] + "]\n"); - 0 -} -``` - -String can also be assigned and compared. - -```never -func main() -> int -{ - let s1 = "string one\n"; - let s2 = "text two\n"; - - prints(s1); - prints(s2); - - s2 = s1; - - prints(s2); - - 0 -} -``` - -```never -func main() -> int -{ - let s1 = "text equal"; - let s2 = "text equal"; - - assert(if (s1 == s2) { 1 } else { 0 } == 1) -} -``` - -## Embedded Never -Never language can be embedded in Unix shell and C code. - -### Shell -```never -#!/usr/bin/nev - -func add(a : int, b : int, c : int) -> int -{ - a + b + c -} - -func main(a : int, b : int) -> int -{ - add(a, b, 1) -} - -``` - -After adding ```#!/usr/bin/nev``` to the script first line and setting script -as executable it is possible to run a program without specifying interpreter name. -Then a script is executed from command line with additional parameters. -``` -$ ./sample81.nevs 10 20 -result is 31 -``` - -Also nev can be executed with ```-e``` parameter followed by program. - -### C language -```C -#include -#include -#include "nev.h" - -void test_one() -{ - int ret = 0; - object result = { 0 }; - program * prog = program_new(); - const char * prog_str = "func main(a : int, b : int) -> int { 10 * (a + b) }"; - - ret = nev_compile_str(prog_str, prog); - if (ret == 0) - { - prog->params[0].int_value = 2; - prog->params[1].int_value = 3; - - ret = nev_execute(prog, &result); - if (ret == 0) - { - assert(result.type == OBJECT_INT && result.int_value == 50); - } - - prog->params[0].int_value = 9; - prog->params[1].int_value = 1; - - ret = nev_execute(prog, &result); - if (ret == 0) - { - assert(result.type == OBJECT_INT && result.int_value == 100); - } - } - - program_delete(prog); -} -``` -The above code present how Never can be embedded into C code. First ```nev.h``` -header is included. Then a new program ```prog``` is created and parsed with -```parse_str``` function. In the next step, parameters are set to values. Please -note that the program can be executed with different input parameters many times. -Return value is set in ```result``` object which then can be used. In this -example ```assert``` function assures that calculations are as expected. - -### Foreign Function Interface - -Never can also invoke functions in dynamically loaded libraries. The following -code snippets demonstrate how to invoke function in math and system libraries. -Right now only basic types can be passed. - -```never -extern "libm.so.6" func sinhf(x : float) -> float -extern "libm.so.6" func coshf(x : float) -> float -extern "libm.so.6" func powf(base : float, exp : float) -> float -extern "libm.so.6" func atanf(x : float) -> float - -func main() -> int -{ - var v1 = sinhf(1.0); - var v2 = coshf(1.0); - var v3 = powf(10.0, 2.0); - var pi = 4.0 * atanf(1.0); - - printf(v1); - printf(v2); - printf(v3); - printf(pi); - printf(sinhf(1.0)); - - 0 -} -``` - -```never -func main() -> int -{ - var system = let extern "libc.so.6" func system(cmd : string) -> float; - var v = system("uname -a"); - - 0 -} -``` - -## More Information - -You can find more information about Never at the following pages: - -* [Tail Recursion](https://never-lang.github.io/never/tailrec.html) -* [Neural Network in Never](https://never-lang.github.io/never/perceptron.html) -* [3D Sin Function Animation](https://never-lang.github.io/never/wave.html) - - diff --git a/docs/never-cm.js b/docs/never-cm.js new file mode 100644 index 00000000..ca3a489c --- /dev/null +++ b/docs/never-cm.js @@ -0,0 +1,172 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("go", function(config) { + var indentUnit = config.indentUnit; + + var keywords = { + "catch":true, "do":true, "enum":true, "else":true, "extern":true, + "for":true, "func":true, "if":true, "in":true, "let":true, "match":true, + "range":true, "record":true, "throw":true, "var":true, "while":true, + "bool":true, "char": true, "float":true, "int":true, "string":true + }; + + var atoms = { + "true":true, "false":true, "nil":true, "c_null":true + }; + + var isOperatorChar = /[+\-*&^%:=<>!|\/]/; + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'" || ch == "`") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\d\.]/.test(ch)) { + if (ch == ".") { + stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/); + } else if (ch == "0") { + stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/); + } else { + stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/); + } + return "number"; + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_\xa1-\uffff]/); + var cur = stream.current(); + if (keywords.propertyIsEnumerable(cur)) { + return "keyword"; + } + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && quote != "`" && next == "\\"; + } + if (end || !(escaped || quote == "`")) + state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + return state.context = new Context(state.indented, col, type, null, state.context); + } + function popContext(state) { + if (!state.context.prev) return; + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment") return style; + if (ctx.align == null) ctx.align = true; + + if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}" && ctx.type == "}") popContext(state); + else if (curPunc == ctx.type) popContext(state); + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + var closing = firstChar == ctx.type; + if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}):", + closeBrackets: "()[]{}''\"\"``", + fold: "brace", + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//" + }; +}); + +CodeMirror.defineMIME("text/x-never", "never"); + +}); + diff --git a/docs/never-lang.js b/docs/never-lang.js new file mode 100644 index 00000000..5194b4fe --- /dev/null +++ b/docs/never-lang.js @@ -0,0 +1,73290 @@ +/** + * @license + * Copyright 2010 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = typeof Module !== 'undefined' ? Module : {}; + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) +var Module = { + 'print': function(text) { var output = document.getElementById("output"); output.value += text; }, + 'printErr': function(text) { var output = document.getElementById("output"); output.value += text; } +}; + + + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +var key; +for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +var arguments_ = []; +var thisProgram = './this.program'; +var quit_ = function(status, toThrow) { + throw toThrow; +}; + +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). + +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; +ENVIRONMENT_IS_WEB = typeof window === 'object'; +ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; +// N.b. Electron.js environment is simultaneously a NODE-environment, but +// also a web environment. +ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string'; +ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + +if (Module['ENVIRONMENT']) { + throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)'); +} + + + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ''; +function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var read_, + readAsync, + readBinary, + setWindowTitle; + +var nodeFS; +var nodePath; + +if (ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = require('path').dirname(scriptDirectory) + '/'; + } else { + scriptDirectory = __dirname + '/'; + } + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + read_ = function shell_read(filename, binary) { + var ret = tryParseAsDataURI(filename); + if (ret) { + return binary ? ret : ret.toString(); + } + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + return nodeFS['readFileSync'](filename, binary ? null : 'utf8'); + }; + + readBinary = function readBinary(filename) { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + + + + if (process['argv'].length > 1) { + thisProgram = process['argv'][1].replace(/\\/g, '/'); + } + + arguments_ = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + process['on']('unhandledRejection', abort); + + quit_ = function(status) { + process['exit'](status); + }; + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; + + + +} else +if (ENVIRONMENT_IS_SHELL) { + + + if (typeof read != 'undefined') { + read_ = function shell_read(f) { + var data = tryParseAsDataURI(f); + if (data) { + return intArrayToString(data); + } + return read(f); + }; + } + + readBinary = function readBinary(f) { + var data; + data = tryParseAsDataURI(f); + if (data) { + return data; + } + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit === 'function') { + quit_ = function(status) { + quit(status); + }; + } + + if (typeof print !== 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console === 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr !== 'undefined' ? printErr : print); + } + + +} else + +// Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (document.currentScript) { // web + scriptDirectory = document.currentScript.src; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + if (scriptDirectory.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1); + } else { + scriptDirectory = ''; + } + + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + read_ = function shell_read(url) { + try { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + } catch (err) { + var data = tryParseAsDataURI(url); + if (data) { + return intArrayToString(data); + } + throw err; + } + }; + + if (ENVIRONMENT_IS_WORKER) { + readBinary = function readBinary(url) { + try { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + } catch (err) { + var data = tryParseAsDataURI(url); + if (data) { + return data; + } + throw err; + } + }; + } + + readAsync = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + var data = tryParseAsDataURI(url); + if (data) { + onload(data.buffer); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + + + + } + + setWindowTitle = function(title) { document.title = title }; +} else +{ + throw new Error('environment detection error'); +} + + +// Set up the out() and err() hooks, which are how we can print to stdout or +// stderr, respectively. +var out = Module['print'] || console.log.bind(console); +var err = Module['printErr'] || console.warn.bind(console); + +// Merge back in the overrides +for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = null; + +// Emit code to handle expected values on the Module object. This applies Module.x +// to the proper local x. This has two benefits: first, we only emit it if it is +// expected to arrive, and second, by using a local everywhere else that can be +// minified. +if (Module['arguments']) arguments_ = Module['arguments'];if (!Object.getOwnPropertyDescriptor(Module, 'arguments')) Object.defineProperty(Module, 'arguments', { configurable: true, get: function() { abort('Module.arguments has been replaced with plain arguments_') } }); +if (Module['thisProgram']) thisProgram = Module['thisProgram'];if (!Object.getOwnPropertyDescriptor(Module, 'thisProgram')) Object.defineProperty(Module, 'thisProgram', { configurable: true, get: function() { abort('Module.thisProgram has been replaced with plain thisProgram') } }); +if (Module['quit']) quit_ = Module['quit'];if (!Object.getOwnPropertyDescriptor(Module, 'quit')) Object.defineProperty(Module, 'quit', { configurable: true, get: function() { abort('Module.quit has been replaced with plain quit_') } }); + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message +// Assertions on removed incoming Module JS APIs. +assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); +assert(typeof Module['read'] === 'undefined', 'Module.read option was removed (modify read_ in JS)'); +assert(typeof Module['readAsync'] === 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); +assert(typeof Module['readBinary'] === 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); +assert(typeof Module['setWindowTitle'] === 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)'); +assert(typeof Module['TOTAL_MEMORY'] === 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); +if (!Object.getOwnPropertyDescriptor(Module, 'read')) Object.defineProperty(Module, 'read', { configurable: true, get: function() { abort('Module.read has been replaced with plain read_') } }); +if (!Object.getOwnPropertyDescriptor(Module, 'readAsync')) Object.defineProperty(Module, 'readAsync', { configurable: true, get: function() { abort('Module.readAsync has been replaced with plain readAsync') } }); +if (!Object.getOwnPropertyDescriptor(Module, 'readBinary')) Object.defineProperty(Module, 'readBinary', { configurable: true, get: function() { abort('Module.readBinary has been replaced with plain readBinary') } }); +if (!Object.getOwnPropertyDescriptor(Module, 'setWindowTitle')) Object.defineProperty(Module, 'setWindowTitle', { configurable: true, get: function() { abort('Module.setWindowTitle has been replaced with plain setWindowTitle') } }); +var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; +var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; +var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; +var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; + + + + +/** + * @license + * Copyright 2017 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// {{PREAMBLE_ADDITIONS}} + +var STACK_ALIGN = 16; + +// stack management, and other functionality that is provided by the compiled code, +// should not be used before it is ready + +/** @suppress{duplicate} */ +var stackSave; +/** @suppress{duplicate} */ +var stackRestore; +/** @suppress{duplicate} */ +var stackAlloc; + +stackSave = stackRestore = stackAlloc = function() { + abort('cannot use the stack before compiled code is ready to run, and has provided stack access'); +}; + +function staticAlloc(size) { + abort('staticAlloc is no longer available at runtime; instead, perform static allocations at compile time (using makeStaticAlloc)'); +} + +function dynamicAlloc(size) { + assert(DYNAMICTOP_PTR); + var ret = HEAP32[DYNAMICTOP_PTR>>2]; + var end = (ret + size + 15) & -16; + assert(end <= HEAP8.length, 'failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly'); + HEAP32[DYNAMICTOP_PTR>>2] = end; + return ret; +} + +function alignMemory(size, factor) { + if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default + return Math.ceil(size / factor) * factor; +} + +function getNativeTypeSize(type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return 4; // A pointer + } else if (type[0] === 'i') { + var bits = Number(type.substr(1)); + assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type); + return bits / 8; + } else { + return 0; + } + } + } +} + +function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } +} + + + + + +/** + * @license + * Copyright 2020 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + +// Wraps a JS function as a wasm function with a given signature. +function convertJsFunctionToWasm(func, sig) { + return func; +} + +var freeTableIndexes = []; + +// Weak map of functions in the table to their indexes, created on first use. +var functionsInTableMap; + +// Add a wasm function to the table. +function addFunctionWasm(func, sig) { + var table = wasmTable; + + // Check if the function is already in the table, to ensure each function + // gets a unique index. First, create the map if this is the first use. + if (!functionsInTableMap) { + functionsInTableMap = new WeakMap(); + for (var i = 0; i < table.length; i++) { + var item = table.get(i); + // Ignore null values. + if (item) { + functionsInTableMap.set(item, i); + } + } + } + if (functionsInTableMap.has(func)) { + return functionsInTableMap.get(func); + } + + // It's not in the table, add it now. + + + var ret; + // Reuse a free index if there is one, otherwise grow. + if (freeTableIndexes.length) { + ret = freeTableIndexes.pop(); + } else { + ret = table.length; + // Grow the table + try { + table.grow(1); + } catch (err) { + if (!(err instanceof RangeError)) { + throw err; + } + throw 'Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.'; + } + } + + // Set the new value. + try { + // Attempting to call this with JS function will cause of table.set() to fail + table.set(ret, func); + } catch (err) { + if (!(err instanceof TypeError)) { + throw err; + } + assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction'); + var wrapped = convertJsFunctionToWasm(func, sig); + table.set(ret, wrapped); + } + + functionsInTableMap.set(func, ret); + + return ret; +} + +function removeFunctionWasm(index) { + functionsInTableMap.delete(wasmTable.get(index)); + freeTableIndexes.push(index); +} + +// 'sig' parameter is required for the llvm backend but only when func is not +// already a WebAssembly function. +function addFunction(func, sig) { + assert(typeof func !== 'undefined'); + + return addFunctionWasm(func, sig); +} + +function removeFunction(index) { + removeFunctionWasm(index); +} + + + +var funcWrappers = {}; + +function getFuncWrapper(func, sig) { + if (!func) return; // on null pointer, return undefined + assert(sig); + if (!funcWrappers[sig]) { + funcWrappers[sig] = {}; + } + var sigCache = funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; +} + + +/** + * @license + * Copyright 2020 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + + + +function makeBigInt(low, high, unsigned) { + return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0)); +} + +/** @param {Array=} args */ +function dynCall(sig, ptr, args) { + if (args && args.length) { + // j (64-bit integer) must be passed in as two numbers [low 32, high 32]. + assert(args.length === sig.substring(1).replace(/j/g, '--').length); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } +} + +var tempRet0 = 0; + +var setTempRet0 = function(value) { + tempRet0 = value; +}; + +var getTempRet0 = function() { + return tempRet0; +}; + +function getCompilerSetting(name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work'; +} + +// The address globals begin at. Very low in memory, for code size and optimization opportunities. +// Above 0 is static memory, starting with globals. +// Then the stack. +// Then 'dynamic' memory for sbrk. +var GLOBAL_BASE = 1024; + + + +/** + * @license + * Copyright 2010 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + + +var wasmBinary;if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];if (!Object.getOwnPropertyDescriptor(Module, 'wasmBinary')) Object.defineProperty(Module, 'wasmBinary', { configurable: true, get: function() { abort('Module.wasmBinary has been replaced with plain wasmBinary') } }); +var noExitRuntime;if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime'];if (!Object.getOwnPropertyDescriptor(Module, 'noExitRuntime')) Object.defineProperty(Module, 'noExitRuntime', { configurable: true, get: function() { abort('Module.noExitRuntime has been replaced with plain noExitRuntime') } }); + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// wasm2js.js - enough of a polyfill for the WebAssembly object so that we can load +// wasm2js code that way. + + +// Emit "var WebAssembly" if definitely using wasm2js. Otherwise, in MAYBE_WASM2JS +// mode, we can't use a "var" since it would prevent normal wasm from working. +/** @suppress{const} */ +var +WebAssembly = { + Memory: /** @constructor */ function(opts) { + return { + buffer: new ArrayBuffer(opts['initial'] * 65536), + grow: function(amount) { + var oldBuffer = this.buffer; + var ret = __growWasmMemory(amount); + assert(this.buffer !== oldBuffer); // the call should have updated us + return ret; + } + }; + }, + + Table: function(opts) { + var ret = new Array(opts['initial']); + ret.grow = function(by) { + if (ret.length >= 154 + 0) { + abort('Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.') + } + ret.push(null); + }; + ret.set = function(i, func) { + ret[i] = func; + }; + ret.get = function(i) { + return ret[i]; + }; + return ret; + }, + + Module: function(binary) { + // TODO: use the binary and info somehow - right now the wasm2js output is embedded in + // the main JS + return {}; + }, + + Instance: function(module, info) { + // TODO: use the module and info somehow - right now the wasm2js output is embedded in + // the main JS + // This will be replaced by the actual wasm2js code. + var exports = ( +function instantiate(asmLibraryArg, wasmMemory, wasmTable) { + + + var scratchBuffer = new ArrayBuffer(8); + var i32ScratchView = new Int32Array(scratchBuffer); + var f32ScratchView = new Float32Array(scratchBuffer); + var f64ScratchView = new Float64Array(scratchBuffer); + + function wasm2js_scratch_load_i32(index) { + return i32ScratchView[index]; + } + + function wasm2js_scratch_store_i32(index, value) { + i32ScratchView[index] = value; + } + + function wasm2js_scratch_load_f64() { + return f64ScratchView[0]; + } + + function wasm2js_scratch_store_f64(value) { + f64ScratchView[0] = value; + } + + function legalimport$wasm2js_scratch_store_i64(low, high) { + i32ScratchView[0] = low; + i32ScratchView[1] = high; + } + + function wasm2js_scratch_store_f32(value) { + f32ScratchView[0] = value; + } + + function wasm2js_scratch_load_f32() { + return f32ScratchView[0]; + } + +function asmFunc(global, env, buffer) { + var memory = env.memory; + var FUNCTION_TABLE = wasmTable; + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + var Math_imul = global.Math.imul; + var Math_fround = global.Math.fround; + var Math_abs = global.Math.abs; + var Math_clz32 = global.Math.clz32; + var Math_min = global.Math.min; + var Math_max = global.Math.max; + var Math_floor = global.Math.floor; + var Math_ceil = global.Math.ceil; + var Math_sqrt = global.Math.sqrt; + var abort = env.abort; + var nan = global.NaN; + var infinity = global.Infinity; + var fimport$0 = env.exit; + var fimport$1 = env.dlclose; + var fimport$2 = env.fd_fdstat_get; + var fimport$3 = env.__sys_open; + var fimport$4 = env.__sys_fcntl64; + var fimport$5 = env.__sys_ioctl; + var fimport$6 = env.fd_read; + var fimport$7 = env.fd_close; + var fimport$8 = env.fd_write; + var fimport$9 = env.emscripten_resize_heap; + var fimport$10 = env.emscripten_memcpy_big; + var fimport$11 = env.__handle_stack_overflow; + var fimport$12 = env.setTempRet0; + var fimport$13 = env.fd_seek; + var global$0 = 5271600; + var global$1 = 28552; + var global$2 = 0; + var i64toi32_i32$HIGH_BITS = 0; + // EMSCRIPTEN_START_FUNCS +; + function $0() { + return 28560 | 0; + } + + function $1() { + + } + + function $2($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, i64toi32_i32$1 = 0, $30_1 = 0, $29_1 = 0, i64toi32_i32$0 = 0, $26_1 = 0; + $3_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($3_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 24 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $3_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($3_1 + 12 | 0) >> 2] = $59() | 0; + HEAP32[($3_1 + 24 | 0) >> 2] = $35(HEAP32[($3_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (HEAP32[($3_1 + 24 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[($3_1 + 24 | 0) >> 2] = $36(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $3_1 + 16 | 0 | 0, 5e3 | 0, 200 | 0) | 0; + label$4 : { + if (HEAP32[($3_1 + 24 | 0) >> 2] | 0) { + break label$4 + } + HEAP32[($3_1 + 24 | 0) >> 2] = $3($3_1 + 16 | 0 | 0) | 0; + } + } + $60(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + $26_1 = HEAP32[($3_1 + 24 | 0) >> 2] | 0; + label$5 : { + $30_1 = $3_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $3($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $40_1 = Math_fround(0), $27_1 = 0, $39_1 = 0, $38_1 = 0, $31_1 = 0, $35_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $38_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$6 + } + $40_1 = Math_fround(HEAPF32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2]); + label$7 : { + label$8 : { + if (!(Math_fround(Math_abs($40_1)) < Math_fround(2147483648.0))) { + break label$8 + } + $27_1 = ~~$40_1; + break label$7; + } + $27_1 = -2147483648; + } + HEAP32[($3_1 + 8 | 0) >> 2] = $27_1; + break label$5; + } + $31_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + $914($31_1 | 0, 1024 | 0, $3_1 | 0) | 0; + } + } + $35_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$9 : { + $39_1 = $3_1 + 16 | 0; + if ($39_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + return $35_1 | 0; + } + + function $4($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $5($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $118_1 = 0, $134_1 = 0, $189_1 = 0, $203_1 = 0, $219_1 = 0, $399_1 = 0, $413_1 = 0, $439_1 = 0, $483_1 = 0, $524_1 = 0, $535_1 = 0, $546_1 = 0, $560_1 = 0, $606_1 = 0, $643_1 = 0, $660_1 = 0, $741_1 = 0, $764_1 = 0, $770_1 = 0, $776_1 = 0, $782_1 = 0, $788_1 = 0, $801_1 = 0, $818_1 = 0, $822_1 = 0, $923_1 = 0, $928_1 = 0, $979_1 = 0, $978_1 = 0, $62_1 = 0, $576_1 = 0, $593_1 = 0, $609_1 = 0, $625_1 = 0, $668_1 = 0, $708_1 = 0, $817_1 = 0, $975_1 = 0; + $3_1 = global$0 - 368 | 0; + label$1 : { + $978_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $978_1; + } + HEAP32[($3_1 + 360 | 0) >> 2] = $0_1; + label$3 : { + if (HEAP32[(0 + 25820 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[(0 + 25820 | 0) >> 2] = 1; + label$4 : { + if (HEAP32[(0 + 25824 | 0) >> 2] | 0) { + break label$4 + } + HEAP32[(0 + 25824 | 0) >> 2] = 1; + } + label$5 : { + if ((HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$5 + } + HEAP32[(0 + 25808 | 0) >> 2] = HEAP32[(0 + 21088 | 0) >> 2] | 0; + } + label$6 : { + if ((HEAP32[(0 + 25812 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + HEAP32[(0 + 25812 | 0) >> 2] = HEAP32[(0 + 21080 | 0) >> 2] | 0; + } + label$7 : { + label$8 : { + label$9 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + if ((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$7 + } + break label$8; + } + if (0 & 1 | 0) { + break label$7 + } + } + $6(); + $62_1 = $7(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0, 16384 | 0) | 0; + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $62_1; + } + $8(); + } + label$10 : while (1) { + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + HEAP8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] = HEAPU8[(0 + 25840 | 0) >> 0] | 0; + HEAP32[($3_1 + 348 | 0) >> 2] = HEAP32[($3_1 + 352 | 0) >> 2] | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = HEAP32[(0 + 25824 | 0) >> 2] | 0; + label$11 : { + label$12 : { + label$13 : { + label$14 : while (1) { + label$15 : while (1) { + HEAP8[($3_1 + 343 | 0) >> 0] = HEAPU8[(((HEAPU8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] | 0) & 255 | 0) + 1056 | 0) >> 0] | 0; + label$16 : { + if (!(((HEAPU16[(1312 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[(0 + 25844 | 0) >> 2] = HEAP32[($3_1 + 356 | 0) >> 2] | 0; + HEAP32[(0 + 25848 | 0) >> 2] = HEAP32[($3_1 + 352 | 0) >> 2] | 0; + } + label$17 : { + label$18 : while (1) { + $118_1 = 16; + if (!((((HEAPU16[(1648 + ((((HEAPU16[(2240 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($3_1 + 343 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) << $118_1 | 0) >> $118_1 | 0 | 0) != (HEAP32[($3_1 + 356 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + $134_1 = 16; + HEAP32[($3_1 + 356 | 0) >> 2] = ((HEAPU16[(2592 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $134_1 | 0) >> $134_1 | 0; + label$19 : { + if (!((HEAP32[($3_1 + 356 | 0) >> 2] | 0 | 0) >= (167 | 0) & 1 | 0)) { + break label$19 + } + HEAP8[($3_1 + 343 | 0) >> 0] = HEAPU8[(((HEAPU8[($3_1 + 343 | 0) >> 0] | 0) & 255 | 0) + 2944 | 0) >> 0] | 0; + } + continue label$18; + }; + } + HEAP32[($3_1 + 356 | 0) >> 2] = (HEAPU16[(3008 + ((((HEAPU16[(2240 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($3_1 + 343 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + HEAP32[($3_1 + 352 | 0) >> 2] = (HEAP32[($3_1 + 352 | 0) >> 2] | 0) + 1 | 0; + if (((HEAPU16[(2240 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) != (238 | 0) & 1 | 0) { + continue label$15 + } + break label$15; + }; + label$20 : while (1) { + $189_1 = 16; + HEAP32[($3_1 + 344 | 0) >> 2] = ((HEAPU16[(1312 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $189_1 | 0) >> $189_1 | 0; + label$21 : { + if (HEAP32[($3_1 + 344 | 0) >> 2] | 0) { + break label$21 + } + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25848 | 0) >> 2] | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = HEAP32[(0 + 25844 | 0) >> 2] | 0; + $203_1 = 16; + HEAP32[($3_1 + 344 | 0) >> 2] = ((HEAPU16[(1312 + ((HEAP32[($3_1 + 356 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $203_1 | 0) >> $203_1 | 0; + } + HEAP32[(0 + 25852 | 0) >> 2] = HEAP32[($3_1 + 348 | 0) >> 2] | 0; + HEAP32[(0 + 25856 | 0) >> 2] = (HEAP32[($3_1 + 352 | 0) >> 2] | 0) - (HEAP32[($3_1 + 348 | 0) >> 2] | 0) | 0; + HEAP8[(0 + 25840 | 0) >> 0] = HEAPU8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] | 0; + HEAP8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] = 0; + HEAP32[(0 + 25836 | 0) >> 2] = HEAP32[($3_1 + 352 | 0) >> 2] | 0; + label$22 : { + label$23 : { + label$24 : while (1) { + $219_1 = HEAP32[($3_1 + 344 | 0) >> 2] | 0; + if ($219_1 >>> 0 > 74 >>> 0) { + break label$13 + } + label$25 : { + switch ($219_1 | 0) { + default: + HEAP8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] = HEAPU8[(0 + 25840 | 0) >> 0] | 0; + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25848 | 0) >> 2] | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = HEAP32[(0 + 25844 | 0) >> 2] | 0; + continue label$20; + case 1: + break label$12; + case 2: + HEAP32[(0 + 23984 | 0) >> 2] = (HEAP32[(0 + 23984 | 0) >> 2] | 0) + 1 | 0; + break label$12; + case 3: + break label$12; + case 4: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3600 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 263; + break label$11; + case 5: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3606 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 264; + break label$11; + case 6: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3612 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 265; + break label$11; + case 7: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3619 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 280; + break label$11; + case 8: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3626 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 279; + break label$11; + case 9: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3631 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 270; + break label$11; + case 10: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3636 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 271; + break label$11; + case 11: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3641 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 281; + break label$11; + case 12: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3648 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 272; + break label$11; + case 13: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3654 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 274; + break label$11; + case 14: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3661 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 275; + break label$11; + case 15: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3665 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 276; + break label$11; + case 16: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3669 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 282; + break label$11; + case 17: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3673 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 285; + break label$11; + case 18: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3665 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 278; + break label$11; + case 19: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3679 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 286; + break label$11; + case 20: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3681 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 269; + break label$11; + case 21: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3686 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 268; + break label$11; + case 22: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3693 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 283; + break label$11; + case 23: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3701 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 266; + break label$11; + case 24: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3707 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 267; + break label$11; + case 25: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3715 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 284; + break label$11; + case 26: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3720 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 287; + break label$11; + case 27: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3727 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 290; + break label$11; + case 28: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3734 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 288; + break label$11; + case 29: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3738 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 289; + break label$11; + case 30: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3742 | 0, $3_1 | 0); + $399_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $399_1 | 0) >> $399_1 | 0; + break label$11; + case 31: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3755 | 0, $3_1 + 16 | 0 | 0); + $413_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $413_1 | 0) >> $413_1 | 0; + break label$11; + case 32: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3759 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 293; + break label$11; + case 33: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3763 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 294; + break label$11; + case 34: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 32 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3767 | 0, $3_1 + 32 | 0 | 0); + $439_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $439_1 | 0) >> $439_1 | 0; + break label$11; + case 35: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3775 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 295; + break label$11; + case 36: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3779 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 296; + break label$11; + case 37: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 48 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3783 | 0, $3_1 + 48 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 273; + break label$11; + case 38: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 64 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3794 | 0, $3_1 + 64 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 292; + break label$11; + case 39: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 80 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3798 | 0, $3_1 + 80 | 0 | 0); + $483_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $483_1 | 0) >> $483_1 | 0; + break label$11; + case 40: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 96 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3801 | 0, $3_1 + 96 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 291; + break label$11; + case 41: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 112 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3805 | 0, $3_1 + 112 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 297; + break label$11; + case 42: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3808 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 298; + break label$11; + case 43: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3824 | 0, 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 299; + break label$11; + case 44: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3840 | 0, 0 | 0); + $524_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $524_1 | 0) >> $524_1 | 0; + break label$11; + case 45: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3858 | 0, 0 | 0); + $535_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $535_1 | 0) >> $535_1 | 0; + break label$11; + case 46: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $4(3878 | 0, 0 | 0); + $546_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $546_1 | 0) >> $546_1 | 0; + break label$11; + case 47: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 128 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3755 | 0, $3_1 + 128 | 0 | 0); + $560_1 = 24; + HEAP32[($3_1 + 364 | 0) >> 2] = ((HEAPU8[(HEAP32[(0 + 25852 | 0) >> 2] | 0) >> 0] | 0) << $560_1 | 0) >> $560_1 | 0; + break label$11; + case 48: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[($3_1 + 144 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3755 | 0, $3_1 + 144 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 300; + break label$11; + case 49: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $576_1 = HEAP32[(0 + 25852 | 0) >> 2] | 0; + HEAP32[($3_1 + 160 | 0) >> 2] = $3_1 + 336 | 0; + $922($576_1 | 0, 3903 | 0, $3_1 + 160 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 336 | 0) >> 2] | 0; + HEAP32[($3_1 + 176 | 0) >> 2] = HEAP32[($3_1 + 336 | 0) >> 2] | 0; + $4(3906 | 0, $3_1 + 176 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 260; + break label$11; + case 50: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $593_1 = HEAP32[(0 + 25852 | 0) >> 2] | 0; + HEAP32[($3_1 + 192 | 0) >> 2] = $3_1 + 332 | 0; + $922($593_1 | 0, 3918 | 0, $3_1 + 192 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 332 | 0) >> 2] | 0; + HEAP32[($3_1 + 208 | 0) >> 2] = HEAP32[($3_1 + 332 | 0) >> 2] | 0; + $4(3921 | 0, $3_1 + 208 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 260; + break label$11; + case 51: + $606_1 = 0; + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[($606_1 + 23984 | 0) >> 2] | 0; + $609_1 = HEAP32[($606_1 + 25852 | 0) >> 2] | 0; + HEAP32[($3_1 + 224 | 0) >> 2] = $3_1 + 328 | 0; + $922($609_1 | 0, 3933 | 0, $3_1 + 224 | 0 | 0) | 0; + HEAPF32[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($3_1 + 328 | 0) >> 2]); + HEAPF64[($3_1 + 240 | 0) >> 3] = +Math_fround(HEAPF32[($3_1 + 328 | 0) >> 2]); + $4(3936 | 0, $3_1 + 240 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 259; + break label$11; + case 52: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $625_1 = $856(HEAP32[(0 + 25852 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 2] = $625_1; + HEAP32[($3_1 + 256 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + $4(3950 | 0, $3_1 + 256 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 258; + break label$11; + case 53: + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP8[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 0] = HEAPU8[((HEAP32[(0 + 25852 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0; + $643_1 = 24; + HEAP32[($3_1 + 272 | 0) >> 2] = ((HEAPU8[((HEAP32[(0 + 25852 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0) << $643_1 | 0) >> $643_1 | 0; + $4(3957 | 0, $3_1 + 272 | 0 | 0); + HEAP32[($3_1 + 364 | 0) >> 2] = 262; + break label$11; + case 54: + HEAP32[(0 + 25816 | 0) >> 2] = $663() | 0; + HEAP32[(0 + 25824 | 0) >> 2] = 5; + break label$12; + case 55: + HEAP32[(0 + 25824 | 0) >> 2] = 1; + $660_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (0 << $660_1 | 0) >> $660_1 | 0 | 0); + HEAP32[(HEAP32[($3_1 + 360 | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $668_1 = $666(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 360 | 0) >> 2] | 0) + 4 | 0) >> 2] = $668_1; + label$98 : { + if (!((HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$98 + } + HEAP32[($3_1 + 288 | 0) >> 2] = HEAP32[((HEAP32[(0 + 25816 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $4(3966 | 0, $3_1 + 288 | 0 | 0); + $664(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25816 | 0) >> 2] = 0; + } + HEAP32[($3_1 + 364 | 0) >> 2] = 261; + break label$11; + case 56: + $435(HEAP32[(0 + 23984 | 0) >> 2] | 0 | 0, 3977 | 0, 0 | 0); + label$99 : { + if (!((HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$99 + } + $664(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25816 | 0) >> 2] = 0; + } + HEAP32[($3_1 + 364 | 0) >> 2] = 0; + break label$11; + case 57: + $708_1 = (HEAP32[(0 + 25852 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($3_1 + 304 | 0) >> 2] = $3_1 + 324 | 0; + $922($708_1 | 0, 3998 | 0, $3_1 + 304 | 0 | 0) | 0; + label$100 : { + if (!((HEAP32[($3_1 + 324 | 0) >> 2] | 0 | 0) > (255 | 0) & 1 | 0)) { + break label$100 + } + $435(HEAP32[(0 + 23984 | 0) >> 2] | 0 | 0, 4001 | 0, 0 | 0); + label$101 : { + if (!((HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$101 + } + $664(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25816 | 0) >> 2] = 0; + } + HEAP32[($3_1 + 364 | 0) >> 2] = 0; + break label$11; + } + $741_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, ((HEAP32[($3_1 + 324 | 0) >> 2] | 0) << $741_1 | 0) >> $741_1 | 0 | 0); + break label$12; + case 58: + $435(HEAP32[(0 + 23984 | 0) >> 2] | 0 | 0, 4024 | 0, 0 | 0); + label$102 : { + if (!((HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$102 + } + $664(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25816 | 0) >> 2] = 0; + } + HEAP32[($3_1 + 364 | 0) >> 2] = 0; + break label$11; + case 59: + $764_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (10 << $764_1 | 0) >> $764_1 | 0 | 0); + break label$12; + case 60: + $770_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (9 << $770_1 | 0) >> $770_1 | 0 | 0); + break label$12; + case 61: + $776_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (13 << $776_1 | 0) >> $776_1 | 0 | 0); + break label$12; + case 62: + $782_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (8 << $782_1 | 0) >> $782_1 | 0 | 0); + break label$12; + case 63: + $788_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, (12 << $788_1 | 0) >> $788_1 | 0 | 0); + break label$12; + case 64: + HEAP32[(0 + 23984 | 0) >> 2] = (HEAP32[(0 + 23984 | 0) >> 2] | 0) + 1 | 0; + $801_1 = 24; + $665(HEAP32[(0 + 25816 | 0) >> 2] | 0 | 0, ((HEAPU8[((HEAP32[(0 + 25852 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0) << $801_1 | 0) >> $801_1 | 0 | 0); + break label$12; + case 65: + HEAP32[($3_1 + 320 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + label$103 : { + label$104 : while (1) { + if (!(((HEAPU8[(HEAP32[($3_1 + 320 | 0) >> 2] | 0) >> 0] | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0)) { + break label$103 + } + $817_1 = HEAP32[(0 + 25816 | 0) >> 2] | 0; + $818_1 = HEAP32[($3_1 + 320 | 0) >> 2] | 0; + HEAP32[($3_1 + 320 | 0) >> 2] = $818_1 + 1 | 0; + $822_1 = 24; + $665($817_1 | 0, ((HEAPU8[$818_1 >> 0] | 0) << $822_1 | 0) >> $822_1 | 0 | 0); + continue label$104; + }; + } + break label$12; + case 66: + HEAP32[(0 + 25824 | 0) >> 2] = 3; + break label$12; + case 67: + HEAP32[(0 + 25824 | 0) >> 2] = 1; + break label$12; + case 68: + HEAP32[(0 + 23984 | 0) >> 2] = (HEAP32[(0 + 23984 | 0) >> 2] | 0) + 1 | 0; + break label$12; + case 69: + break label$12; + case 72: + case 73: + case 74: + HEAP32[($3_1 + 364 | 0) >> 2] = 0; + break label$11; + case 70: + label$105 : { + if (!($976(HEAP32[(0 + 25852 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25856 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[(0 + 25812 | 0) >> 2] | 0 | 0) | 0)) { + break label$105 + } + } + break label$12; + case 71: + break label$25; + }; + } + HEAP32[($3_1 + 316 | 0) >> 2] = ((HEAP32[($3_1 + 352 | 0) >> 2] | 0) - (HEAP32[(0 + 25852 | 0) >> 2] | 0) | 0) - 1 | 0; + HEAP8[(HEAP32[($3_1 + 352 | 0) >> 2] | 0) >> 0] = HEAPU8[(0 + 25840 | 0) >> 0] | 0; + label$106 : { + if (HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) { + break label$106 + } + HEAP32[(0 + 25860 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[(HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) >> 2] = HEAP32[(0 + 25808 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 44 | 0) >> 2] = 1; + } + label$107 : { + if (!((HEAP32[(0 + 25836 | 0) >> 2] | 0) >>> 0 <= ((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[(0 + 25860 | 0) >> 2] | 0) | 0) >>> 0 & 1 | 0)) { + break label$107 + } + HEAP32[(0 + 25836 | 0) >> 2] = (HEAP32[(0 + 25852 | 0) >> 2] | 0) + (HEAP32[($3_1 + 316 | 0) >> 2] | 0) | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = $9() | 0; + HEAP32[($3_1 + 312 | 0) >> 2] = $10(HEAP32[($3_1 + 356 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($3_1 + 348 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + label$108 : { + if (!(HEAP32[($3_1 + 312 | 0) >> 2] | 0)) { + break label$108 + } + $923_1 = (HEAP32[(0 + 25836 | 0) >> 2] | 0) + 1 | 0; + HEAP32[(0 + 25836 | 0) >> 2] = $923_1; + HEAP32[($3_1 + 352 | 0) >> 2] = $923_1; + HEAP32[($3_1 + 356 | 0) >> 2] = HEAP32[($3_1 + 312 | 0) >> 2] | 0; + continue label$14; + } + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + continue label$20; + } + $928_1 = $11() | 0; + if ($928_1 >>> 0 > 2 >>> 0) { + break label$22 + } + label$109 : { + switch ($928_1 | 0) { + case 1: + HEAP32[(0 + 25864 | 0) >> 2] = 0; + HEAP32[(0 + 25836 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + HEAP32[($3_1 + 344 | 0) >> 2] = ((((HEAP32[(0 + 25824 | 0) >> 2] | 0) - 1 | 0 | 0) / (2 | 0) | 0) + 71 | 0) + 1 | 0; + continue label$24; + case 2: + break label$23; + default: + break label$109; + }; + } + break label$24; + }; + HEAP32[(0 + 25836 | 0) >> 2] = (HEAP32[(0 + 25852 | 0) >> 2] | 0) + (HEAP32[($3_1 + 316 | 0) >> 2] | 0) | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = $9() | 0; + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + HEAP32[($3_1 + 348 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + continue label$14; + } + HEAP32[(0 + 25836 | 0) >> 2] = (HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[(0 + 25860 | 0) >> 2] | 0) | 0; + HEAP32[($3_1 + 356 | 0) >> 2] = $9() | 0; + HEAP32[($3_1 + 352 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + HEAP32[($3_1 + 348 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + continue label$20; + } + break label$20; + }; + break label$14; + }; + break label$12; + } + $12(4045 | 0); + abort(); + } + continue label$10; + } + break label$10; + }; + $975_1 = HEAP32[($3_1 + 364 | 0) >> 2] | 0; + label$111 : { + $979_1 = $3_1 + 368 | 0; + if ($979_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $979_1; + } + return $975_1 | 0; + } + + function $6() { + var $2_1 = 0, $84_1 = 0, $83_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $83_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $83_1; + } + label$3 : { + label$4 : { + if ((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + HEAP32[($2_1 + 12 | 0) >> 2] = 1; + HEAP32[(0 + 25828 | 0) >> 2] = $13((HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + label$5 : { + if ((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$5 + } + $12(4428 | 0); + abort(); + } + $973(HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0, 0 | 0, (HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[(0 + 25868 | 0) >> 2] = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + HEAP32[(0 + 25832 | 0) >> 2] = 0; + break label$3; + } + if (!((HEAP32[(0 + 25832 | 0) >> 2] | 0) >>> 0 >= ((HEAP32[(0 + 25868 | 0) >> 2] | 0) - 1 | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($2_1 + 8 | 0) >> 2] = 8; + HEAP32[($2_1 + 12 | 0) >> 2] = (HEAP32[(0 + 25868 | 0) >> 2] | 0) + (HEAP32[($2_1 + 8 | 0) >> 2] | 0) | 0; + HEAP32[(0 + 25828 | 0) >> 2] = $14(HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0, (HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + label$6 : { + if ((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + $12(4428 | 0); + abort(); + } + $973((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25868 | 0) >> 2] | 0) << 2 | 0) | 0 | 0, 0 | 0, (HEAP32[($2_1 + 8 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[(0 + 25868 | 0) >> 2] = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + } + label$7 : { + $84_1 = $2_1 + 16 | 0; + if ($84_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + return; + } + + function $7($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $40_1 = 0, $39_1 = 0, $22_1 = 0, $36_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $39_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $13(48 | 0) | 0; + label$3 : { + if ((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + $12(4096 | 0); + abort(); + } + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $22_1 = $13((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 2 | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $22_1; + label$4 : { + if ((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + $12(4096 | 0); + abort(); + } + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = 1; + $15(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + $36_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$5 : { + $40_1 = $4_1 + 16 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $8() { + var $18_1 = 0; + HEAP32[(0 + 25860 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $18_1 = HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[(0 + 25836 | 0) >> 2] = $18_1; + HEAP32[(0 + 25852 | 0) >> 2] = $18_1; + HEAP32[(0 + 25808 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) >> 2] | 0; + HEAP8[(0 + 25840 | 0) >> 0] = HEAPU8[(HEAP32[(0 + 25836 | 0) >> 2] | 0) >> 0] | 0; + return; + } + + function $9() { + var $2_1 = 0, $17_1 = 0, $27_1 = 0, $65_1 = 0, $81_1 = 0; + $2_1 = global$0 - 16 | 0; + HEAP32[($2_1 + 12 | 0) >> 2] = HEAP32[(0 + 25824 | 0) >> 2] | 0; + HEAP32[($2_1 + 8 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($2_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[(0 + 25836 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$1 + } + $17_1 = 24; + label$3 : { + label$4 : { + if (!(((HEAPU8[(HEAP32[($2_1 + 8 | 0) >> 2] | 0) >> 0] | 0) << $17_1 | 0) >> $17_1 | 0)) { + break label$4 + } + $27_1 = (HEAPU8[(((HEAPU8[(HEAP32[($2_1 + 8 | 0) >> 2] | 0) >> 0] | 0) & 255 | 0) + 1056 | 0) >> 0] | 0) & 255 | 0; + break label$3; + } + $27_1 = 1; + } + HEAP8[($2_1 + 7 | 0) >> 0] = $27_1; + label$5 : { + if (!(((HEAPU16[(1312 + ((HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(0 + 25844 | 0) >> 2] = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + HEAP32[(0 + 25848 | 0) >> 2] = HEAP32[($2_1 + 8 | 0) >> 2] | 0; + } + label$6 : { + label$7 : while (1) { + $65_1 = 16; + if (!((((HEAPU16[(1648 + ((((HEAPU16[(2240 + ((HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) << $65_1 | 0) >> $65_1 | 0 | 0) != (HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $81_1 = 16; + HEAP32[($2_1 + 12 | 0) >> 2] = ((HEAPU16[(2592 + ((HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $81_1 | 0) >> $81_1 | 0; + label$8 : { + if (!((HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0) >= (167 | 0) & 1 | 0)) { + break label$8 + } + HEAP8[($2_1 + 7 | 0) >> 0] = HEAPU8[(((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) & 255 | 0) + 2944 | 0) >> 0] | 0; + } + continue label$7; + }; + } + HEAP32[($2_1 + 12 | 0) >> 2] = (HEAPU16[(3008 + ((((HEAPU16[(2240 + ((HEAP32[($2_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + HEAP32[($2_1 + 8 | 0) >> 2] = (HEAP32[($2_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $10($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $42_1 = 0, $58_1 = 0, $99_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + HEAP8[($3_1 + 3 | 0) >> 0] = 1; + label$1 : { + if (!(((HEAPU16[(1312 + ((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0 | 0) != (0 & 65535 | 0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[(0 + 25844 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[(0 + 25848 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + } + label$2 : { + label$3 : while (1) { + $42_1 = 16; + if (!((((HEAPU16[(1648 + ((((HEAPU16[(2240 + ((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) << $42_1 | 0) >> $42_1 | 0 | 0) != (HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + $58_1 = 16; + HEAP32[($3_1 + 12 | 0) >> 2] = ((HEAPU16[(2592 + ((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $58_1 | 0) >> $58_1 | 0; + label$4 : { + if (!((HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) >= (167 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($3_1 + 3 | 0) >> 0] = HEAPU8[(((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) & 255 | 0) + 2944 | 0) >> 0] | 0; + } + continue label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = (HEAPU16[(3008 + ((((HEAPU16[(2240 + ((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0) + ((HEAPU8[($3_1 + 3 | 0) >> 0] | 0) & 255 | 0) | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) == (166 | 0) & 1 | 0; + label$5 : { + label$6 : { + if (!(HEAP32[($3_1 + 8 | 0) >> 2] | 0)) { + break label$6 + } + $99_1 = 0; + break label$5; + } + $99_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + } + return $99_1 | 0; + } + + function $11() { + var $2_1 = 0, $231_1 = 0, $75_1 = 0, $79_1 = 0, $100_1 = 0, $160_1 = 0, $163_1 = 0, $236_1 = 0, $286_1 = 0, $321_1 = 0, $323_1 = 0, $363_1 = 0, $435_1 = 0, $482_1 = 0, $481_1 = 0, $78_1 = 0, $173_1 = 0, $274_1 = 0, $285_1 = 0, $411_1 = 0, $478_1 = 0; + $2_1 = global$0 - 64 | 0; + label$1 : { + $481_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $481_1; + } + HEAP32[($2_1 + 56 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($2_1 + 52 | 0) >> 2] = HEAP32[(0 + 25852 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[(0 + 25836 | 0) >> 2] | 0) >>> 0 > ((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + ((HEAP32[(0 + 25860 | 0) >> 2] | 0) + 1 | 0) | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $12(4253 | 0); + abort(); + } + label$4 : { + label$5 : { + if (HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) { + break label$5 + } + label$6 : { + if (!((((HEAP32[(0 + 25836 | 0) >> 2] | 0) - (HEAP32[(0 + 25852 | 0) >> 2] | 0) | 0) - 0 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($2_1 + 60 | 0) >> 2] = 1; + break label$4; + } + HEAP32[($2_1 + 60 | 0) >> 2] = 2; + break label$4; + } + HEAP32[($2_1 + 48 | 0) >> 2] = ((HEAP32[(0 + 25836 | 0) >> 2] | 0) - (HEAP32[(0 + 25852 | 0) >> 2] | 0) | 0) - 1 | 0; + HEAP32[($2_1 + 44 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($2_1 + 44 | 0) >> 2] | 0) >>> 0 < (HEAP32[($2_1 + 48 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + $75_1 = HEAP32[($2_1 + 52 | 0) >> 2] | 0; + HEAP32[($2_1 + 52 | 0) >> 2] = $75_1 + 1 | 0; + $78_1 = HEAPU8[$75_1 >> 0] | 0; + $79_1 = HEAP32[($2_1 + 56 | 0) >> 2] | 0; + HEAP32[($2_1 + 56 | 0) >> 2] = $79_1 + 1 | 0; + HEAP8[$79_1 >> 0] = $78_1; + HEAP32[($2_1 + 44 | 0) >> 2] = (HEAP32[($2_1 + 44 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$10 + } + $100_1 = 0; + HEAP32[(0 + 25860 | 0) >> 2] = $100_1; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0) >> 2] = $100_1; + break label$9; + } + HEAP32[($2_1 + 36 | 0) >> 2] = ((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) - (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0) - 1 | 0; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($2_1 + 36 | 0) >> 2] | 0) >>> 0 <= 0 >>> 0 & 1 | 0)) { + break label$11 + } + HEAP32[($2_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + HEAP32[($2_1 + 28 | 0) >> 2] = (HEAP32[(0 + 25836 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$13 : { + label$14 : { + if (!(HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0)) { + break label$14 + } + HEAP32[($2_1 + 24 | 0) >> 2] = (HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) << 1 | 0; + label$15 : { + label$16 : { + if (!((HEAP32[($2_1 + 24 | 0) >> 2] | 0) >>> 0 <= 0 >>> 0 & 1 | 0)) { + break label$16 + } + $160_1 = HEAP32[($2_1 + 32 | 0) >> 2] | 0; + HEAP32[($160_1 + 12 | 0) >> 2] = (HEAP32[($160_1 + 12 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >>> 3 | 0) | 0; + break label$15; + } + $163_1 = HEAP32[($2_1 + 32 | 0) >> 2] | 0; + HEAP32[($163_1 + 12 | 0) >> 2] = (HEAP32[($163_1 + 12 | 0) >> 2] | 0) << 1 | 0; + } + $173_1 = $14(HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 2 | 0 | 0) | 0; + HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] = $173_1; + break label$13; + } + HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + } + label$17 : { + if ((HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$17 + } + $12(4309 | 0); + abort(); + } + HEAP32[(0 + 25836 | 0) >> 2] = (HEAP32[((HEAP32[($2_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[($2_1 + 28 | 0) >> 2] | 0) | 0; + HEAP32[($2_1 + 36 | 0) >> 2] = ((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) - (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0) - 1 | 0; + continue label$12; + }; + } + label$18 : { + if (!((HEAP32[($2_1 + 36 | 0) >> 2] | 0) >>> 0 > 8192 >>> 0 & 1 | 0)) { + break label$18 + } + HEAP32[($2_1 + 36 | 0) >> 2] = 8192; + } + label$19 : { + label$20 : { + if (!(HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 24 | 0) >> 2] | 0)) { + break label$20 + } + HEAP32[($2_1 + 20 | 0) >> 2] = 42; + HEAP32[($2_1 + 16 | 0) >> 2] = 0; + label$21 : while (1) { + $231_1 = 0; + label$22 : { + if (!((HEAP32[($2_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[($2_1 + 36 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$22 + } + $236_1 = $916(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($2_1 + 20 | 0) >> 2] = $236_1; + $231_1 = 0; + if (!(($236_1 | 0) != (-1 | 0) & 1 | 0)) { + break label$22 + } + $231_1 = (HEAP32[($2_1 + 20 | 0) >> 2] | 0 | 0) != (10 | 0); + } + label$23 : { + if (!($231_1 & 1 | 0)) { + break label$23 + } + HEAP8[(((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0) + (HEAP32[($2_1 + 16 | 0) >> 2] | 0) | 0) >> 0] = HEAP32[($2_1 + 20 | 0) >> 2] | 0; + HEAP32[($2_1 + 16 | 0) >> 2] = (HEAP32[($2_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$21; + } + break label$21; + }; + label$24 : { + if (!((HEAP32[($2_1 + 20 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$24 + } + $274_1 = HEAP32[($2_1 + 20 | 0) >> 2] | 0; + $285_1 = (HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0; + $286_1 = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + HEAP32[($2_1 + 16 | 0) >> 2] = $286_1 + 1 | 0; + HEAP8[($285_1 + $286_1 | 0) >> 0] = $274_1; + } + label$25 : { + if (!((HEAP32[($2_1 + 20 | 0) >> 2] | 0 | 0) == (-1 | 0) & 1 | 0)) { + break label$25 + } + if (!($857(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) | 0)) { + break label$25 + } + $12(4353 | 0); + abort(); + } + HEAP32[(0 + 25860 | 0) >> 2] = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + break label$19; + } + HEAP32[($842() | 0) >> 2] = 0; + label$26 : while (1) { + $321_1 = $867((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0 | 0, 1 | 0, HEAP32[($2_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(0 + 25860 | 0) >> 2] = $321_1; + $323_1 = 0; + label$27 : { + if ($321_1) { + break label$27 + } + $323_1 = ($857(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) | 0 | 0) != (0 | 0); + } + label$28 : { + if (!($323_1 & 1 | 0)) { + break label$28 + } + label$29 : { + if (!((HEAP32[($842() | 0) >> 2] | 0 | 0) != (27 | 0) & 1 | 0)) { + break label$29 + } + $12(4353 | 0); + abort(); + } + HEAP32[($842() | 0) >> 2] = 0; + $868(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0); + continue label$26; + } + break label$26; + }; + } + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(0 + 25860 | 0) >> 2] | 0; + } + label$30 : { + label$31 : { + if (HEAP32[(0 + 25860 | 0) >> 2] | 0) { + break label$31 + } + label$32 : { + label$33 : { + if (HEAP32[($2_1 + 48 | 0) >> 2] | 0) { + break label$33 + } + HEAP32[($2_1 + 40 | 0) >> 2] = 1; + $16(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0); + break label$32; + } + $363_1 = 2; + HEAP32[($2_1 + 40 | 0) >> 2] = $363_1; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 44 | 0) >> 2] = $363_1; + } + break label$30; + } + HEAP32[($2_1 + 40 | 0) >> 2] = 0; + } + label$34 : { + if (!(((HEAP32[(0 + 25860 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0) >>> 0 > (HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$34 + } + HEAP32[($2_1 + 12 | 0) >> 2] = ((HEAP32[(0 + 25860 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0) + ((HEAP32[(0 + 25860 | 0) >> 2] | 0) >> 1 | 0) | 0; + $411_1 = $14(HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] = $411_1; + label$35 : { + if ((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$35 + } + $12(4382 | 0); + abort(); + } + } + $435_1 = 0; + HEAP32[(0 + 25860 | 0) >> 2] = (HEAP32[(0 + 25860 | 0) >> 2] | 0) + (HEAP32[($2_1 + 48 | 0) >> 2] | 0) | 0; + HEAP8[((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[(0 + 25860 | 0) >> 2] | 0) | 0) >> 0] = $435_1; + HEAP8[((HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + ((HEAP32[(0 + 25860 | 0) >> 2] | 0) + 1 | 0) | 0) >> 0] = $435_1; + HEAP32[(0 + 25852 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($2_1 + 60 | 0) >> 2] = HEAP32[($2_1 + 40 | 0) >> 2] | 0; + } + $478_1 = HEAP32[($2_1 + 60 | 0) >> 2] | 0; + label$36 : { + $482_1 = $2_1 + 64 | 0; + if ($482_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $482_1; + } + return $478_1 | 0; + } + + function $12($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $5_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $9_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $5_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $914($5_1 | 0, 3755 | 0, $3_1 | 0) | 0; + fimport$0(2 | 0); + abort(); + } + + function $13($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $8_1 = 0, $5_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $8_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $5_1 = $963(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $9_1 = $3_1 + 16 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return $5_1 | 0; + } + + function $14($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0, $7_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $7_1 = $965(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return $7_1 | 0; + } + + function $15($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $29_1 = 0, $57_1 = 0, $66_1 = 0, $65_1 = 0, $13_1 = 0, $61_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[($842() | 0) >> 2] | 0; + $17(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = 1; + $13_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $29_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$3; + } + $29_1 = 0; + } + label$5 : { + if (!(($13_1 | 0) != ($29_1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = 0; + } + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $57_1 = ($847($925(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0) > (0 | 0) & 1 | 0; + break label$6; + } + $57_1 = 0; + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = $57_1; + $61_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[($842() | 0) >> 2] = $61_1; + label$8 : { + $66_1 = $4_1 + 16 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $16($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $56_1 = 0, $63_1 = 0, $62_1 = 0, $32_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $62_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + label$4 : { + label$5 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if ((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + break label$4; + } + if (0 & 1 | 0) { + break label$3 + } + } + $6(); + $32_1 = $7(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0, 16384 | 0) | 0; + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $32_1; + } + label$6 : { + label$7 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $56_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$6; + } + $56_1 = 0; + } + $15($56_1 | 0, HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + $8(); + label$8 : { + $63_1 = $3_1 + 16 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return; + } + + function $17($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $11_1 = 0, $13_1 = 0, $40_1 = 0, $51_1 = 0, $50_1 = 0, $24_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $50_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + label$4 : { + if ((HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + break label$3; + } + $11_1 = 0; + $13_1 = 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = $11_1; + HEAP8[(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 0] = $13_1; + HEAP8[((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 1 | 0) >> 0] = $13_1; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = $11_1; + $24_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + label$5 : { + label$6 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != ($11_1 | 0) & 1 | 0)) { + break label$6 + } + $40_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$5; + } + $40_1 = 0; + } + if (!(($24_1 | 0) == ($40_1 | 0) & 1 | 0)) { + break label$3 + } + $8(); + } + label$7 : { + $51_1 = $3_1 + 16 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return; + } + + function $18($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $20_1 = 0, $91_1 = 0, $90_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $90_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $6(); + label$3 : { + label$4 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $20_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$3; + } + $20_1 = 0; + } + label$5 : { + label$6 : { + if (!(($20_1 | 0) == (HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + break label$5; + } + label$7 : { + label$8 : { + label$9 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + if ((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$8 + } + break label$7; + } + if (!(0 & 1 | 0)) { + break label$7 + } + } + HEAP8[(HEAP32[(0 + 25836 | 0) >> 2] | 0) >> 0] = HEAPU8[(0 + 25840 | 0) >> 0] | 0; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[(0 + 25836 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(0 + 25860 | 0) >> 2] | 0; + } + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $8(); + HEAP32[(0 + 25864 | 0) >> 2] = 1; + } + label$10 : { + $91_1 = $3_1 + 16 | 0; + if ($91_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + return; + } + + function $19($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $52_1 = 0, $51_1 = 0, $12_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $51_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + label$4 : { + if ((HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$4 + } + break label$3; + } + $12_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + label$5 : { + label$6 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $28_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$5; + } + $28_1 = 0; + } + label$7 : { + if (!(($12_1 | 0) == ($28_1 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + } + label$8 : { + if (!(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0)) { + break label$8 + } + $20(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + $20(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + } + label$9 : { + $52_1 = $3_1 + 16 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return; + } + + function $20($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $21() { + var $41_1 = 0, $44_1 = 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if ((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$2 + } + break label$3; + } + if (0 & 1 | 0) { + break label$2 + } + } + break label$1; + } + label$5 : { + label$6 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $41_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$5; + } + $41_1 = 0; + } + $44_1 = 0; + $19($41_1 | 0); + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = $44_1; + label$7 : { + if (!((HEAP32[(0 + 25832 | 0) >> 2] | 0) >>> 0 > $44_1 >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[(0 + 25832 | 0) >> 2] = (HEAP32[(0 + 25832 | 0) >> 2] | 0) + -1 | 0; + } + label$8 : { + label$9 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + if ((HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$8 + } + break label$1; + } + if (!(0 & 1 | 0)) { + break label$1 + } + } + $8(); + HEAP32[(0 + 25864 | 0) >> 2] = 1; + } + return; + } + + function $22($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $41_1 = 0, $18_1 = 0, $27_1 = 0, $47_1 = 0, $65_1 = 0, $64_1 = 0, $61_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $64_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < 2 >>> 0 & 1 | 0) { + break label$5 + } + $18_1 = 24; + if (((HEAPU8[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) - 2 | 0) | 0) >> 0] | 0) << $18_1 | 0) >> $18_1 | 0) { + break label$5 + } + $27_1 = 24; + if (!(((HEAPU8[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) - 1 | 0) | 0) >> 0] | 0) << $27_1 | 0) >> $27_1 | 0)) { + break label$4 + } + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[$4_1 >> 2] = $13(48 | 0) | 0; + label$6 : { + if ((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + $12(4140 | 0); + abort(); + } + $41_1 = 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) - 2 | 0; + $47_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] = $47_1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 8 | 0) >> 2] = $47_1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 20 | 0) >> 2] = $41_1; + HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] = $41_1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 24 | 0) >> 2] = $41_1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 28 | 0) >> 2] = 1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 40 | 0) >> 2] = $41_1; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 44 | 0) >> 2] = $41_1; + $18(HEAP32[$4_1 >> 2] | 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + } + $61_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$7 : { + $65_1 = $4_1 + 16 | 0; + if ($65_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + return $61_1 | 0; + } + + function $23($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $11_1 = 0, $10_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = $24(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $980(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $11_1 = $3_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return $7_1 | 0; + } + + function $24($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $37_1 = 0, $62_1 = 0, $61_1 = 0, $58_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $61_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 12 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 2 | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $13(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if ((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + $12(4182 | 0); + abort(); + } + HEAP32[($4_1 + 8 | 0) >> 2] = 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + HEAP8[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + (HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0) >> 0] = HEAPU8[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + (HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0) >> 0] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + $37_1 = 0; + HEAP8[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0) | 0) >> 0] = $37_1; + HEAP8[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + (HEAP32[($4_1 + 24 | 0) >> 2] | 0) | 0) >> 0] = $37_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $22(HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + $12(4223 | 0); + abort(); + } + HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = 1; + $58_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + label$7 : { + $62_1 = $4_1 + 32 | 0; + if ($62_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + return $58_1 | 0; + } + + function $25() { + var $16_1 = 0, $41_1 = 0, $52_1 = 0; + label$1 : while (1) { + label$2 : { + label$3 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $16_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$2; + } + $16_1 = 0; + } + label$4 : { + if (!(($16_1 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $41_1 = HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + break label$5; + } + $41_1 = 0; + } + $19($41_1 | 0); + HEAP32[((HEAP32[(0 + 25828 | 0) >> 2] | 0) + ((HEAP32[(0 + 25832 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + $21(); + continue label$1; + } + break label$1; + }; + $52_1 = 0; + $20(HEAP32[(0 + 25828 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25828 | 0) >> 2] = $52_1; + $26() | 0; + return $52_1 | 0; + } + + function $26() { + var $0_1 = 0; + $0_1 = 0; + HEAP32[(0 + 25828 | 0) >> 2] = $0_1; + HEAP32[(0 + 25832 | 0) >> 2] = $0_1; + HEAP32[(0 + 25868 | 0) >> 2] = $0_1; + HEAP32[(0 + 25836 | 0) >> 2] = $0_1; + HEAP32[(0 + 25820 | 0) >> 2] = $0_1; + HEAP32[(0 + 25824 | 0) >> 2] = $0_1; + HEAP32[(0 + 25808 | 0) >> 2] = $0_1; + HEAP32[(0 + 25812 | 0) >> 2] = $0_1; + return $0_1 | 0; + } + + function $27($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $8_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $18($23(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0 | 0); + label$3 : { + $9_1 = $3_1 + 16 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return; + } + + function $28($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $8_1 = 0, $5_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $8_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $5_1 = $5(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $9_1 = $3_1 + 16 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return $5_1 | 0; + } + + function $29($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $15_1 = 0, $14_1 = 0, $8_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[(0 + 25872 | 0) >> 2] = 1; + $8_1 = HEAP32[(0 + 23984 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $435($8_1 | 0, 4477 | 0, $4_1 | 0); + $11_1 = 1; + label$3 : { + $15_1 = $4_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $30($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $5_1 = 0, $1829 = 0, $1584 = 0, $9_1 = 0, $12_1 = 0, $158_1 = 0, $185_1 = 0, $197_1 = 0, $223_1 = 0, $261_1 = 0, $280_1 = 0, $312_1 = 0, $1169 = 0, $1393 = 0, $1514 = 0, $1578 = 0, $1690 = 0, $1794 = 0, $1797 = 0, $1806 = 0, $1815 = 0, $1827 = 0, $1848 = 0, $1860 = 0, $1865 = 0, $1888 = 0, $1893 = 0, $1917 = 0, $1928 = 0, $1940 = 0, $1980 = 0, $2013 = 0, $2058 = 0, $2066 = 0, $2094 = 0, $2103 = 0, $2126 = 0, $2154 = 0, $2153 = 0, $2187 = 0, $2700 = 0, $2738 = 0, $1680 = 0, $1684 = 0, $6271 = 0, $6690 = 0, $2150 = 0; + $3_1 = global$0 - 2128 | 0; + label$1 : { + $2153 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $2153; + } + $5_1 = 0; + $9_1 = $3_1 + 80 | 0; + $12_1 = $3_1 + 1696 | 0; + HEAP32[($3_1 + 2124 | 0) >> 2] = $0_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 25876 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 25880 | 0) >> 2] | 0; + $2187 = i64toi32_i32$0; + i64toi32_i32$0 = $3_1 + 2112 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $2187; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($3_1 + 56 | 0) >> 2] = $5_1; + HEAP32[($3_1 + 44 | 0) >> 2] = $5_1; + HEAP32[($3_1 + 1692 | 0) >> 2] = $12_1; + HEAP32[($3_1 + 1688 | 0) >> 2] = $12_1; + HEAP32[($3_1 + 76 | 0) >> 2] = $9_1; + HEAP32[($3_1 + 72 | 0) >> 2] = $9_1; + HEAP32[($3_1 + 68 | 0) >> 2] = 200; + HEAP32[($3_1 + 2104 | 0) >> 2] = $5_1; + HEAP32[($3_1 + 2100 | 0) >> 2] = $5_1; + HEAP32[($3_1 + 2108 | 0) >> 2] = $5_1; + HEAP32[($3_1 + 2120 | 0) >> 2] = -2; + label$3 : { + label$4 : { + label$5 : { + label$6 : while (1) { + HEAP16[(HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >> 1] = HEAP32[($3_1 + 2104 | 0) >> 2] | 0; + label$7 : { + if (!((((HEAP32[($3_1 + 1692 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 68 | 0) >> 2] | 0) << 1 | 0) | 0) + -2 | 0) >>> 0 <= (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($3_1 + 40 | 0) >> 2] = (((HEAP32[($3_1 + 1688 | 0) >> 2] | 0) - (HEAP32[($3_1 + 1692 | 0) >> 2] | 0) | 0) >> 1 | 0) + 1 | 0; + label$8 : { + if (!(1e4 >>> 0 <= (HEAP32[($3_1 + 68 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$8 + } + break label$4; + } + HEAP32[($3_1 + 68 | 0) >> 2] = (HEAP32[($3_1 + 68 | 0) >> 2] | 0) << 1 | 0; + label$9 : { + if (!(1e4 >>> 0 < (HEAP32[($3_1 + 68 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$9 + } + HEAP32[($3_1 + 68 | 0) >> 2] = 1e4; + } + HEAP32[($3_1 + 36 | 0) >> 2] = HEAP32[($3_1 + 1692 | 0) >> 2] | 0; + HEAP32[($3_1 + 32 | 0) >> 2] = $963(Math_imul(HEAP32[($3_1 + 68 | 0) >> 2] | 0, 10) + 7 | 0 | 0) | 0; + label$10 : { + if ((HEAP32[($3_1 + 32 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$10 + } + break label$4; + } + $972(HEAP32[($3_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 1692 | 0) >> 2] | 0 | 0, (HEAP32[($3_1 + 40 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($3_1 + 1692 | 0) >> 2] = HEAP32[($3_1 + 32 | 0) >> 2] | 0; + HEAP32[($3_1 + 28 | 0) >> 2] = ((HEAP32[($3_1 + 68 | 0) >> 2] | 0) << 1 | 0) + 7 | 0; + HEAP32[($3_1 + 32 | 0) >> 2] = (HEAP32[($3_1 + 32 | 0) >> 2] | 0) + (((HEAP32[($3_1 + 28 | 0) >> 2] | 0) >>> 3 | 0) << 3 | 0) | 0; + $972(HEAP32[($3_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 76 | 0) >> 2] | 0 | 0, (HEAP32[($3_1 + 40 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[($3_1 + 76 | 0) >> 2] = HEAP32[($3_1 + 32 | 0) >> 2] | 0; + HEAP32[($3_1 + 24 | 0) >> 2] = ((HEAP32[($3_1 + 68 | 0) >> 2] | 0) << 3 | 0) + 7 | 0; + HEAP32[($3_1 + 32 | 0) >> 2] = (HEAP32[($3_1 + 32 | 0) >> 2] | 0) + (((HEAP32[($3_1 + 24 | 0) >> 2] | 0) >>> 3 | 0) << 3 | 0) | 0; + label$11 : { + if (!((HEAP32[($3_1 + 36 | 0) >> 2] | 0 | 0) != ($3_1 + 1696 | 0 | 0) & 1 | 0)) { + break label$11 + } + $964(HEAP32[($3_1 + 36 | 0) >> 2] | 0 | 0); + } + HEAP32[($3_1 + 1688 | 0) >> 2] = ((HEAP32[($3_1 + 1692 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 40 | 0) >> 2] | 0) << 1 | 0) | 0) + -2 | 0; + HEAP32[($3_1 + 72 | 0) >> 2] = ((HEAP32[($3_1 + 76 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 40 | 0) >> 2] | 0) << 3 | 0) | 0) + -8 | 0; + label$12 : { + if (!((((HEAP32[($3_1 + 1692 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 68 | 0) >> 2] | 0) << 1 | 0) | 0) + -2 | 0) >>> 0 <= (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$12 + } + break label$5; + } + } + label$13 : { + label$14 : { + if (!((HEAP32[($3_1 + 2104 | 0) >> 2] | 0 | 0) == (33 | 0) & 1 | 0)) { + break label$14 + } + break label$13; + } + $158_1 = 16; + HEAP32[($3_1 + 64 | 0) >> 2] = ((HEAPU16[(4496 + ((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $158_1 | 0) >> $158_1 | 0; + label$15 : { + label$16 : { + label$17 : { + label$18 : { + label$19 : { + if (!((HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) == (-124 | 0) & 1 | 0)) { + break label$19 + } + break label$18; + } + label$20 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0 | 0) == (-2 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($3_1 + 2120 | 0) >> 2] = $28($3_1 + 2112 | 0 | 0) | 0; + } + label$21 : { + label$22 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$22 + } + $185_1 = 0; + HEAP32[($3_1 + 56 | 0) >> 2] = $185_1; + HEAP32[($3_1 + 2120 | 0) >> 2] = $185_1; + break label$21; + } + label$23 : { + label$24 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) >>> 0 <= 300 >>> 0 & 1 | 0)) { + break label$24 + } + $197_1 = (HEAPU8[((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) + 5248 | 0) >> 0] | 0) & 255 | 0; + break label$23; + } + $197_1 = 2; + } + HEAP32[($3_1 + 56 | 0) >> 2] = $197_1; + } + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAP32[($3_1 + 64 | 0) >> 2] | 0) + (HEAP32[($3_1 + 56 | 0) >> 2] | 0) | 0; + label$25 : { + label$26 : { + if ((HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$26 + } + if ((1187 | 0) < (HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$26 + } + $223_1 = 16; + if (!((((HEAPU16[(5552 + ((HEAP32[($3_1 + 64 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $223_1 | 0) >> $223_1 | 0 | 0) != (HEAP32[($3_1 + 56 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$25 + } + } + break label$18; + } + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAPU16[(7936 + ((HEAP32[($3_1 + 64 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + label$27 : { + if (!((HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$27 + } + HEAP32[($3_1 + 64 | 0) >> 2] = 0 - (HEAP32[($3_1 + 64 | 0) >> 2] | 0) | 0; + break label$17; + } + label$28 : { + if (!(HEAP32[($3_1 + 2100 | 0) >> 2] | 0)) { + break label$28 + } + HEAP32[($3_1 + 2100 | 0) >> 2] = (HEAP32[($3_1 + 2100 | 0) >> 2] | 0) + -1 | 0; + } + HEAP32[($3_1 + 2120 | 0) >> 2] = -2; + HEAP32[($3_1 + 2104 | 0) >> 2] = HEAP32[($3_1 + 64 | 0) >> 2] | 0; + $261_1 = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($3_1 + 72 | 0) >> 2] = $261_1; + i64toi32_i32$2 = $3_1 + 2112 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2700 = i64toi32_i32$1; + i64toi32_i32$1 = $261_1; + HEAP32[i64toi32_i32$1 >> 2] = $2700; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + break label$15; + } + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAPU8[((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) + 10320 | 0) >> 0] | 0) & 255 | 0; + label$29 : { + if (HEAP32[($3_1 + 64 | 0) >> 2] | 0) { + break label$29 + } + break label$16; + } + } + HEAP32[($3_1 + 44 | 0) >> 2] = HEAPU8[((HEAP32[($3_1 + 64 | 0) >> 2] | 0) + 10704 | 0) >> 0] | 0; + i64toi32_i32$2 = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + ((1 - (HEAP32[($3_1 + 44 | 0) >> 2] | 0) | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2738 = i64toi32_i32$0; + i64toi32_i32$0 = $3_1; + HEAP32[($3_1 + 48 | 0) >> 2] = $2738; + HEAP32[($3_1 + 52 | 0) >> 2] = i64toi32_i32$1; + $280_1 = (HEAP32[($3_1 + 64 | 0) >> 2] | 0) + -2 | 0; + label$30 : { + label$31 : { + if ($280_1 >>> 0 > 154 >>> 0) { + break label$31 + } + label$32 : { + switch ($280_1 | 0) { + default: + HEAP32[($3_1 + 52 | 0) >> 2] = $490(1 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 1: + HEAP32[($3_1 + 52 | 0) >> 2] = $490(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 2: + HEAP32[($3_1 + 52 | 0) >> 2] = $496(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 3: + HEAP32[($3_1 + 52 | 0) >> 2] = $491(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 4: + HEAP32[($3_1 + 52 | 0) >> 2] = $493(Math_fround(Math_fround(HEAPF32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2]))) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 5: + $312_1 = 24; + HEAP32[($3_1 + 52 | 0) >> 2] = $492(((HEAPU8[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 0] | 0) << $312_1 | 0) >> $312_1 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 6: + HEAP32[($3_1 + 52 | 0) >> 2] = $494(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 7: + HEAP32[($3_1 + 52 | 0) >> 2] = $495(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 8: + HEAP32[($3_1 + 52 | 0) >> 2] = $497() | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 9: + HEAP32[($3_1 + 52 | 0) >> 2] = $498(8 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 10: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(9 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 11: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(10 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 12: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(11 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 13: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(12 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 14: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(13 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 15: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(14 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 16: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(16 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 17: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(15 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 18: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(17 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 19: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(18 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 20: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(19 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 21: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(20 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 22: + HEAP32[($3_1 + 52 | 0) >> 2] = $499(21 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 23: + HEAP32[($3_1 + 52 | 0) >> 2] = $498(22 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 24: + HEAP32[($3_1 + 52 | 0) >> 2] = $498(23 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 25: + HEAP32[($3_1 + 52 | 0) >> 2] = $500(24 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 26: + HEAP32[($3_1 + 52 | 0) >> 2] = $500(24 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $491(0 | 0) | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 27: + HEAP32[($3_1 + 52 | 0) >> 2] = $500(24 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) >> 2] | 0; + break label$30; + case 28: + HEAP32[($3_1 + 52 | 0) >> 2] = $501(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + break label$30; + case 29: + HEAP32[($3_1 + 52 | 0) >> 2] = $502(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 30: + HEAP32[($3_1 + 52 | 0) >> 2] = $505(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 31: + HEAP32[($3_1 + 52 | 0) >> 2] = $688(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 32: + HEAP32[($3_1 + 52 | 0) >> 2] = $686(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 33: + HEAP32[($3_1 + 52 | 0) >> 2] = $686(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 34: + HEAP32[($3_1 + 52 | 0) >> 2] = $687(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 35: + HEAP32[($3_1 + 52 | 0) >> 2] = $687(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 36: + HEAP32[($3_1 + 52 | 0) >> 2] = $524() | 0; + $526(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, $501(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0); + break label$30; + case 37: + $526(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, $501(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 38: + HEAP32[($3_1 + 52 | 0) >> 2] = $517(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 39: + HEAP32[($3_1 + 52 | 0) >> 2] = $793(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 40: + HEAP32[($3_1 + 52 | 0) >> 2] = $794(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + break label$30; + case 41: + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 42: + HEAP32[($3_1 + 52 | 0) >> 2] = $798() | 0; + $800(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 43: + $800(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 44: + HEAP32[($3_1 + 52 | 0) >> 2] = $801(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) >> 2] | 0; + break label$30; + case 45: + HEAP32[($3_1 + 52 | 0) >> 2] = $507(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 46: + HEAP32[($3_1 + 52 | 0) >> 2] = $508(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + break label$30; + case 47: + HEAP32[($3_1 + 52 | 0) >> 2] = $508(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + break label$30; + case 48: + HEAP32[($3_1 + 52 | 0) >> 2] = $510(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 49: + HEAP32[($3_1 + 52 | 0) >> 2] = $506(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 50: + HEAP32[($3_1 + 52 | 0) >> 2] = $511(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 51: + HEAP32[($3_1 + 52 | 0) >> 2] = $512(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) >> 2] | 0; + break label$30; + case 52: + HEAP32[($3_1 + 52 | 0) >> 2] = $513(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -64 | 0) >> 2] | 0; + break label$30; + case 53: + HEAP32[($3_1 + 52 | 0) >> 2] = $514(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) >> 2] | 0; + break label$30; + case 54: + HEAP32[($3_1 + 52 | 0) >> 2] = $743(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $491(0 | 0) | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -56 | 0) >> 2] | 0; + break label$30; + case 55: + HEAP32[($3_1 + 52 | 0) >> 2] = $744(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $491(0 | 0) | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -56 | 0) >> 2] | 0; + break label$30; + case 56: + HEAP32[($3_1 + 52 | 0) >> 2] = $743(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -72 | 0) >> 2] | 0; + break label$30; + case 57: + HEAP32[($3_1 + 52 | 0) >> 2] = $744(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -72 | 0) >> 2] | 0; + break label$30; + case 58: + HEAP32[($3_1 + 52 | 0) >> 2] = $515(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 59: + HEAP32[($3_1 + 52 | 0) >> 2] = $785(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 60: + HEAP32[($3_1 + 52 | 0) >> 2] = $789() | 0; + $791(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 61: + $791(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 62: + HEAP32[($3_1 + 52 | 0) >> 2] = $530(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 63: + HEAP32[($3_1 + 52 | 0) >> 2] = $532(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) >> 2] | 0; + break label$30; + case 64: + HEAP32[($3_1 + 52 | 0) >> 2] = $534(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 65: + HEAP32[($3_1 + 52 | 0) >> 2] = $535(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 66: + HEAP32[($3_1 + 52 | 0) >> 2] = $536(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 67: + HEAP32[($3_1 + 52 | 0) >> 2] = $541() | 0; + $543(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 68: + $543(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 69: + HEAP32[($3_1 + 52 | 0) >> 2] = $516(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 70: + HEAP32[($3_1 + 52 | 0) >> 2] = $516(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 71: + HEAP32[($3_1 + 52 | 0) >> 2] = $518(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 72: + HEAP32[($3_1 + 52 | 0) >> 2] = $524() | 0; + $526(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 73: + $526(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 74: + HEAP32[($3_1 + 52 | 0) >> 2] = $524() | 0; + $526(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 75: + $526(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 76: + HEAP32[($3_1 + 52 | 0) >> 2] = $503(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 77: + HEAP32[($3_1 + 52 | 0) >> 2] = $524() | 0; + $526(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 78: + $526(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 79: + HEAP32[($3_1 + 52 | 0) >> 2] = $504(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 80: + HEAP32[($3_1 + 52 | 0) >> 2] = $454(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 81: + HEAP32[($3_1 + 52 | 0) >> 2] = $466() | 0; + $467(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 82: + $467(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 83: + $1169 = 0; + HEAP32[($3_1 + 20 | 0) >> 2] = $458($1169 | 0) | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = $458($1169 | 0) | 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $676(HEAP32[($3_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 84: + HEAP32[($3_1 + 12 | 0) >> 2] = $458(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $458(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $676(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 85: + HEAP32[($3_1 + 52 | 0) >> 2] = $680() | 0; + $682(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 86: + $682(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 87: + HEAP32[($3_1 + 52 | 0) >> 2] = $449(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 88: + HEAP32[($3_1 + 52 | 0) >> 2] = $449(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 89: + HEAP32[($3_1 + 52 | 0) >> 2] = $450(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 90: + HEAP32[($3_1 + 52 | 0) >> 2] = $450(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 91: + HEAP32[($3_1 + 52 | 0) >> 2] = $451(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 92: + HEAP32[($3_1 + 52 | 0) >> 2] = $451(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 93: + HEAP32[($3_1 + 52 | 0) >> 2] = $452(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 94: + HEAP32[($3_1 + 52 | 0) >> 2] = $452(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 95: + HEAP32[($3_1 + 52 | 0) >> 2] = $453(0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 96: + HEAP32[($3_1 + 52 | 0) >> 2] = $453(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + break label$30; + case 97: + HEAP32[($3_1 + 52 | 0) >> 2] = $460(0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 98: + HEAP32[($3_1 + 52 | 0) >> 2] = $460(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 99: + HEAP32[($3_1 + 52 | 0) >> 2] = $455(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 100: + HEAP32[($3_1 + 52 | 0) >> 2] = $455(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) >> 2] | 0; + break label$30; + case 101: + HEAP32[($3_1 + 52 | 0) >> 2] = $457(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 102: + HEAP32[($3_1 + 52 | 0) >> 2] = $457(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) >> 2] | 0; + break label$30; + case 103: + HEAP32[($3_1 + 52 | 0) >> 2] = $459(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 104: + HEAP32[($3_1 + 52 | 0) >> 2] = $459(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) >> 2] | 0; + break label$30; + case 105: + $1393 = 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $461($1393 | 0, $1393 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 106: + HEAP32[($3_1 + 52 | 0) >> 2] = $461(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 107: + HEAP32[($3_1 + 52 | 0) >> 2] = $461(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 108: + HEAP32[($3_1 + 52 | 0) >> 2] = $461(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 109: + HEAP32[($3_1 + 52 | 0) >> 2] = $466() | 0; + $467(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 110: + $467(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 111: + HEAP32[($3_1 + 52 | 0) >> 2] = $466() | 0; + $467(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 112: + $467(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 113: + HEAP32[($3_1 + 52 | 0) >> 2] = $712(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 114: + HEAP32[($3_1 + 52 | 0) >> 2] = $713(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 115: + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 116: + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 117: + HEAP32[($3_1 + 52 | 0) >> 2] = $717() | 0; + $719(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 118: + $719(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 119: + $1514 = 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $482($1514 | 0, $1514 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 120: + HEAP32[($3_1 + 52 | 0) >> 2] = $482(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 121: + HEAP32[($3_1 + 52 | 0) >> 2] = $482(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 122: + HEAP32[($3_1 + 52 | 0) >> 2] = $482(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -40 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 123: + HEAP32[($3_1 + 52 | 0) >> 2] = $484(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 124: + HEAP32[($3_1 + 52 | 0) >> 2] = $484(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 125: + HEAP32[($3_1 + 52 | 0) >> 2] = $484(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 126: + $1578 = 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $484($1578 | 0, $1578 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 127: + $1584 = 0; + HEAP32[($3_1 + 52 | 0) >> 2] = $484($1584 | 0, $1584 | 0, $1584 | 0) | 0; + break label$30; + case 128: + HEAP32[($3_1 + 52 | 0) >> 2] = $776(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 129: + HEAP32[($3_1 + 52 | 0) >> 2] = $777(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -48 | 0) >> 2] | 0; + break label$30; + case 130: + HEAP32[($3_1 + 52 | 0) >> 2] = $781() | 0; + $783(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 131: + $783(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 132: + HEAP32[($3_1 + 52 | 0) >> 2] = $483(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$30; + case 133: + HEAP32[($3_1 + 52 | 0) >> 2] = $483(0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 134: + HEAP32[($3_1 + 52 | 0) >> 2] = $483(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 135: + HEAP32[($3_1 + 52 | 0) >> 2] = $472(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) >> 2] | 0; + break label$30; + case 136: + HEAP32[($3_1 + 52 | 0) >> 2] = $473(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 137: + HEAP32[($3_1 + 52 | 0) >> 2] = $474(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 32 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 138: + $1680 = HEAP32[(0 + 23984 | 0) >> 2] | 0; + $1684 = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = $1684; + $435($1680 | 0, 10861 | 0, $3_1 | 0); + $1690 = 0; + $964(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 2120 | 0) >> 2] = -2; + HEAP32[($3_1 + 2100 | 0) >> 2] = $1690; + HEAP32[($3_1 + 52 | 0) >> 2] = $1690; + break label$30; + case 139: + HEAP32[($3_1 + 52 | 0) >> 2] = $488() | 0; + $489(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 140: + $489(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 141: + HEAP32[($3_1 + 52 | 0) >> 2] = $765(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, $469(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) >> 2] | 0; + break label$30; + case 142: + HEAP32[($3_1 + 52 | 0) >> 2] = $764(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + break label$30; + case 143: + HEAP32[($3_1 + 52 | 0) >> 2] = $769() | 0; + $771(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 144: + $771(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 145: + HEAP32[($3_1 + 52 | 0) >> 2] = $544(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 146: + HEAP32[($3_1 + 52 | 0) >> 2] = $469(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -24 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -32 | 0) >> 2] | 0; + break label$30; + case 147: + HEAP32[($3_1 + 52 | 0) >> 2] = $803(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 148: + HEAP32[($3_1 + 52 | 0) >> 2] = $804(HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$30; + case 149: + HEAP32[($3_1 + 52 | 0) >> 2] = $808() | 0; + $810(HEAP32[($3_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$30; + case 150: + $810(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 52 | 0) >> 2] = HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0; + break label$30; + case 151: + $1794 = 0; + $1797 = $739($1794 | 0, $1794 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 2124 | 0) >> 2] | 0) >> 2] = $1797; + HEAP32[($3_1 + 52 | 0) >> 2] = $1797; + break label$30; + case 152: + $1806 = $739(0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 2124 | 0) >> 2] | 0) >> 2] = $1806; + HEAP32[($3_1 + 52 | 0) >> 2] = $1806; + break label$30; + case 153: + $1815 = $739(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 2124 | 0) >> 2] | 0) >> 2] = $1815; + HEAP32[($3_1 + 52 | 0) >> 2] = $1815; + break label$30; + case 154: + break label$32; + }; + } + $1827 = $739(HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -16 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 2124 | 0) >> 2] | 0) >> 2] = $1827; + HEAP32[($3_1 + 52 | 0) >> 2] = $1827; + break label$30; + } + } + $1829 = 0; + HEAP32[($3_1 + 72 | 0) >> 2] = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + (($1829 - (HEAP32[($3_1 + 44 | 0) >> 2] | 0) | 0) << 3 | 0) | 0; + HEAP32[($3_1 + 1688 | 0) >> 2] = (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) + (($1829 - (HEAP32[($3_1 + 44 | 0) >> 2] | 0) | 0) << 1 | 0) | 0; + HEAP32[($3_1 + 44 | 0) >> 2] = $1829; + $1848 = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($3_1 + 72 | 0) >> 2] = $1848; + i64toi32_i32$2 = $3_1 + 48 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $6271 = i64toi32_i32$1; + i64toi32_i32$1 = $1848; + HEAP32[i64toi32_i32$1 >> 2] = $6271; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAPU8[((HEAP32[($3_1 + 64 | 0) >> 2] | 0) + 10912 | 0) >> 0] | 0) & 255 | 0; + $1860 = 16; + $1865 = 16; + HEAP32[($3_1 + 2104 | 0) >> 2] = (((HEAPU16[(11072 + (((HEAP32[($3_1 + 64 | 0) >> 2] | 0) - 65 | 0) << 1 | 0) | 0) >> 1] | 0) << $1860 | 0) >> $1860 | 0) + (((HEAPU16[(HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >> 1] | 0) << $1865 | 0) >> $1865 | 0) | 0; + label$187 : { + label$188 : { + if (!(($1829 | 0) <= (HEAP32[($3_1 + 2104 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$188 + } + if (!((HEAP32[($3_1 + 2104 | 0) >> 2] | 0 | 0) <= (1187 | 0) & 1 | 0)) { + break label$188 + } + $1888 = 16; + $1893 = 16; + if (!((((HEAPU16[(5552 + ((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $1888 | 0) >> $1888 | 0 | 0) == (((HEAPU16[(HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >> 1] | 0) << $1893 | 0) >> $1893 | 0 | 0) & 1 | 0)) { + break label$188 + } + HEAP32[($3_1 + 2104 | 0) >> 2] = (HEAPU16[(7936 + ((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + break label$187; + } + $1917 = 16; + HEAP32[($3_1 + 2104 | 0) >> 2] = ((HEAPU16[(11168 + (((HEAP32[($3_1 + 64 | 0) >> 2] | 0) - 65 | 0) << 1 | 0) | 0) >> 1] | 0) << $1917 | 0) >> $1917 | 0; + } + break label$15; + } + label$189 : { + label$190 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0 | 0) == (-2 | 0) & 1 | 0)) { + break label$190 + } + $1928 = -2; + break label$189; + } + label$191 : { + label$192 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) >>> 0 <= 300 >>> 0 & 1 | 0)) { + break label$192 + } + $1940 = (HEAPU8[((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) + 5248 | 0) >> 0] | 0) & 255 | 0; + break label$191; + } + $1940 = 2; + } + $1928 = $1940; + } + HEAP32[($3_1 + 56 | 0) >> 2] = $1928; + label$193 : { + if (HEAP32[($3_1 + 2100 | 0) >> 2] | 0) { + break label$193 + } + HEAP32[($3_1 + 2108 | 0) >> 2] = (HEAP32[($3_1 + 2108 | 0) >> 2] | 0) + 1 | 0; + $29(HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0, 11260 | 0) | 0; + } + label$194 : { + if (!((HEAP32[($3_1 + 2100 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$194 + } + label$195 : { + label$196 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$196 + } + label$197 : { + if (HEAP32[($3_1 + 2120 | 0) >> 2] | 0) { + break label$197 + } + break label$5; + } + break label$195; + } + $31(11273 | 0, HEAP32[($3_1 + 56 | 0) >> 2] | 0 | 0, $3_1 + 2112 | 0 | 0, HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 2120 | 0) >> 2] = -2; + } + } + HEAP32[($3_1 + 2100 | 0) >> 2] = 3; + label$198 : { + label$199 : while (1) { + $1980 = 16; + HEAP32[($3_1 + 64 | 0) >> 2] = ((HEAPU16[(4496 + ((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $1980 | 0) >> $1980 | 0; + label$200 : { + if ((HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) == (-124 | 0) & 1 | 0) { + break label$200 + } + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAP32[($3_1 + 64 | 0) >> 2] | 0) + 1 | 0; + label$201 : { + if (!((0 | 0) <= (HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$201 + } + if (!((HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) <= (1187 | 0) & 1 | 0)) { + break label$201 + } + $2013 = 16; + if (!((((HEAPU16[(5552 + ((HEAP32[($3_1 + 64 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) << $2013 | 0) >> $2013 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$201 + } + HEAP32[($3_1 + 64 | 0) >> 2] = (HEAPU16[(7936 + ((HEAP32[($3_1 + 64 | 0) >> 2] | 0) << 1 | 0) | 0) >> 1] | 0) & 65535 | 0; + label$202 : { + if (!((0 | 0) < (HEAP32[($3_1 + 64 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$202 + } + break label$198; + } + } + } + label$203 : { + if (!((HEAP32[($3_1 + 1688 | 0) >> 2] | 0 | 0) == (HEAP32[($3_1 + 1692 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$203 + } + break label$5; + } + $31(11291 | 0, (HEAPU8[((HEAP32[($3_1 + 2104 | 0) >> 2] | 0) + 11312 | 0) >> 0] | 0) & 255 | 0 | 0, HEAP32[($3_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 72 | 0) >> 2] = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0; + HEAP32[($3_1 + 1688 | 0) >> 2] = (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) + -2 | 0; + $2058 = 16; + HEAP32[($3_1 + 2104 | 0) >> 2] = ((HEAPU16[(HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >> 1] | 0) << $2058 | 0) >> $2058 | 0; + continue label$199; + }; + } + $2066 = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($3_1 + 72 | 0) >> 2] = $2066; + i64toi32_i32$2 = $3_1 + 2112 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $6690 = i64toi32_i32$0; + i64toi32_i32$0 = $2066; + HEAP32[i64toi32_i32$0 >> 2] = $6690; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($3_1 + 2104 | 0) >> 2] = HEAP32[($3_1 + 64 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 1688 | 0) >> 2] = (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) + 2 | 0; + continue label$6; + } + break label$6; + }; + HEAP32[($3_1 + 60 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($3_1 + 60 | 0) >> 2] = 1; + break label$3; + } + $29(HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0, 11684 | 0) | 0; + HEAP32[($3_1 + 60 | 0) >> 2] = 2; + } + label$204 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0 | 0) != (-2 | 0) & 1 | 0)) { + break label$204 + } + label$205 : { + label$206 : { + if (!((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) >>> 0 <= 300 >>> 0 & 1 | 0)) { + break label$206 + } + $2094 = (HEAPU8[((HEAP32[($3_1 + 2120 | 0) >> 2] | 0) + 5248 | 0) >> 0] | 0) & 255 | 0; + break label$205; + } + $2094 = 2; + } + HEAP32[($3_1 + 56 | 0) >> 2] = $2094; + $31(11701 | 0, HEAP32[($3_1 + 56 | 0) >> 2] | 0 | 0, $3_1 + 2112 | 0 | 0, HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0); + } + $2103 = 0; + HEAP32[($3_1 + 72 | 0) >> 2] = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + (($2103 - (HEAP32[($3_1 + 44 | 0) >> 2] | 0) | 0) << 3 | 0) | 0; + HEAP32[($3_1 + 1688 | 0) >> 2] = (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) + (($2103 - (HEAP32[($3_1 + 44 | 0) >> 2] | 0) | 0) << 1 | 0) | 0; + label$207 : { + label$208 : while (1) { + if (!((HEAP32[($3_1 + 1688 | 0) >> 2] | 0 | 0) != (HEAP32[($3_1 + 1692 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$207 + } + $2126 = 16; + $31(11731 | 0, (HEAPU8[((((HEAPU16[(HEAP32[($3_1 + 1688 | 0) >> 2] | 0) >> 1] | 0) << $2126 | 0) >> $2126 | 0) + 11312 | 0) >> 0] | 0) & 255 | 0 | 0, HEAP32[($3_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 2124 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 72 | 0) >> 2] = (HEAP32[($3_1 + 72 | 0) >> 2] | 0) + -8 | 0; + HEAP32[($3_1 + 1688 | 0) >> 2] = (HEAP32[($3_1 + 1688 | 0) >> 2] | 0) + -2 | 0; + continue label$208; + }; + } + label$209 : { + if (!((HEAP32[($3_1 + 1692 | 0) >> 2] | 0 | 0) != ($3_1 + 1696 | 0 | 0) & 1 | 0)) { + break label$209 + } + $964(HEAP32[($3_1 + 1692 | 0) >> 2] | 0 | 0); + } + $2150 = HEAP32[($3_1 + 60 | 0) >> 2] | 0; + label$210 : { + $2154 = $3_1 + 2128 | 0; + if ($2154 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $2154; + } + return $2150 | 0; + } + + function $31($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $17_1 = 0, $453_1 = 0, $452_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $452_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $452_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if ((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$3 + } + HEAP32[($6_1 + 12 | 0) >> 2] = 11748; + } + $17_1 = (HEAP32[($6_1 + 8 | 0) >> 2] | 0) + -3 | 0; + label$4 : { + label$5 : { + if ($17_1 >>> 0 > 107 >>> 0) { + break label$5 + } + label$6 : { + switch ($17_1 | 0) { + default: + label$50 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$50 + } + $964(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 63: + label$51 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$51 + } + $520(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 64: + label$52 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$52 + } + $689(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 65: + label$53 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$53 + } + $689(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 66: + label$54 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$54 + } + $521(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 67: + label$55 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$55 + } + $795(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 68: + label$56 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$56 + } + $795(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 69: + label$57 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$57 + } + $799(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 70: + label$58 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$58 + } + $802(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 71: + label$59 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$59 + } + $745(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 72: + label$60 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$60 + } + $786(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 73: + label$61 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$61 + } + $790(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 74: + label$62 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$62 + } + $531(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 75: + label$63 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$63 + } + $533(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 76: + label$64 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$64 + } + $537(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 77: + label$65 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$65 + } + $542(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 78: + label$66 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$66 + } + $521(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 79: + label$67 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$67 + } + $521(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 80: + label$68 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$68 + } + $520(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 81: + label$69 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$69 + } + $521(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 82: + label$70 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$70 + } + $462(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 83: + label$71 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$71 + } + $463(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 84: + label$72 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$72 + } + $677(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 85: + label$73 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$73 + } + $681(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 86: + label$74 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$74 + } + $462(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 87: + label$75 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$75 + } + $463(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 89: + label$76 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$76 + } + $714(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 90: + label$77 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$77 + } + $714(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 91: + label$78 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$78 + } + $714(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 92: + label$79 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$79 + } + $718(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 93: + label$80 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$80 + } + $481(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 94: + label$81 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$81 + } + $476(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 95: + label$82 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$82 + } + $778(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 97: + label$83 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$83 + } + $782(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 98: + label$84 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$84 + } + $477(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 99: + label$85 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$85 + } + $480(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 100: + label$86 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$86 + } + $478(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 101: + label$87 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$87 + } + $766(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 102: + label$88 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$88 + } + $770(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 103: + label$89 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$89 + } + $545(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 104: + label$90 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$90 + } + $470(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 105: + label$91 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$91 + } + $805(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 106: + label$92 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$92 + } + $809(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$4; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 88: + case 96: + break label$5; + case 107: + break label$6; + }; + } + break label$4; + } + } + label$93 : { + $453_1 = $6_1 + 16 | 0; + if ($453_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $453_1; + } + return; + } + + function $32($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $56_1 = 0, $107_1 = 0, $106_1 = 0, $103_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $106_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $106_1; + } + $7_1 = 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 28 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $7_1; + HEAP32[(HEAP32[($6_1 + 36 | 0) >> 2] | 0) >> 2] = $7_1; + HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] = $7_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $738(HEAP32[(HEAP32[($6_1 + 40 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + if (!((HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[($6_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + $56_1 = $963((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $56_1; + HEAP32[(HEAP32[($6_1 + 36 | 0) >> 2] | 0) >> 2] = $56_1; + $973(HEAP32[(HEAP32[($6_1 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0, 0 | 0, (HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(HEAP32[($6_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + break label$7; + } + label$9 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(HEAP32[($6_1 + 28 | 0) >> 2] | 0) >> 2] = 2; + } + } + HEAP32[($6_1 + 28 | 0) >> 2] = (HEAP32[($6_1 + 28 | 0) >> 2] | 0) + 8 | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$6; + }; + } + } + } + $103_1 = 0; + label$10 : { + $107_1 = $6_1 + 48 | 0; + if ($107_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $107_1; + } + return $103_1 | 0; + } + + function $33($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $9_1 = 0, $48_1 = 0, $47_1 = 0, $44_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + $6_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $6_1; + HEAP32[$4_1 >> 2] = $6_1; + HEAP32[(0 + 25872 | 0) >> 2] = $6_1; + $30($4_1 | 0) | 0; + $9_1 = HEAP32[(0 + 25872 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $9_1; + label$3 : { + if ($9_1) { + break label$3 + } + $421(HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 4 | 0) >> 2] = $656(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + label$4 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$4 + } + HEAP32[($4_1 + 4 | 0) >> 2] = $685(HEAP32[$4_1 >> 2] | 0 | 0) | 0; + label$5 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$5 + } + HEAP32[($4_1 + 4 | 0) >> 2] = $711(HEAP32[$4_1 >> 2] | 0 | 0) | 0; + label$6 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$6 + } + HEAP32[($4_1 + 4 | 0) >> 2] = $377(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$7 + } + $32(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0 | 0) | 0; + $433(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + } + } + } + } + label$8 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $740(HEAP32[$4_1 >> 2] | 0 | 0); + } + $44_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$9 : { + $48_1 = $4_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return $44_1 | 0; + } + + function $34($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $59_1 = 0, $58_1 = 0, $36_1 = 0, $37_1 = 0, $55_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $27(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0); + break label$3; + } + label$5 : { + if (!((HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + $434(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[(0 + 25808 | 0) >> 2] = $865(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, 11757 | 0) | 0; + label$6 : { + if (!((HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$6 + } + $36_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + $37_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = $845(HEAP32[($842() | 0) >> 2] | 0 | 0) | 0; + HEAP32[$6_1 >> 2] = $37_1; + $914($36_1 | 0, 11759 | 0, $6_1 | 0) | 0; + fimport$0(1 | 0); + abort(); + } + } + } + HEAP32[($6_1 + 12 | 0) >> 2] = $33(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + if (!((HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$7 + } + $859(HEAP32[(0 + 25808 | 0) >> 2] | 0 | 0) | 0; + } + $25() | 0; + $55_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$8 : { + $59_1 = $6_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return $55_1 | 0; + } + + function $35($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $9_1 = $34(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, 11779 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + $13_1 = $4_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $36($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $7_1 = 0; + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $7_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == ($7_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($6_1 + 4 | 0) >> 2] = $210(HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = $208(HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0) | 0; + $212(HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($6_1 + 28 | 0) >> 2] = HEAP32[($6_1 + 8 | 0) >> 2] | 0; + } + $26_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$5 : { + $30_1 = $6_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $37($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $38($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAPF32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAPF32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($3_1 + 12 | 0) >> 2]); + $9_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $39($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $20_1 = Math_fround(0), $11_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAPF32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 3; + $20_1 = Math_fround(HEAPF32[($3_1 + 12 | 0) >> 2]); + label$3 : { + label$4 : { + if (!(Math_fround(Math_abs($20_1)) < Math_fround(2147483648.0))) { + break label$4 + } + $11_1 = ~~$20_1; + break label$3; + } + $11_1 = -2147483648; + } + HEAP8[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 0] = $11_1; + $15_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$5 : { + $19_1 = $3_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $40($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $15_1 = 0, $14_1 = 0, $9_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 4; + $9_1 = $856(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $9_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $41($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 4; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $42($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 5; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $43($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $26_1 = 0, $25_1 = 0, $16_1 = 0, $22_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $25_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $4_1 = 8; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963($4_1 | 0) | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $963($4_1 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0) { + break label$4 + } + HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$3; + } + $16_1 = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $16_1; + } + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 8; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + $22_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$5 : { + $26_1 = $3_1 + 16 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $22_1 | 0; + } + + function $44($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 9; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $45($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $37_1 = 0, $36_1 = 0, $25_1 = 0, $33_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[$4_1 >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $46(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[$4_1 >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[$4_1 >> 2] | 0) + 4 | 0 | 0); + label$3 : { + label$4 : { + if (!(HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] | 0)) { + break label$4 + } + $25_1 = $963((HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] = $25_1; + break label$3; + } + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] = 0; + } + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 6; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + $33_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$5 : { + $37_1 = $4_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $46($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0; + $5_1 = global$0 - 32 | 0; + $6_1 = 0; + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 12 | 0) >> 2] = 1; + HEAP32[($5_1 + 16 | 0) >> 2] = $6_1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5_1 + 28 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$1 + } + HEAP32[($5_1 + 12 | 0) >> 2] = Math_imul(HEAP32[($5_1 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0); + HEAP32[($5_1 + 16 | 0) >> 2] = (HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + HEAP32[(HEAP32[($5_1 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5_1 + 28 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + label$6 : { + if (!(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0)) { + break label$6 + } + HEAP32[($5_1 + 12 | 0) >> 2] = ((HEAP32[($5_1 + 12 | 0) >> 2] | 0) >>> 0) / ((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0) >>> 0) | 0; + HEAP32[(((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + break label$5; + } + HEAP32[(((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = 1; + } + HEAP32[($5_1 + 16 | 0) >> 2] = (HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + return; + } + + function $47($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 7; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $48($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $6_1 = 8; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963($6_1 | 0) | 0; + HEAP32[$4_1 >> 2] = $963($6_1 | 0) | 0; + HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 10; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $49($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $5_1 = 0, $64_1 = 0, $63_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $63_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $5_1 = HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($5_1 >>> 0 > 10 >>> 0) { + break label$3 + } + label$4 : { + switch ($5_1 | 0) { + default: + break label$3; + case 1: + case 2: + case 3: + break label$3; + case 4: + label$13 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$3; + case 5: + break label$3; + case 8: + label$14 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + $964(HEAP32[((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$15 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$3; + case 9: + break label$3; + case 6: + label$16 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + $50(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$3; + case 7: + break label$3; + case 10: + break label$4; + }; + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$17 : { + $64_1 = $3_1 + 16 | 0; + if ($64_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + return; + } + + function $50($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $51(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $51($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $52($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $8_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $12_1 = $3_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $53($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0; + $6_1 = global$0 - 32 | 0; + $7_1 = 0; + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $7_1; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[($6_1 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$2 + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0) >>> 0 <= (HEAP32[(((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($6_1 + 8 | 0) >> 2] | 0; + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($6_1 + 4 | 0) >> 2] = (HEAP32[($6_1 + 4 | 0) >> 2] | 0) + Math_imul(HEAP32[(((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0, HEAP32[(((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = (HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$3; + }; + } + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = -1; + HEAP32[($6_1 + 28 | 0) >> 2] = HEAP32[($6_1 + 4 | 0) >> 2] | 0; + } + return HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0; + } + + function $54($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $46_1 = 0, $45_1 = 0, $42_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $45_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $45_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[$4_1 >> 2] = $963((HEAP32[($4_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 12 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[((HEAP32[$4_1 >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0; + HEAP32[(((HEAP32[$4_1 >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[(((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $42_1 = HEAP32[$4_1 >> 2] | 0; + label$5 : { + $46_1 = $4_1 + 16 | 0; + if ($46_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + return $42_1 | 0; + } + + function $55($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $40_1 = 0, $39_1 = 0, $20_1 = 0, $28_1 = 0, $36_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $39_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[$3_1 >> 2] | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $20_1 = $54(HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 8 | 0) >> 2] = $20_1; + label$3 : { + label$4 : { + if (!(HEAP32[((HEAP32[$3_1 >> 2] | 0) + 4 | 0) >> 2] | 0)) { + break label$4 + } + $28_1 = $963((HEAP32[((HEAP32[$3_1 >> 2] | 0) + 4 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 12 | 0) >> 2] = $28_1; + break label$3; + } + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 12 | 0) >> 2] = 0; + } + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 6; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[$3_1 >> 2] | 0; + $36_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$5 : { + $40_1 = $3_1 + 16 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $56($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $10_1 = 0, $35_1 = 0, $34_1 = 0, $20_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $34_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $5_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = (HEAP32[($5_1 + 4 | 0) >> 2] | 0) + 1 | 0; + $10_1 = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[$10_1 >> 2] = (HEAP32[$10_1 >> 2] | 0) + 1 | 0; + $20_1 = $965(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = $20_1; + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 1 | 0) << 2 | 0) | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + label$3 : { + $35_1 = $4_1 + 16 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return; + } + + function $57($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $64_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + break label$1; + } + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + break label$1; + } + HEAP32[$4_1 >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[$4_1 >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$4_1 >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$4_1 >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + break label$1; + } + HEAP32[$4_1 >> 2] = (HEAP32[$4_1 >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP8[($4_1 + 15 | 0) >> 0] = 1; + } + $64_1 = 24; + return ((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $64_1 | 0) >> $64_1 | 0 | 0; + } + + function $58($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $51_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + break label$1; + } + label$4 : { + label$5 : { + if ((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (2 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + break label$1; + } + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP8[($4_1 + 15 | 0) >> 0] = 1; + break label$1; + } + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + } + $51_1 = 24; + return ((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $51_1 | 0) >> $51_1 | 0 | 0; + } + + function $59() { + var $2_1 = 0, $3_1 = 0, $14_1 = 0, $13_1 = 0, $8_1 = 0, $10_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $8_1 = $431() | 0; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $8_1; + $10_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $14_1 = $2_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $60($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $49(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $432(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $61($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $7_1 = 0, $124_1 = 0, $180_1 = 0, $198_1 = 0, $214_1 = 0, $275_1 = 0, $281_1 = 0, $421_1 = 0, i64toi32_i32$2 = 0, $445_1 = 0, $444_1 = 0, $426_1 = 0, $1643 = 0; + $4_1 = global$0 - 192 | 0; + label$1 : { + $444_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $444_1; + } + HEAP32[($4_1 + 188 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 184 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1; + HEAP32[($4_1 + 176 | 0) >> 2] = 0; + HEAP32[($4_1 + 180 | 0) >> 2] = i64toi32_i32$0; + $5_1 = 0; + HEAP32[($4_1 + 172 | 0) >> 2] = $5_1; + $841($5_1 | 0) | 0; + $7_1 = HEAP32[((HEAP32[($4_1 + 184 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : { + label$5 : { + if ($7_1 >>> 0 > 20 >>> 0) { + break label$5 + } + label$6 : { + switch ($7_1 | 0) { + default: + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 11784 | 0, 0 | 0) | 0; + break label$4; + case 1: + HEAPF32[($4_1 + 168 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 164 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 168 | 0) >> 2] = Math_fround($954(Math_fround(Math_fround(HEAPF32[($4_1 + 164 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 168 | 0) >> 2]))) | 0; + break label$4; + case 2: + HEAPF32[($4_1 + 160 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 156 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 160 | 0) >> 2] = Math_fround($953(Math_fround(Math_fround(HEAPF32[($4_1 + 156 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 160 | 0) >> 2]))) | 0; + break label$4; + case 3: + HEAPF32[($4_1 + 152 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 148 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 152 | 0) >> 2] = Math_fround($956(Math_fround(Math_fround(HEAPF32[($4_1 + 148 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 152 | 0) >> 2]))) | 0; + break label$4; + case 4: + HEAPF32[($4_1 + 144 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 140 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 144 | 0) >> 2] = Math_fround($958(Math_fround(Math_fround(HEAPF32[($4_1 + 140 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 144 | 0) >> 2]))) | 0; + break label$4; + case 5: + HEAPF32[($4_1 + 136 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 132 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 136 | 0) >> 2] = Math_fround($959(Math_fround(Math_fround(HEAPF32[($4_1 + 132 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 136 | 0) >> 2]))) | 0; + break label$4; + case 6: + HEAPF32[($4_1 + 128 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 124 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 128 | 0) >> 2] = Math_fround(Math_sqrt(Math_fround(HEAPF32[($4_1 + 124 | 0) >> 2]))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 128 | 0) >> 2]))) | 0; + break label$4; + case 7: + HEAPF32[($4_1 + 120 | 0) >> 2] = Math_fround(0 | 0); + HEAPF32[($4_1 + 116 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 112 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 120 | 0) >> 2] = Math_fround($962(Math_fround(Math_fround(HEAPF32[($4_1 + 116 | 0) >> 2])), Math_fround(Math_fround(HEAPF32[($4_1 + 112 | 0) >> 2])))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 120 | 0) >> 2]))) | 0; + $124_1 = HEAP32[($4_1 + 188 | 0) >> 2] | 0; + HEAP32[$124_1 >> 2] = (HEAP32[$124_1 >> 2] | 0) + -1 | 0; + break label$4; + case 8: + HEAP32[($4_1 + 108 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 104 | 0) >> 2] = $226(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $667(HEAP32[($4_1 + 108 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 172 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 104 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 9: + HEAPF32[($4_1 + 100 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 96 | 0) >> 2] = $226(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $668(Math_fround(Math_fround(HEAPF32[($4_1 + 100 | 0) >> 2]))) | 0 | 0) | 0; + HEAP32[($4_1 + 172 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 96 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 10: + HEAP8[($4_1 + 95 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $180_1 = 24; + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAPU8[($4_1 + 95 | 0) >> 0] | 0) << $180_1 | 0) >> $180_1 | 0 | 0) | 0; + break label$4; + case 11: + HEAP32[($4_1 + 88 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $198_1 = 24; + HEAP32[($4_1 + 172 | 0) >> 2] = $224(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 88 | 0) >> 2] | 0) << $198_1 | 0) >> $198_1 | 0 | 0) | 0; + break label$4; + case 12: + HEAP32[($4_1 + 84 | 0) >> 2] = 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $4_1 + 84 | 0; + HEAP32[($4_1 + 80 | 0) >> 2] = $866(11807 | 0, $4_1 + 16 | 0 | 0) | 0; + HEAP32[($4_1 + 80 | 0) >> 2] = HEAP32[($4_1 + 80 | 0) >> 2] | 0; + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0) | 0; + $214_1 = HEAP32[($4_1 + 188 | 0) >> 2] | 0; + HEAP32[$214_1 >> 2] = (HEAP32[$214_1 >> 2] | 0) + 1 | 0; + break label$4; + case 13: + HEAP32[($4_1 + 76 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $673(HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 14: + HEAP32[($4_1 + 72 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $673(HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 15: + HEAPF32[($4_1 + 68 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + $674(Math_fround(Math_fround(HEAPF32[($4_1 + 68 | 0) >> 2]))); + HEAP32[($4_1 + 172 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 68 | 0) >> 2]))) | 0; + break label$4; + case 16: + HEAP8[($4_1 + 67 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $275_1 = 24; + $675(((HEAPU8[($4_1 + 67 | 0) >> 0] | 0) << $275_1 | 0) >> $275_1 | 0 | 0); + $281_1 = 24; + HEAP32[($4_1 + 172 | 0) >> 2] = $224(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAPU8[($4_1 + 67 | 0) >> 0] | 0) << $281_1 | 0) >> $281_1 | 0 | 0) | 0; + break label$4; + case 17: + HEAP32[($4_1 + 60 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$27 : { + if (!((HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$27 + } + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 56 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + $672(HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 172 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 18: + HEAP32[($4_1 + 52 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$28 : { + if (!((HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$28 + } + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 48 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) | 0; + label$29 : { + if (!((HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $980(HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 19: + HEAP32[($4_1 + 40 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$30 : { + if (HEAP32[($4_1 + 40 | 0) >> 2] | 0) { + break label$30 + } + $435(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 11810 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 44 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + break label$4; + case 20: + break label$6; + }; + } + HEAPF32[($4_1 + 36 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 32 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + label$31 : { + label$32 : { + if (Math_fround(-Math_fround(HEAPF32[($4_1 + 32 | 0) >> 2])) > Math_fround(HEAPF32[($4_1 + 36 | 0) >> 2]) & 1 | 0) { + break label$32 + } + if (!(Math_fround(HEAPF32[($4_1 + 36 | 0) >> 2]) > Math_fround(HEAPF32[($4_1 + 32 | 0) >> 2]) & 1 | 0)) { + break label$31 + } + } + $435(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 11810 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 44 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 172 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + $421_1 = HEAP32[($4_1 + 188 | 0) >> 2] | 0; + HEAP32[$421_1 >> 2] = (HEAP32[$421_1 >> 2] | 0) + -1 | 0; + break label$4; + } + $426_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[((HEAP32[($4_1 + 184 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $914($426_1 | 0, 11825 | 0, $4_1 | 0) | 0; + } + HEAP32[($4_1 + 176 | 0) >> 2] = 2; + HEAP32[($4_1 + 180 | 0) >> 2] = HEAP32[($4_1 + 172 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 176 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1643 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1643; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$33 : { + $445_1 = $4_1 + 192 | 0; + if ($445_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $445_1; + } + return; + } + + function $62($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 11891 | 0, 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return; + } + + function $63($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $14_1 = 0, $30_1 = 0, $29_1 = 0, $100_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + $14_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$14_1 >> 2] = (HEAP32[$14_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $100_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $100_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $30_1 = $4_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return; + } + + function $64($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $23_1 = 0, $22_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) >= (HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 11858 | 0, 0 | 0) | 0; + $207(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, 11875 | 0); + fimport$0(1 | 0); + abort(); + } + label$4 : { + $23_1 = $3_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return; + } + + function $65($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13_1 = 0, $29_1 = 0, $28_1 = 0, $100_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $28_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2]))) | 0; + $13_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$13_1 >> 2] = (HEAP32[$13_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $100_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $100_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $29_1 = $4_1 + 32 | 0; + if ($29_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + return; + } + + function $66($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $13_1 = 0, $17_1 = 0, $33_1 = 0, $32_1 = 0, $109_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $13_1 = 24; + HEAP32[($4_1 + 12 | 0) >> 2] = $224(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAPU8[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 0] | 0) << $13_1 | 0) >> $13_1 | 0 | 0) | 0; + $17_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$17_1 >> 2] = (HEAP32[$17_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $109_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $109_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $33_1 = $4_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return; + } + + function $67($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $23_1 = 0, $42_1 = 0, $41_1 = 0, $139_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $225(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + $23_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$23_1 >> 2] = (HEAP32[$23_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $139_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $139_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $42_1 = $4_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return; + } + + function $68($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $17_1 = 0, $33_1 = 0, $32_1 = 0, $108_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $17_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$17_1 >> 2] = (HEAP32[$17_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $108_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $108_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $33_1 = $4_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return; + } + + function $69($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $23_1 = 0, $39_1 = 0, $38_1 = 0, $128_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $38_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $23_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$23_1 >> 2] = (HEAP32[$23_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $128_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $128_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $39_1 = $4_1 + 32 | 0; + if ($39_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + return; + } + + function $70($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $37_1 = 0, $53_1 = 0, $52_1 = 0, $180_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $52_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $255(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $37_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$37_1 >> 2] = (HEAP32[$37_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $180_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $180_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $53_1 = $4_1 + 32 | 0; + if ($53_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + return; + } + + function $71($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $38_1 = 0, $80_1 = 0, i64toi32_i32$2 = 0, $96_1 = 0, $95_1 = 0, $332_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $95_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $95_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 36 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + label$3 : { + label$4 : { + if ((HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) % (2 | 0) | 0) { + break label$4 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + break label$3; + } + $38_1 = 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $38_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $38_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 32 | 0) >> 2] | 0) - 1 | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $38_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $38_1; + HEAP32[($4_1 + 16 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$5 : { + label$6 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) > (HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($4_1 + 28 | 0) >> 2] = (HEAP32[($4_1 + 12 | 0) >> 2] | 0) - (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0; + break label$5; + } + HEAP32[($4_1 + 28 | 0) >> 2] = (HEAP32[($4_1 + 16 | 0) >> 2] | 0) - (HEAP32[($4_1 + 12 | 0) >> 2] | 0) | 0; + } + } + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $80_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$80_1 >> 2] = (HEAP32[$80_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $332_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $332_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$7 : { + $96_1 = $4_1 + 64 | 0; + if ($96_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $96_1; + } + return; + } + + function $72($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $16_1 = 0, $32_1 = 0, $31_1 = 0, $107_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $31_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + $16_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$16_1 >> 2] = (HEAP32[$16_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $107_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $107_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $32_1 = $4_1 + 32 | 0; + if ($32_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + return; + } + + function $73($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 11909 | 0, 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return; + } + + function $74($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $34_1 = 0, $33_1 = 0, $113_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $33_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $232(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $113_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $113_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $34_1 = $4_1 + 32 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return; + } + + function $75($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $37_1 = 0, $36_1 = 0, $121_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, 0 - (HEAP32[($4_1 + 12 | 0) >> 2] | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $121_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $121_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $37_1 = $4_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return; + } + + function $76($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $49_1 = 0, $56_1 = 0, $55_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $55_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0) + (HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$49_1 >> 2] = (HEAP32[$49_1 >> 2] | 0) + -1 | 0; + label$3 : { + $56_1 = $4_1 + 32 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return; + } + + function $77($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $49_1 = 0, $56_1 = 0, $55_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $55_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0) - (HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$49_1 >> 2] = (HEAP32[$49_1 >> 2] | 0) + -1 | 0; + label$3 : { + $56_1 = $4_1 + 32 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return; + } + + function $78($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $49_1 = 0, $56_1 = 0, $55_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $55_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_imul(HEAP32[($4_1 + 12 | 0) >> 2] | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $49_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$49_1 >> 2] = (HEAP32[$49_1 >> 2] | 0) + -1 | 0; + label$3 : { + $56_1 = $4_1 + 32 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return; + } + + function $79($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $62_1 = 0, $69_1 = 0, $68_1 = 0, $210_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $68_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$3 : { + label$4 : { + if (HEAP32[($4_1 + 8 | 0) >> 2] | 0) { + break label$4 + } + $435(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 11991 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) / (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $210_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $210_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $62_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$62_1 >> 2] = (HEAP32[$62_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $69_1 = $4_1 + 32 | 0; + if ($69_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + return; + } + + function $80($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $62_1 = 0, $69_1 = 0, $68_1 = 0, $210_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $68_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$3 : { + label$4 : { + if (HEAP32[($4_1 + 8 | 0) >> 2] | 0) { + break label$4 + } + $435(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 11991 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) % (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $210_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $210_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $62_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$62_1 >> 2] = (HEAP32[$62_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $69_1 = $4_1 + 32 | 0; + if ($69_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + return; + } + + function $81($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $33_1 = 0, $32_1 = 0, $119_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 8 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(-Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2])))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $119_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $119_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $33_1 = $4_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return; + } + + function $82($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $44_1 = 0, $51_1 = 0, $50_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $50_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) + Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2])))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $44_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$44_1 >> 2] = (HEAP32[$44_1 >> 2] | 0) + -1 | 0; + label$3 : { + $51_1 = $4_1 + 32 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return; + } + + function $83($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $44_1 = 0, $51_1 = 0, $50_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $50_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) - Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2])))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $44_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$44_1 >> 2] = (HEAP32[$44_1 >> 2] | 0) + -1 | 0; + label$3 : { + $51_1 = $4_1 + 32 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return; + } + + function $84($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $44_1 = 0, $51_1 = 0, $50_1 = 0, $173_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $50_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) * Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2])))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $173_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $173_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $44_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$44_1 >> 2] = (HEAP32[$44_1 >> 2] | 0) + -1 | 0; + label$3 : { + $51_1 = $4_1 + 32 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return; + } + + function $85($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, i64toi32_i32$2 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $223_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + $5_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + label$3 : { + label$4 : { + if (!(Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) == Math_fround($5_1 | 0) & 1 | 0)) { + break label$4 + } + $435(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 11991 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) / Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2])))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $223_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $223_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $86($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $84_1 = 0, $91_1 = 0, $90_1 = 0, $278_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $90_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 20 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $226(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $669(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $278_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $278_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $84_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$84_1 >> 2] = (HEAP32[$84_1 >> 2] | 0) + -1 | 0; + } + label$6 : { + $91_1 = $4_1 + 48 | 0; + if ($91_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + return; + } + + function $87($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $48_1 = 0, i64toi32_i32$2 = 0, $72_1 = 0, $79_1 = 0, $78_1 = 0, $243_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $78_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $78_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $48_1 = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = $48_1; + HEAP32[$4_1 >> 2] = $226(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $670(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $48_1 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $243_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $243_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $72_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$72_1 >> 2] = (HEAP32[$72_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $79_1 = $4_1 + 32 | 0; + if ($79_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $79_1; + } + return; + } + + function $88($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $73_1 = 0, $80_1 = 0, $79_1 = 0, $244_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $79_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $79_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = 0; + HEAP32[$4_1 >> 2] = $226(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $670(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, 1 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $244_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $244_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $73_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$73_1 >> 2] = (HEAP32[$73_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $80_1 = $4_1 + 32 | 0; + if ($80_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + return; + } + + function $89($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, i64toi32_i32$2 = 0, $70_1 = 0, $77_1 = 0, $76_1 = 0, $243_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $76_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $76_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 8 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $47_1 = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = $47_1; + HEAP32[$4_1 >> 2] = $226(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $671(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2])), $47_1 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $243_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $243_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $70_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$70_1 >> 2] = (HEAP32[$70_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $77_1 = $4_1 + 32 | 0; + if ($77_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $77_1; + } + return; + } + + function $90($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $71_1 = 0, $78_1 = 0, $77_1 = 0, $244_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $77_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $77_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAPF32[($4_1 + 4 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[$4_1 >> 2] = 0; + HEAP32[$4_1 >> 2] = $226(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $671(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 4 | 0) >> 2])), 1 | 0) | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $244_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $244_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $71_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$71_1 >> 2] = (HEAP32[$71_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $78_1 = $4_1 + 32 | 0; + if ($78_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $78_1; + } + return; + } + + function $91($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $92($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) > (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $93($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) <= (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $94($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) >= (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $95($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $96($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $97($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) < Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $98($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) > Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $99($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) <= Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $100($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) >= Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $101($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) == Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $102($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $47_1 = 0, $54_1 = 0, $53_1 = 0, $178_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2]) != Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $178_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $178_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $47_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$47_1 >> 2] = (HEAP32[$47_1 >> 2] | 0) + -1 | 0; + label$3 : { + $54_1 = $4_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return; + } + + function $103($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) < (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $104($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) > (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $105($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) <= (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $106($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) >= (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $107($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) == (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $108($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $40_1 = 0, $59_1 = 0, $66_1 = 0, $65_1 = 0, $200_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $65_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP8[($4_1 + 14 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $36_1 = 24; + $40_1 = 24; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $36_1 | 0) >> $36_1 | 0 | 0) != (((HEAPU8[($4_1 + 14 | 0) >> 0] | 0) << $40_1 | 0) >> $40_1 | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $200_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $200_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $59_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$59_1 >> 2] = (HEAP32[$59_1 >> 2] | 0) + -1 | 0; + label$3 : { + $66_1 = $4_1 + 32 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $109($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $83_1 = 0, $90_1 = 0, $89_1 = 0, $272_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $89_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $89_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 20 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ($855(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0 ? 0 : 1) | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $272_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $272_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $83_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$83_1 >> 2] = (HEAP32[$83_1 >> 2] | 0) + -1 | 0; + } + label$6 : { + $90_1 = $4_1 + 48 | 0; + if ($90_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + return; + } + + function $110($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $83_1 = 0, $90_1 = 0, $89_1 = 0, $272_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $89_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $89_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 20 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $242(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ($855(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0 ? 1 : 0) | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $272_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $272_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $83_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$83_1 >> 2] = (HEAP32[$83_1 >> 2] | 0) + -1 | 0; + } + label$6 : { + $90_1 = $4_1 + 48 | 0; + if ($90_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + return; + } + + function $111($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $112($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $113($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $114($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $115($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $116($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $117($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $118($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $119($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $120($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $53_1 = 0, $60_1 = 0, $59_1 = 0, $182_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $182_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $182_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $53_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$53_1 >> 2] = (HEAP32[$53_1 >> 2] | 0) + -1 | 0; + label$3 : { + $60_1 = $4_1 + 32 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $121($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $122($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $123($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $124($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $125($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $126($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $127($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $128($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $59_1 = 0, $58_1 = 0, $177_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $177_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $177_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $52_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$52_1 >> 2] = (HEAP32[$52_1 >> 2] | 0) + -1 | 0; + label$3 : { + $59_1 = $4_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $129($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $43_1 = 0, $42_1 = 0, $135_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $42_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) ^ -1 | 0) & 1 | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $135_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $135_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $43_1 = $4_1 + 32 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return; + } + + function $130($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $25_1 = 0, $24_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $236(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + label$3 : { + $25_1 = $4_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return; + } + + function $131($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $25_1 = 0, $24_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $237(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + label$3 : { + $25_1 = $4_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return; + } + + function $132($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $31_1 = 0, $47_1 = 0, $46_1 = 0, $158_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $46_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $31_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$31_1 >> 2] = (HEAP32[$31_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $158_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $158_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $47_1 = $4_1 + 32 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return; + } + + function $133($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $35_1 = 0, $34_1 = 0, $119_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0))) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $119_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $119_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $35_1 = $4_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return; + } + + function $134($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7_1 = 0, $43_1 = Math_fround(0), $22_1 = 0, $40_1 = 0, $39_1 = 0, $8_1 = 0, $137_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $39_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + $7_1 = $4_1 + 16 | 0; + $8_1 = 2; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $7_1; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $43_1 = Math_fround($238(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + label$3 : { + label$4 : { + if (!(Math_fround(Math_abs($43_1)) < Math_fround(2147483648.0))) { + break label$4 + } + $22_1 = ~~$43_1; + break label$3; + } + $22_1 = -2147483648; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $22_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $8_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[$7_1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 4 | 0) >> 2] | 0; + $137_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $137_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$5 : { + $40_1 = $4_1 + 32 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return; + } + + function $135($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $91_1 = 0, $90_1 = 0, $294_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $90_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 20 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 28 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 28 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_imul(HEAP32[($4_1 + 12 | 0) >> 2] | 0, -1) | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 28 | 0) >> 2] = (HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $294_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $294_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$7 : { + $91_1 = $4_1 + 48 | 0; + if ($91_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + return; + } + + function $136($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $31_1 = 0, i64toi32_i32$2 = 0, $86_1 = 0, $85_1 = 0, $297_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $85_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $85_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $31_1 = 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $31_1; + HEAP32[($4_1 + 16 | 0) >> 2] = $31_1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + HEAPF32[($4_1 + 12 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 8 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(-+Math_fround(HEAPF32[($4_1 + 12 | 0) >> 2])))) | 0; + $259(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = (HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $297_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $297_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$7 : { + $86_1 = $4_1 + 48 | 0; + if ($86_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $86_1; + } + return; + } + + function $137($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $75_1 = 0, $78_1 = 0, i64toi32_i32$2 = 0, $142_1 = 0, $149_1 = 0, $148_1 = 0, $467_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $148_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $148_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($57(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 20 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0 | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 24 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $467_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $467_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $142_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$142_1 >> 2] = (HEAP32[$142_1 >> 2] | 0) + -1 | 0; + } + label$9 : { + $149_1 = $4_1 + 64 | 0; + if ($149_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $149_1; + } + return; + } + + function $138($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $75_1 = 0, $78_1 = 0, i64toi32_i32$2 = 0, $137_1 = 0, $144_1 = 0, $143_1 = 0, $467_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $143_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $143_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($57(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAPF32[($4_1 + 20 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 16 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 12 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 20 | 0) >> 2]) + Math_fround(HEAPF32[($4_1 + 16 | 0) >> 2])))) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 24 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $467_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $467_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $137_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$137_1 >> 2] = (HEAP32[$137_1 >> 2] | 0) + -1 | 0; + } + label$9 : { + $144_1 = $4_1 + 64 | 0; + if ($144_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $144_1; + } + return; + } + + function $139($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $75_1 = 0, $78_1 = 0, i64toi32_i32$2 = 0, $142_1 = 0, $149_1 = 0, $148_1 = 0, $467_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $148_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $148_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($57(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 20 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 20 | 0) >> 2] | 0) - (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0 | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 24 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $467_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $467_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $142_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$142_1 >> 2] = (HEAP32[$142_1 >> 2] | 0) + -1 | 0; + } + label$9 : { + $149_1 = $4_1 + 64 | 0; + if ($149_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $149_1; + } + return; + } + + function $140($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $75_1 = 0, $78_1 = 0, i64toi32_i32$2 = 0, $137_1 = 0, $144_1 = 0, $143_1 = 0, $467_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $143_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $143_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($57(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAPF32[($4_1 + 20 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAPF32[($4_1 + 16 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 12 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 20 | 0) >> 2]) - Math_fround(HEAPF32[($4_1 + 16 | 0) >> 2])))) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 24 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $467_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $467_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $137_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$137_1 >> 2] = (HEAP32[$137_1 >> 2] | 0) + -1 | 0; + } + label$9 : { + $144_1 = $4_1 + 64 | 0; + if ($144_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $144_1; + } + return; + } + + function $141($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $44_1 = 0, i64toi32_i32$2 = 0, $102_1 = 0, $109_1 = 0, $108_1 = 0, $345_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $108_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $108_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $44_1 = 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $44_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $44_1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_imul(HEAP32[($4_1 + 28 | 0) >> 2] | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0) | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = (HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $345_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $345_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $102_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$102_1 >> 2] = (HEAP32[$102_1 >> 2] | 0) + -1 | 0; + } + label$7 : { + $109_1 = $4_1 + 48 | 0; + if ($109_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $109_1; + } + return; + } + + function $142($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $43_1 = 0, i64toi32_i32$2 = 0, $97_1 = 0, $104_1 = 0, $103_1 = 0, $345_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $103_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $103_1; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAPF32[($4_1 + 28 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 24 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $43_1 = 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $233(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $43_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $43_1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0)); + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(Math_fround(HEAPF32[($4_1 + 28 | 0) >> 2]) * Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2])))) | 0; + $259(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = (HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $345_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $345_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $97_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$97_1 >> 2] = (HEAP32[$97_1 >> 2] | 0) + -1 | 0; + } + label$7 : { + $104_1 = $4_1 + 48 | 0; + if ($104_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $104_1; + } + return; + } + + function $143($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $78_1 = 0, $112_1 = 0, $75_1 = 0, $79_1 = 0, i64toi32_i32$2 = 0, $197_1 = 0, $204_1 = 0, $203_1 = 0, $154_1 = 0, $650_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $203_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $203_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($58(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + $79_1 = 2; + HEAP32[($4_1 + 28 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $52($79_1 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 24 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $230(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $79_1 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 16 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$9 + } + $112_1 = 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $112_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $112_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $112_1; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$11 + } + $154_1 = Math_imul($234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($4_1 + 20 | 0) >> 2] | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 12 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0, $234(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($4_1 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] | 0 | 0) | 0); + HEAP32[($4_1 + 8 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + $154_1 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = (HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$12; + }; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, Math_imul(HEAP32[($4_1 + 20 | 0) >> 2] | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = (HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $650_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $650_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $197_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$197_1 >> 2] = (HEAP32[$197_1 >> 2] | 0) + -1 | 0; + } + label$13 : { + $204_1 = $4_1 + 64 | 0; + if ($204_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $204_1; + } + return; + } + + function $144($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $78_1 = 0, $112_1 = 0, $75_1 = 0, $79_1 = 0, i64toi32_i32$2 = 0, $191_1 = 0, $198_1 = 0, $197_1 = 0, $204_1 = Math_fround(0), $653_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $197_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $197_1; + } + HEAP32[($4_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 48 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 44 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $254(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if ((($58(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0) & 255 | 0 | 0) != (0 & 255 | 0 | 0) & 1 | 0) { + break label$6 + } + $435(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12014 | 0, 0 | 0); + $75_1 = 2; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = $75_1; + HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = $75_1; + break label$3; + } + $78_1 = 0; + $79_1 = 2; + HEAP32[($4_1 + 28 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $78_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $52($79_1 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 24 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $230(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $79_1 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $78_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 16 | 0) >> 2] = 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$9 + } + $112_1 = 0; + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround($112_1 | 0); + HEAP32[($4_1 + 4 | 0) >> 2] = $112_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $112_1; + label$11 : { + label$12 : while (1) { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$11 + } + $204_1 = Math_fround(Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($4_1 + 20 | 0) >> 2] | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 12 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] | 0 | 0)) * Math_fround($238(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((Math_imul(HEAP32[($4_1 + 12 | 0) >> 2] | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0) << 2 | 0) | 0) >> 2] | 0 | 0))); + HEAPF32[($4_1 + 8 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]) + $204_1); + HEAP32[($4_1 + 12 | 0) >> 2] = (HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$12; + }; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]))) | 0; + $259(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, Math_imul(HEAP32[($4_1 + 20 | 0) >> 2] | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = (HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 1 | 0; + continue label$10; + }; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + HEAP32[($4_1 + 48 | 0) >> 2] = 2; + HEAP32[($4_1 + 52 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 48 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $653_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 60 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $653_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $191_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + HEAP32[$191_1 >> 2] = (HEAP32[$191_1 >> 2] | 0) + -1 | 0; + } + label$13 : { + $198_1 = $4_1 + 64 | 0; + if ($198_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $198_1; + } + return; + } + + function $145($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $29_1 = 0, $36_1 = 0, $35_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $35_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $235(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + $29_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$29_1 >> 2] = (HEAP32[$29_1 >> 2] | 0) + -1 | 0; + label$3 : { + $36_1 = $4_1 + 16 | 0; + if ($36_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + return; + } + + function $146($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $27_1 = 0, $34_1 = 0, $33_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAPF32[($4_1 + 4 | 0) >> 2] = Math_fround($238(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0)); + $239(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[($4_1 + 4 | 0) >> 2]))); + $27_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$27_1 >> 2] = (HEAP32[$27_1 >> 2] | 0) + -1 | 0; + label$3 : { + $34_1 = $4_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return; + } + + function $147($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $29_1 = 0, $32_1 = 0, $39_1 = 0, $38_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $38_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP8[($4_1 + 7 | 0) >> 0] = $240(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $29_1 = 24; + $241(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, ((HEAPU8[($4_1 + 7 | 0) >> 0] | 0) << $29_1 | 0) >> $29_1 | 0 | 0); + $32_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$32_1 >> 2] = (HEAP32[$32_1 >> 2] | 0) + -1 | 0; + label$3 : { + $39_1 = $4_1 + 16 | 0; + if ($39_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + return; + } + + function $148($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $41_1 = 0, $48_1 = 0, $47_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $245(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + $41_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$41_1 >> 2] = (HEAP32[$41_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $48_1 = $4_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $149($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $41_1 = 0, $48_1 = 0, $47_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $253(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + $41_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$41_1 >> 2] = (HEAP32[$41_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $48_1 = $4_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $150($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $29_1 = 0, $36_1 = 0, $35_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $35_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $250(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $29_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$29_1 >> 2] = (HEAP32[$29_1 >> 2] | 0) + -1 | 0; + label$3 : { + $36_1 = $4_1 + 16 | 0; + if ($36_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + return; + } + + function $151($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $65_1 = 0, $72_1 = 0, $71_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $71_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $71_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = $262(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $263(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + $264(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0); + $65_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$65_1 >> 2] = (HEAP32[$65_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $72_1 = $4_1 + 16 | 0; + if ($72_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $72_1; + } + return; + } + + function $152($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $29_1 = 0, $36_1 = 0, $35_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $35_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $250(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $29_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$29_1 >> 2] = (HEAP32[$29_1 >> 2] | 0) + -1 | 0; + label$3 : { + $36_1 = $4_1 + 16 | 0; + if ($36_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + return; + } + + function $153($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $23_1 = 0, $30_1 = 0, $29_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $29_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$3 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0; + } + $23_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$23_1 >> 2] = (HEAP32[$23_1 >> 2] | 0) + -1 | 0; + label$4 : { + $30_1 = $4_1 + 16 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return; + } + + function $154($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0; + return; + } + + function $155($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $156($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 2 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $157($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $26_1 = 0, $27_1 = 0, $108_1 = 0, $209_1 = 0, i64toi32_i32$2 = 0, $228_1 = 0, $227_1 = 0, $23_1 = 0, $25_1 = 0, $43_1 = 0, $719_1 = 0; + $5_1 = global$0 - 64 | 0; + label$1 : { + $227_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $227_1; + } + $6_1 = 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 52 | 0) >> 2] = $2_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $5_1 + 40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5_1 + 36 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 32 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 28 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5_1 + 24 | 0) >> 2] = $52(HEAP32[($5_1 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 36 | 0) >> 2] = $6_1; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5_1 + 36 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5_1 + 32 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + $23_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $25_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $26_1 = HEAP32[($5_1 + 60 | 0) >> 2] | 0; + $27_1 = HEAP32[$26_1 >> 2] | 0; + HEAP32[$26_1 >> 2] = $27_1 + -1 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $234($23_1 | 0, HEAP32[(($25_1 + ($27_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) <= (0 | 0) & 1 | 0)) { + break label$6 + } + $51(HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0); + $43_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = HEAP32[($5_1 + 36 | 0) >> 2] | 0; + $435($43_1 | 0, 12035 | 0, $5_1 | 0); + HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 36 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($5_1 + 36 | 0) >> 2] = (HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($5_1 + 20 | 0) >> 2] = $230(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 28 | 0) >> 2] = $256(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 36 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($5_1 + 36 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5_1 + 28 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + label$9 : { + label$10 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $222(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $223(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(0 | 0))) | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$14 + } + $108_1 = 24; + HEAP32[($5_1 + 16 | 0) >> 2] = $224(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (0 << $108_1 | 0) >> $108_1 | 0 | 0) | 0; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $227(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$15; + } + label$17 : { + label$18 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $231(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$17; + } + label$19 : { + label$20 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $229(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$19; + } + label$21 : { + label$22 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $229(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$21; + } + label$23 : { + label$24 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $222(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$23; + } + label$25 : { + label$26 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $229(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$25; + } + label$27 : { + label$28 : { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$28 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $232(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + break label$27; + } + } + } + } + } + } + } + } + } + } + } + $259(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0); + HEAP32[($5_1 + 36 | 0) >> 2] = (HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + $209_1 = HEAP32[($5_1 + 60 | 0) >> 2] | 0; + HEAP32[$209_1 >> 2] = (HEAP32[$209_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0); + HEAP32[($5_1 + 40 | 0) >> 2] = 2; + HEAP32[($5_1 + 44 | 0) >> 2] = $231(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $5_1 + 40 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $719_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $719_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$29 : { + $228_1 = $5_1 + 64 | 0; + if ($228_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $228_1; + } + return; + } + + function $158($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 3 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $159($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 4 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $160($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 5 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $161($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 7 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $162($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 13 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $163($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $157(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 14 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $164($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $24_1 = 0, $25_1 = 0, $64_1 = 0, $65_1 = 0, $79_1 = 0, i64toi32_i32$2 = 0, $98_1 = 0, $97_1 = 0, $21_1 = 0, $23_1 = 0, $32_1 = 0, $59_1 = 0, $60_1 = 0, $61_1 = 0, $63_1 = 0, $332_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $97_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $97_1; + } + $5_1 = 0; + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 16 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $52(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $5_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 28 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $21_1 = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $23_1 = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $24_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + $25_1 = HEAP32[$24_1 >> 2] | 0; + HEAP32[$24_1 >> 2] = $25_1 + -1 | 0; + $32_1 = $234($21_1 | 0, HEAP32[(($23_1 + ($25_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 28 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] = $32_1; + HEAP32[($4_1 + 28 | 0) >> 2] = (HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $230(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $256(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 28 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 20 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + $59_1 = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $60_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $61_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $63_1 = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $64_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + $65_1 = HEAP32[$64_1 >> 2] | 0; + HEAP32[$64_1 >> 2] = $65_1 + -1 | 0; + $259($59_1 | 0, $60_1 | 0, $61_1 | 0, HEAP32[(($63_1 + ($65_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 28 | 0) >> 2] = (HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + $79_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + HEAP32[$79_1 >> 2] = (HEAP32[$79_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 32 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $332_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $332_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$7 : { + $98_1 = $4_1 + 48 | 0; + if ($98_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $98_1; + } + return; + } + + function $165($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$1 = 0, $30_1 = 0, $31_1 = 0, $45_1 = 0, i64toi32_i32$2 = 0, $64_1 = 0, $63_1 = 0, $25_1 = 0, $26_1 = 0, $27_1 = 0, $29_1 = 0, $214_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $63_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + $5_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) << 1 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $5_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $25_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $26_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $27_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $29_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $30_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $31_1 = HEAP32[$30_1 >> 2] | 0; + HEAP32[$30_1 >> 2] = $31_1 + -1 | 0; + $247($25_1 | 0, $26_1 | 0, $27_1 | 0, HEAP32[(($29_1 + ($31_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 8 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $45_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$45_1 >> 2] = (HEAP32[$45_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $214_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $214_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$5 : { + $64_1 = $4_1 + 32 | 0; + if ($64_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + return; + } + + function $166($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $56_1 = 0, $58_1 = 0, $74_1 = 0, i64toi32_i32$2 = 0, $88_1 = 0, $87_1 = 0, $280_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $87_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $87_1; + } + $5_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $56_1 = 2; + $58_1 = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $58_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $56_1 | 0) | 0; + $247(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, $58_1 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + $247(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = $56_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $74_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$74_1 >> 2] = (HEAP32[$74_1 >> 2] | 0) + -1 | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $280_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $280_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$6 : { + $88_1 = $4_1 + 32 | 0; + if ($88_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $88_1; + } + return; + } + + function $167($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $77_1 = 0, i64toi32_i32$1 = 0, $52_1 = 0, $170_1 = 0, i64toi32_i32$2 = 0, $184_1 = 0, $183_1 = 0, $612_1 = 0; + $4_1 = global$0 - 96 | 0; + label$1 : { + $183_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $183_1; + } + HEAP32[($4_1 + 92 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 88 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 80 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 76 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 92 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 72 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 92 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $52_1 = 0; + HEAP32[($4_1 + 68 | 0) >> 2] = $52_1; + HEAP32[($4_1 + 64 | 0) >> 2] = $52_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $52_1; + HEAP32[($4_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 60 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 64 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 68 | 0) >> 2] = $52_1; + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($4_1 + 68 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 64 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$6 + } + $77_1 = 0; + HEAP32[($4_1 + 56 | 0) >> 2] = $77_1; + HEAP32[($4_1 + 52 | 0) >> 2] = $77_1; + HEAP32[($4_1 + 48 | 0) >> 2] = $77_1; + HEAP32[($4_1 + 44 | 0) >> 2] = $77_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $77_1; + HEAP32[($4_1 + 36 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + $168(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, $4_1 + 52 | 0 | 0, $4_1 + 48 | 0 | 0, $4_1 + 56 | 0 | 0); + label$8 : { + if (!(HEAP32[($4_1 + 56 | 0) >> 2] | 0)) { + break label$8 + } + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 44 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) | 0; + $247(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0); + $247(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 68 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 68 | 0) >> 2] = (HEAP32[($4_1 + 68 | 0) >> 2] | 0) + 1 | 0; + continue label$7; + }; + } + HEAP32[($4_1 + 80 | 0) >> 2] = 2; + HEAP32[($4_1 + 84 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + $170_1 = HEAP32[($4_1 + 92 | 0) >> 2] | 0; + HEAP32[$170_1 >> 2] = (HEAP32[$170_1 >> 2] | 0) + -1 | 0; + i64toi32_i32$2 = $4_1 + 80 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $612_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 92 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $612_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$9 : { + $184_1 = $4_1 + 96 | 0; + if ($184_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $184_1; + } + return; + } + + function $168($0_1, $1_1, $2_1, $3_1, $4_1, $5_1, $6_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + $6_1 = $6_1 | 0; + var $9_1 = 0; + $9_1 = global$0 - 32 | 0; + HEAP32[($9_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($9_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($9_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($9_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($9_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($9_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($9_1 + 4 | 0) >> 2] = $6_1; + label$1 : { + label$2 : { + if (!((HEAP32[($9_1 + 28 | 0) >> 2] | 0 | 0) < (HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[(HEAP32[($9_1 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[($9_1 + 28 | 0) >> 2] | 0) + (HEAP32[($9_1 + 20 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($9_1 + 8 | 0) >> 2] | 0) >> 2] = (HEAP32[($9_1 + 28 | 0) >> 2] | 0) + (HEAP32[($9_1 + 16 | 0) >> 2] | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($9_1 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($9_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + if (!((HEAP32[(HEAP32[($9_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) > (HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(HEAP32[($9_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + break label$1; + } + break label$3; + } + label$6 : { + if (!((HEAP32[(HEAP32[($9_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) > (HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[(HEAP32[($9_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + break label$1; + } + } + break label$1; + } + HEAP32[(HEAP32[($9_1 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[($9_1 + 28 | 0) >> 2] | 0) - (HEAP32[($9_1 + 20 | 0) >> 2] | 0) | 0; + HEAP32[(HEAP32[($9_1 + 8 | 0) >> 2] | 0) >> 2] = (HEAP32[($9_1 + 28 | 0) >> 2] | 0) - (HEAP32[($9_1 + 16 | 0) >> 2] | 0) | 0; + label$7 : { + label$8 : { + if (!((HEAP32[($9_1 + 20 | 0) >> 2] | 0 | 0) < (HEAP32[($9_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + if (!((HEAP32[(HEAP32[($9_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) < (HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(HEAP32[($9_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + break label$1; + } + break label$7; + } + label$10 : { + if (!((HEAP32[(HEAP32[($9_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) < (HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[(HEAP32[($9_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + break label$1; + } + } + } + return; + } + + function $169($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $99_1 = 0, i64toi32_i32$1 = 0, $74_1 = 0, $187_1 = 0, $189_1 = 0, $205_1 = 0, i64toi32_i32$2 = 0, $219_1 = 0, $218_1 = 0, $728_1 = 0; + $4_1 = global$0 - 112 | 0; + label$1 : { + $218_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $218_1; + } + HEAP32[($4_1 + 108 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 104 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 96 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 92 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 108 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 88 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 108 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 84 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAP32[($4_1 + 80 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$6 : { + if (!((HEAP32[($4_1 + 80 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $74_1 = 0; + HEAP32[($4_1 + 76 | 0) >> 2] = $74_1; + HEAP32[($4_1 + 72 | 0) >> 2] = $74_1; + HEAP32[($4_1 + 68 | 0) >> 2] = $74_1; + HEAP32[($4_1 + 72 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 68 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 72 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 76 | 0) >> 2] = $74_1; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 76 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 72 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + $99_1 = 0; + HEAP32[($4_1 + 64 | 0) >> 2] = $99_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $99_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $99_1; + HEAP32[($4_1 + 52 | 0) >> 2] = $99_1; + HEAP32[($4_1 + 48 | 0) >> 2] = $99_1; + HEAP32[($4_1 + 44 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 80 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 80 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 36 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0; + $168(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, $4_1 + 60 | 0 | 0, $4_1 + 56 | 0 | 0, $4_1 + 64 | 0 | 0); + label$9 : { + if (!(HEAP32[($4_1 + 64 | 0) >> 2] | 0)) { + break label$9 + } + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 52 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 48 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0) | 0; + $247(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0 | 0, HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0); + $247(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0, HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 76 | 0) >> 2] = (HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + $187_1 = 2; + $189_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $189_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $187_1 | 0) | 0; + $247(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $189_1 | 0, HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0); + $247(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 96 | 0) >> 2] = $187_1; + HEAP32[($4_1 + 100 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $205_1 = HEAP32[($4_1 + 108 | 0) >> 2] | 0; + HEAP32[$205_1 >> 2] = (HEAP32[$205_1 >> 2] | 0) + -1 | 0; + i64toi32_i32$2 = $4_1 + 96 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $728_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 108 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $728_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$10 : { + $219_1 = $4_1 + 112 | 0; + if ($219_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $219_1; + } + return; + } + + function $170($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $106_1 = 0, $167_1 = 0, i64toi32_i32$2 = 0, $181_1 = 0, $180_1 = 0, $590_1 = 0; + $4_1 = global$0 - 80 | 0; + label$1 : { + $180_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $180_1; + } + $5_1 = 0; + HEAP32[($4_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 72 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 64 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 60 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 76 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 56 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 76 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 52 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0, $5_1 | 0) | 0; + HEAP32[($4_1 + 48 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + HEAP32[($4_1 + 44 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 36 | 0) >> 2] = $243(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) < ($5_1 | 0) & 1 | 0) { + break label$5 + } + if ((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0) { + break label$5 + } + if ((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) >= (HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) >= (HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 32 | 0) >> 2] = 0; + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) < (HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 28 | 0) >> 2] = ((HEAP32[($4_1 + 40 | 0) >> 2] | 0) - (HEAP32[($4_1 + 44 | 0) >> 2] | 0) | 0) + 1 | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $848(($242(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0) + (HEAP32[($4_1 + 44 | 0) >> 2] | 0) | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + break label$6; + } + $106_1 = 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $106_1; + HEAP32[($4_1 + 20 | 0) >> 2] = ((HEAP32[($4_1 + 44 | 0) >> 2] | 0) - (HEAP32[($4_1 + 40 | 0) >> 2] | 0) | 0) + 1 | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $848(($242(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0) + (HEAP32[($4_1 + 40 | 0) >> 2] | 0) | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $106_1; + label$8 : { + label$9 : while (1) { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0) >>> 0 < ((HEAP32[($4_1 + 20 | 0) >> 2] | 0) >>> 1 | 0) >>> 0 & 1 | 0)) { + break label$8 + } + HEAP8[($4_1 + 19 | 0) >> 0] = HEAPU8[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + (HEAP32[($4_1 + 24 | 0) >> 2] | 0) | 0) >> 0] | 0; + HEAP8[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + (HEAP32[($4_1 + 24 | 0) >> 2] | 0) | 0) >> 0] = HEAPU8[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + (((HEAP32[($4_1 + 20 | 0) >> 2] | 0) - (HEAP32[($4_1 + 24 | 0) >> 2] | 0) | 0) - 1 | 0) | 0) >> 0] | 0; + HEAP8[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + (((HEAP32[($4_1 + 20 | 0) >> 2] | 0) - (HEAP32[($4_1 + 24 | 0) >> 2] | 0) | 0) - 1 | 0) | 0) >> 0] = HEAPU8[($4_1 + 19 | 0) >> 0] | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = (HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$9; + }; + } + } + HEAP32[($4_1 + 12 | 0) >> 2] = $226(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 64 | 0) >> 2] = 2; + HEAP32[($4_1 + 68 | 0) >> 2] = $227(HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $167_1 = HEAP32[($4_1 + 76 | 0) >> 2] | 0; + HEAP32[$167_1 >> 2] = (HEAP32[$167_1 >> 2] | 0) + -1 | 0; + i64toi32_i32$2 = $4_1 + 64 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $590_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 76 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $590_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$10 : { + $181_1 = $4_1 + 80 | 0; + if ($181_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $181_1; + } + return; + } + + function $171($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $172(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 1 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $172($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$0 = 0, $6_1 = 0, i64toi32_i32$1 = 0, $87_1 = 0, $26_1 = 0, $27_1 = 0, $65_1 = 0, $66_1 = 0, $126_1 = 0, i64toi32_i32$2 = 0, $142_1 = 0, $141_1 = 0, $23_1 = 0, $25_1 = 0, $43_1 = 0, $60_1 = 0, $62_1 = 0, $64_1 = 0, $107_1 = 0, $471_1 = 0; + $5_1 = global$0 - 80 | 0; + label$1 : { + $141_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $141_1; + } + $6_1 = 0; + HEAP32[($5_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 68 | 0) >> 2] = $2_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $5_1 + 56 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5_1 + 52 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 44 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($5_1 + 44 | 0) >> 2] = $52(HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 52 | 0) >> 2] = $6_1; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($5_1 + 52 | 0) >> 2] | 0) >>> 0 < (HEAP32[($5_1 + 48 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + $23_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $25_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $26_1 = HEAP32[($5_1 + 76 | 0) >> 2] | 0; + $27_1 = HEAP32[$26_1 >> 2] | 0; + HEAP32[$26_1 >> 2] = $27_1 + -1 | 0; + HEAP32[($5_1 + 40 | 0) >> 2] = $234($23_1 | 0, HEAP32[(($25_1 + ($27_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if (!((HEAP32[($5_1 + 40 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$6 + } + $51(HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0); + $43_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = HEAP32[($5_1 + 52 | 0) >> 2] | 0; + $435($43_1 | 0, 12035 | 0, $5_1 | 0); + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[(((HEAP32[($5_1 + 44 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 52 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 40 | 0) >> 2] | 0; + HEAP32[($5_1 + 52 | 0) >> 2] = (HEAP32[($5_1 + 52 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + HEAP32[($5_1 + 36 | 0) >> 2] = 0; + $60_1 = HEAP32[($5_1 + 68 | 0) >> 2] | 0; + $62_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $64_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $65_1 = HEAP32[($5_1 + 76 | 0) >> 2] | 0; + $66_1 = HEAP32[$65_1 >> 2] | 0; + HEAP32[$65_1 >> 2] = $66_1 + -1 | 0; + HEAP32[($5_1 + 36 | 0) >> 2] = FUNCTION_TABLE[$60_1]($62_1, HEAP32[(($64_1 + ($66_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0) | 0; + label$7 : { + if (!((HEAP32[($5_1 + 36 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + $51(HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $87_1 = 0; + HEAP32[($5_1 + 32 | 0) >> 2] = $87_1; + HEAP32[($5_1 + 28 | 0) >> 2] = $87_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $87_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $257(HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 28 | 0) >> 2] = $53(HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0, $5_1 + 32 | 0 | 0) | 0; + $51(HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0); + label$8 : { + if (!((HEAP32[($5_1 + 32 | 0) >> 2] | 0 | 0) >= ($87_1 | 0) & 1 | 0)) { + break label$8 + } + $107_1 = HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[($5_1 + 32 | 0) >> 2] | 0; + $435($107_1 | 0, 12035 | 0, $5_1 + 16 | 0 | 0); + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($5_1 + 20 | 0) >> 2] = 0; + HEAP32[($5_1 + 20 | 0) >> 2] = $258(HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $126_1 = HEAP32[($5_1 + 76 | 0) >> 2] | 0; + HEAP32[$126_1 >> 2] = (HEAP32[$126_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0); + HEAP32[($5_1 + 56 | 0) >> 2] = 2; + HEAP32[($5_1 + 60 | 0) >> 2] = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + i64toi32_i32$2 = $5_1 + 56 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $471_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($5_1 + 76 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($5_1 + 76 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $471_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$9 : { + $142_1 = $5_1 + 80 | 0; + if ($142_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $142_1; + } + return; + } + + function $173($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0, $10_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $172(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 2 | 0); + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + + function $174($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $53_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $36_1 = 0, $37_1 = 0, $82_1 = 0, $83_1 = 0, i64toi32_i32$2 = 0, $159_1 = 0, $158_1 = 0, $79_1 = 0, $81_1 = 0, $98_1 = 0, $120_1 = 0, $548_1 = 0; + $4_1 = global$0 - 96 | 0; + label$1 : { + $158_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $158_1; + } + $5_1 = 0; + HEAP32[($4_1 + 92 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 88 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 80 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 76 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 72 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 72 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 68 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 68 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 92 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[($4_1 + 72 | 0) >> 2] | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $36_1 = 0; + $37_1 = 1; + HEAP32[($4_1 + 64 | 0) >> 2] = $36_1; + HEAP32[($4_1 + 64 | 0) >> 2] = $52($37_1 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 64 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 72 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] = $37_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $36_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $230(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $37_1 | 0, HEAP32[($4_1 + 64 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 76 | 0) >> 2] = $36_1; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($4_1 + 76 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 72 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + $53_1 = 0; + HEAP32[($4_1 + 56 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 52 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 48 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 44 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 36 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 32 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 28 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $53_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 52 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 76 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) | 0; + $79_1 = HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $81_1 = HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $82_1 = HEAP32[($4_1 + 92 | 0) >> 2] | 0; + $83_1 = HEAP32[$82_1 >> 2] | 0; + HEAP32[$82_1 >> 2] = $83_1 + -1 | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $234($79_1 | 0, HEAP32[(($81_1 + ($83_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) < ($53_1 | 0) & 1 | 0)) { + break label$7 + } + $98_1 = HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[($4_1 + 76 | 0) >> 2] | 0; + $435($98_1 | 0, 12065 | 0, $4_1 | 0); + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + $168(HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, $4_1 + 40 | 0 | 0, $4_1 + 36 | 0 | 0, $4_1 + 44 | 0 | 0); + label$8 : { + if (!(HEAP32[($4_1 + 44 | 0) >> 2] | 0)) { + break label$8 + } + $120_1 = HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[($4_1 + 76 | 0) >> 2] | 0; + $435($120_1 | 0, 12065 | 0, $4_1 + 16 | 0 | 0); + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 48 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) | 0; + $259(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 76 | 0) >> 2] = (HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + HEAP32[($4_1 + 80 | 0) >> 2] = 2; + HEAP32[($4_1 + 84 | 0) >> 2] = $231(HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 80 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $548_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 92 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $548_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$9 : { + $159_1 = $4_1 + 96 | 0; + if ($159_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $159_1; + } + return; + } + + function $175($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $132_1 = 0, i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$1 = 0, $192_1 = 0, $25_1 = 0, $26_1 = 0, $62_1 = 0, $63_1 = 0, $231_1 = 0, i64toi32_i32$2 = 0, $247_1 = 0, $246_1 = 0, $22_1 = 0, $24_1 = 0, $42_1 = 0, $59_1 = 0, $61_1 = 0, $174_1 = 0, $212_1 = 0, $817_1 = 0; + $4_1 = global$0 - 128 | 0; + label$1 : { + $246_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $246_1; + } + $5_1 = 0; + HEAP32[($4_1 + 124 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 120 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 112 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 108 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 104 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 100 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 104 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 100 | 0) >> 2] = $52(HEAP32[($4_1 + 104 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 108 | 0) >> 2] = $5_1; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4_1 + 108 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 104 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + $22_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $24_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $25_1 = HEAP32[($4_1 + 124 | 0) >> 2] | 0; + $26_1 = HEAP32[$25_1 >> 2] | 0; + HEAP32[$25_1 >> 2] = $26_1 + -1 | 0; + HEAP32[($4_1 + 96 | 0) >> 2] = $234($22_1 | 0, HEAP32[(($24_1 + ($26_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if (!((HEAP32[($4_1 + 96 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$6 + } + $51(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + $42_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[($4_1 + 108 | 0) >> 2] | 0; + $435($42_1 | 0, 12095 | 0, $4_1 | 0); + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[(((HEAP32[($4_1 + 100 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 96 | 0) >> 2] | 0; + HEAP32[($4_1 + 108 | 0) >> 2] = (HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + $59_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $61_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $62_1 = HEAP32[($4_1 + 124 | 0) >> 2] | 0; + $63_1 = HEAP32[$62_1 >> 2] | 0; + HEAP32[$62_1 >> 2] = $63_1 + -1 | 0; + HEAP32[($4_1 + 92 | 0) >> 2] = $249($59_1 | 0, HEAP32[(($61_1 + ($63_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + if (!((HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + $51(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 88 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + HEAP32[($4_1 + 84 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$8 : { + label$9 : { + if ((HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0) { + break label$9 + } + if (!((HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + } + $51(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 108 | 0) >> 2] = 0; + label$10 : { + label$11 : while (1) { + if (!((HEAP32[($4_1 + 108 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 104 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$10 + } + $132_1 = 0; + HEAP32[($4_1 + 80 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 76 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 72 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 68 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 64 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $132_1; + HEAP32[($4_1 + 80 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0, (HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 1 | 0 | 0) | 0; + HEAP32[($4_1 + 76 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0, ((HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 1 | 0) + 1 | 0 | 0) | 0; + HEAP32[($4_1 + 60 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 80 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 56 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0) | 0; + $168(HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($4_1 + 100 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($4_1 + 100 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, $4_1 + 68 | 0 | 0, $4_1 + 64 | 0 | 0, $4_1 + 72 | 0 | 0); + label$12 : { + if (!(HEAP32[($4_1 + 72 | 0) >> 2] | 0)) { + break label$12 + } + $51(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + $174_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[($4_1 + 108 | 0) >> 2] | 0; + $435($174_1 | 0, 12095 | 0, $4_1 + 16 | 0 | 0); + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[(((HEAP32[($4_1 + 100 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 108 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 68 | 0) >> 2] | 0; + HEAP32[($4_1 + 108 | 0) >> 2] = (HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 1 | 0; + continue label$11; + }; + } + $192_1 = 0; + HEAP32[($4_1 + 52 | 0) >> 2] = $192_1; + HEAP32[($4_1 + 48 | 0) >> 2] = $192_1; + HEAP32[($4_1 + 44 | 0) >> 2] = $192_1; + HEAP32[($4_1 + 44 | 0) >> 2] = $257(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 48 | 0) >> 2] = $53(HEAP32[($4_1 + 104 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0, $4_1 + 52 | 0 | 0) | 0; + $51(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + label$13 : { + if (!((HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0) >= ($192_1 | 0) & 1 | 0)) { + break label$13 + } + $212_1 = HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[($4_1 + 52 | 0) >> 2] | 0; + $435($212_1 | 0, 12095 | 0, $4_1 + 32 | 0 | 0); + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[($4_1 + 40 | 0) >> 2] = 0; + HEAP32[($4_1 + 40 | 0) >> 2] = $258(HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) | 0; + $231_1 = HEAP32[($4_1 + 124 | 0) >> 2] | 0; + HEAP32[$231_1 >> 2] = (HEAP32[$231_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 124 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 112 | 0) >> 2] = 2; + HEAP32[($4_1 + 116 | 0) >> 2] = HEAP32[($4_1 + 40 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 112 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $817_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 124 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $817_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$14 : { + $247_1 = $4_1 + 128 | 0; + if ($247_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $247_1; + } + return; + } + + function $176($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $72_1 = 0, $76_1 = 0, i64toi32_i32$2 = 0, $90_1 = 0, $89_1 = 0, $284_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $89_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $89_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP8[($4_1 + 15 | 0) >> 0] = 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $244(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $234(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[$4_1 >> 2] = $242(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$5 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) >= ($980(HEAP32[$4_1 >> 2] | 0 | 0) | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP8[($4_1 + 15 | 0) >> 0] = HEAPU8[((HEAP32[$4_1 >> 2] | 0) + (HEAP32[($4_1 + 4 | 0) >> 2] | 0) | 0) >> 0] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + $72_1 = 24; + HEAP32[($4_1 + 20 | 0) >> 2] = $224(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, ((HEAPU8[($4_1 + 15 | 0) >> 0] | 0) << $72_1 | 0) >> $72_1 | 0 | 0) | 0; + $76_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$76_1 >> 2] = (HEAP32[$76_1 >> 2] | 0) + -1 | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $284_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $284_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$6 : { + $90_1 = $4_1 + 32 | 0; + if ($90_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + return; + } + + function $177($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $37_1 = 0, $38_1 = 0, $52_1 = 0, $51_1 = 0, $36_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $51_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - ((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $252(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + $36_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $37_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $38_1 = HEAP32[$37_1 >> 2] | 0; + HEAP32[$37_1 >> 2] = $38_1 + -1 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(($36_1 + ($38_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $260(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $52_1 = $4_1 + 32 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return; + } + + function $178($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $28_1 = 0, $29_1 = 0, $43_1 = 0, i64toi32_i32$2 = 0, $62_1 = 0, $61_1 = 0, $23_1 = 0, $24_1 = 0, $25_1 = 0, $27_1 = 0, $201_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $61_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $23_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $24_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $25_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $27_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $28_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $29_1 = HEAP32[$28_1 >> 2] | 0; + HEAP32[$28_1 >> 2] = $29_1 + -1 | 0; + $247($23_1 | 0, $24_1 | 0, $25_1 | 0, HEAP32[(($27_1 + ($29_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 8 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $43_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$43_1 >> 2] = (HEAP32[$43_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $201_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $201_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$5 : { + $62_1 = $4_1 + 32 | 0; + if ($62_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + return; + } + + function $179($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $26_1 = 0, $42_1 = 0, $41_1 = 0, $140_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $246(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $26_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$26_1 >> 2] = (HEAP32[$26_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $140_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $140_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $42_1 = $4_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return; + } + + function $180($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $47_1 = 0, $46_1 = 0, $147_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $46_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $147_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $147_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$5 : { + $47_1 = $4_1 + 32 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return; + } + + function $181($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $65_1 = 0, i64toi32_i32$2 = 0, $81_1 = 0, $80_1 = 0, $258_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $80_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $249(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[($4_1 + 4 | 0) >> 2] = $248(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >>> 0 >= (HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$5 + } + $435(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 12125 | 0, 0 | 0); + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] = 3; + break label$3; + } + HEAP32[$4_1 >> 2] = $246(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $65_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$65_1 >> 2] = (HEAP32[$65_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $258_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $258_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + label$6 : { + $81_1 = $4_1 + 32 | 0; + if ($81_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + return; + } + + function $182($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $14_1 = 0, $30_1 = 0, $29_1 = 0, $98_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $229(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) | 0; + $14_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$14_1 >> 2] = (HEAP32[$14_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $98_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $98_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $30_1 = $4_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return; + } + + function $183($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $184($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $185($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $186($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $187($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $188($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $189($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return; + } + + function $190($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $77_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $5_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + 1 | 0; + i64toi32_i32$2 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $77_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $77_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + } + + function $191($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $30_1 = 0, $31_1 = 0, $45_1 = 0, i64toi32_i32$2 = 0, $61_1 = 0, $60_1 = 0, $25_1 = 0, $26_1 = 0, $27_1 = 0, $29_1 = 0, $196_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $60_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 4 | 0) >> 2] = $228(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) - 1 | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) >= (0 | 0) & 1 | 0)) { + break label$3 + } + $25_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + $26_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $27_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + $29_1 = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $30_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $31_1 = HEAP32[$30_1 >> 2] | 0; + HEAP32[$30_1 >> 2] = $31_1 + -1 | 0; + $247($25_1 | 0, $26_1 | 0, $27_1 | 0, HEAP32[(($29_1 + ($31_1 << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + -1 | 0; + continue label$4; + }; + } + $45_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$45_1 >> 2] = (HEAP32[$45_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 8 | 0) >> 2] = 2; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $196_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $196_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$5 : { + $61_1 = $4_1 + 32 | 0; + if ($61_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + return; + } + + function $192($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $8_1 = 0, $11_1 = 0, $14_1 = 0, $17_1 = 0, $18_1 = 0, $19_1 = 0, $79_1 = 0, $86_1 = 0, $85_1 = 0, $197_1 = 0, $218_1 = 0, $239_1 = 0, $260_1 = 0, $281_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $85_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $85_1; + } + $8_1 = $4_1 + 8 | 0; + $11_1 = $4_1 + 32 | 0; + $14_1 = $4_1 + 24 | 0; + $17_1 = $4_1 + 16 | 0; + $18_1 = 3; + $19_1 = 1; + HEAP32[($4_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 40 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $14_1; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $17_1; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $8_1; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1; + HEAP32[$4_1 >> 2] = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 16 | 0) >> 2] = $19_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 24 | 0) >> 2] = $18_1; + HEAP32[($4_1 + 28 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = 2; + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $19_1; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = $18_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = $17_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $197_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 5 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $197_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $14_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $218_1 = i64toi32_i32$1; + i64toi32_i32$1 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$1 >> 2] = $218_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $11_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $239_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 3 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $239_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = $8_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $260_1 = i64toi32_i32$1; + i64toi32_i32$1 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 2 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$1 >> 2] = $260_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4_1; + i64toi32_i32$0 = HEAP32[$4_1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $281_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 1 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $281_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $79_1 = (HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + 5 | 0; + HEAP32[(HEAP32[($4_1 + 44 | 0) >> 2] | 0) >> 2] = $79_1; + HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] = $79_1; + $64(HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0); + label$3 : { + $86_1 = $4_1 + 48 | 0; + if ($86_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $86_1; + } + return; + } + + function $193($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $46_1 = 0, $53_1 = 0, $52_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $52_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $262(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$4_1 >> 2] = $261(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) == (HEAP32[(0 + 25884 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = 8; + break label$3; + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[$4_1 >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $46_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$46_1 >> 2] = (HEAP32[$46_1 >> 2] | 0) + -1 | 0; + } + label$5 : { + $53_1 = $4_1 + 16 | 0; + if ($53_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + return; + } + + function $194($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $33_1 = 0, i64toi32_i32$2 = 0, $70_1 = 0, $69_1 = 0, i64toi32_i32$1 = 0, $197_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $69_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) { + break label$4 + } + break label$3; + } + label$5 : { + label$6 : { + if (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) { + break label$6 + } + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0; + break label$5; + } + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0) - (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$7 : { + label$8 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + $33_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$33_1 >> 2] = (HEAP32[$33_1 >> 2] | 0) + 1 | 0; + i64toi32_i32$2 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + (HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $197_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $197_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$8; + }; + } + } + $220(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, (HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$9 : { + $70_1 = $4_1 + 16 | 0; + if ($70_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $70_1; + } + return; + } + + function $195($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + (HEAP32[($4_1 + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 1; + return; + } + + function $196($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, $81_1 = 0, $80_1 = 0, i64toi32_i32$1 = 0, $196_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $80_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 2 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 4 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $196_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 4 | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $196_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 4 | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $220(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, (HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $81_1 = $4_1 + 16 | 0; + if ($81_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + return; + } + + function $197($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + return; + } + + function $198($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $10_1 = 0, $9_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $9_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $61(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + label$3 : { + $10_1 = $4_1 + 16 | 0; + if ($10_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + return; + } + + function $199($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $7_1 = 0, $24_1 = 0, $23_1 = 0, $80_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1; + HEAP32[$4_1 >> 2] = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = i64toi32_i32$0; + $7_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = (HEAP32[$7_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + HEAP32[$4_1 >> 2] = 2; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[$4_1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $80_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $80_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $24_1 = $4_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return; + } + + function $200($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $18_1 = 0, $23_1 = 0, $41_1 = 0, $40_1 = 0, $123_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $18_1 = 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 4 | 0) >> 2] = $232(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, $18_1 | 0, $18_1 | 0) | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = 2; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $23_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$23_1 >> 2] = (HEAP32[$23_1 >> 2] | 0) + 1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $123_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $123_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + label$5 : { + $41_1 = $4_1 + 32 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $201($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $55_1 = 0, $63_1 = 0, $62_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $62_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $262(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $261(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $264(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[($4_1 + 20 | 0) >> 2] | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0); + $263(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) - (HEAP32[($4_1 + 20 | 0) >> 2] | 0) | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + $55_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$55_1 >> 2] = (HEAP32[$55_1 >> 2] | 0) + -1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + label$3 : { + $63_1 = $4_1 + 32 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return; + } + + function $202($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $81_1 = 0, i64toi32_i32$2 = 0, $100_1 = 0, $99_1 = 0, $299_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $99_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $99_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0) + (((HEAP32[($4_1 + 8 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0) + (((HEAP32[($4_1 + 8 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0) + (((HEAP32[($4_1 + 8 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $223(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, Math_fround(Math_fround(HEAPF32[(((HEAP32[(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0) + (((HEAP32[($4_1 + 8 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2]))) | 0; + break label$7; + } + $977(12156 | 0, 0 | 0) | 0; + } + } + $81_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$81_1 >> 2] = (HEAP32[$81_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $4_1 + 16 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $299_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $299_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($4_1 + 8 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + -1 | 0; + continue label$4; + }; + } + label$9 : { + $100_1 = $4_1 + 32 | 0; + if ($100_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $100_1; + } + return; + } + + function $203($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $14_1 = 0, $30_1 = 0, $29_1 = 0, $100_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = $4_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = 0; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 12 | 0) >> 2] = $222(HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $14_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP32[$14_1 >> 2] = (HEAP32[$14_1 >> 2] | 0) + 1 | 0; + $64(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 16 | 0) >> 2] = 2; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $100_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($4_1 + 28 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0; + HEAP32[i64toi32_i32$0 >> 2] = $100_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + $30_1 = $4_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return; + } + + function $204($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $196(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 2; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return; + } + + function $205($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $14_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[$4_1 >> 2] = $784(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $977(12174 | 0, $4_1 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 3; + label$3 : { + $14_1 = $4_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return; + } + + function $206($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = 0; + return; + } + + function $207($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $60_1 = 0, $59_1 = 0; + $4_1 = global$0 - 160 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 156 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 152 | 0) >> 2] = $1_1; + $977(12240 | 0, 0 | 0) | 0; + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 156 | 0) >> 2] | 0) >> 2] | 0; + $977(12250 | 0, $4_1 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $977(12259 | 0, $4_1 + 16 | 0 | 0) | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $977(12268 | 0, $4_1 + 32 | 0 | 0) | 0; + HEAP32[($4_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $977(12277 | 0, $4_1 + 48 | 0 | 0) | 0; + HEAP32[($4_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $977(12286 | 0, $4_1 + 64 | 0 | 0) | 0; + HEAP32[($4_1 + 80 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + $977(12299 | 0, $4_1 + 80 | 0 | 0) | 0; + HEAP32[($4_1 + 96 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + $977(12313 | 0, $4_1 + 96 | 0 | 0) | 0; + HEAP32[($4_1 + 112 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $977(12330 | 0, $4_1 + 112 | 0 | 0) | 0; + HEAP32[($4_1 + 128 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + $977(12345 | 0, $4_1 + 128 | 0 | 0) | 0; + HEAP32[($4_1 + 144 | 0) >> 2] = HEAP32[($4_1 + 152 | 0) >> 2] | 0; + $977(12359 | 0, $4_1 + 144 | 0 | 0) | 0; + $977(12373 | 0, 0 | 0) | 0; + label$3 : { + $60_1 = $4_1 + 160 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $208($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$0 = 0, $29_1 = 0, i64toi32_i32$2 = 0, $90_1 = 0, $89_1 = 0, $56_1 = 0, $73_1 = 0, i64toi32_i32$1 = 0, $271_1 = 0, $86_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $89_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $89_1; + } + HEAP32[($5_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 12 | 0) >> 2] = 0; + HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] = 1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = (HEAP32[((HEAP32[((HEAP32[($5_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0, 20) | 0; + $29_1 = HEAP32[($5_1 + 24 | 0) >> 2] | 0; + HEAP32[($29_1 + 16 | 0) >> 2] = (HEAP32[($29_1 + 16 | 0) >> 2] | 0) + 1 | 0; + FUNCTION_TABLE[HEAP32[((24e3 + ((HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0](HEAP32[($5_1 + 24 | 0) >> 2] | 0, HEAP32[($5_1 + 12 | 0) >> 2] | 0); + label$5 : { + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + $56_1 = $442(HEAP32[((HEAP32[((HEAP32[($5_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) - 1 | 0 | 0) | 0; + HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = $56_1; + HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] = 1; + } + continue label$4; + }; + } + label$6 : { + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$8 + } + $207(HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, 12198 | 0); + $209(HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0); + break label$7; + } + label$9 : { + if (HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) { + break label$9 + } + $73_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = $265(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[(HEAP32[($5_1 + 24 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $271_1 = i64toi32_i32$0; + i64toi32_i32$0 = $73_1; + HEAP32[i64toi32_i32$0 >> 2] = $271_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($5_1 + 28 | 0) >> 2] = 0; + break label$6; + } + } + HEAP32[($5_1 + 28 | 0) >> 2] = 1; + } + $86_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + label$10 : { + $90_1 = $5_1 + 32 | 0; + if ($90_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + return $86_1 | 0; + } + + function $209($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $46_1 = 0, $45_1 = 0, $30_1 = 0, $31_1 = 0; + $3_1 = global$0 - 32 | 0; + label$1 : { + $45_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $45_1; + } + $4_1 = 0; + HEAP32[($3_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 20 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 16 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 16 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 20 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[($3_1 + 16 | 0) >> 2] | 0) - 3 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($3_1 + 24 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + $30_1 = HEAP32[($3_1 + 20 | 0) >> 2] | 0; + $31_1 = HEAP32[($3_1 + 24 | 0) >> 2] | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 16 | 0) >> 2] | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $31_1; + HEAP32[$3_1 >> 2] = $30_1; + $977(12207 | 0, $3_1 | 0) | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + (((HEAP32[($3_1 + 16 | 0) >> 2] | 0) - 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + label$5 : { + $46_1 = $3_1 + 32 | 0; + if ($46_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + return; + } + + function $210($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $7_1 = 0, $31_1 = 0, $30_1 = 0, $18_1 = 0, $21_1 = 0, $23_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + $5_1 = 0; + $7_1 = -1; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(52 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $18_1 = $266(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] = $18_1; + $21_1 = $213(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 28 | 0) >> 2] = $21_1; + $23_1 = $270(16 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $23_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = $5_1; + $211(); + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $211() { + var $2_1 = 0, $3_1 = 0; + $2_1 = global$0 - 16 | 0; + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($2_1 + 12 | 0) >> 2] = $3_1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($2_1 + 12 | 0) >> 2] | 0) >>> 0 < 141 >>> 0 & 1 | 0)) { + break label$1 + } + HEAP32[($2_1 + 12 | 0) >> 2] = (HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function $212($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $267(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $214(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $271(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $213($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $55_1 = 0, $6_1 = 0, $94_1 = 0, $93_1 = 0, $90_1 = 0; + $3_1 = global$0 - 32 | 0; + label$1 : { + $93_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $93_1; + } + $6_1 = 0; + HEAP32[($3_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 20 | 0) >> 2] = $963(32 | 0) | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = $963(Math_imul(HEAP32[($3_1 + 28 | 0) >> 2] | 0, 12) | 0) | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $963((HEAP32[($3_1 + 28 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 28 | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = $6_1; + HEAP8[(HEAP32[($3_1 + 16 | 0) >> 2] | 0) >> 0] = 0; + HEAP32[($3_1 + 24 | 0) >> 2] = 1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[($3_1 + 28 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[(((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 24 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] = 0; + HEAP32[(((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 24 | 0) >> 2] | 0, 12) | 0) + 8 | 0) >> 2] = (HEAP32[($3_1 + 24 | 0) >> 2] | 0) + 1 | 0; + HEAP8[((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 24 | 0) >> 2] | 0, 12) | 0) >> 0] = 0; + HEAP32[($3_1 + 24 | 0) >> 2] = (HEAP32[($3_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $55_1 = 0; + HEAP32[(((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul((HEAP32[($3_1 + 28 | 0) >> 2] | 0) - 1 | 0, 12) | 0) + 4 | 0) >> 2] = $55_1; + HEAP32[(((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul((HEAP32[($3_1 + 28 | 0) >> 2] | 0) - 1 | 0, 12) | 0) + 8 | 0) >> 2] = $55_1; + HEAP8[((HEAP32[($3_1 + 16 | 0) >> 2] | 0) + Math_imul((HEAP32[($3_1 + 28 | 0) >> 2] | 0) - 1 | 0, 12) | 0) >> 0] = 0; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] = $55_1; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = $55_1; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = $55_1; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($3_1 + 20 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 16 | 0) >> 2] | 0; + $90_1 = HEAP32[($3_1 + 20 | 0) >> 2] | 0; + label$5 : { + $94_1 = $3_1 + 32 | 0; + if ($94_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $94_1; + } + return $90_1 | 0; + } + + function $214($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $70_1 = 0, $69_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $69_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[(((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $49(HEAP32[(((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0); + } + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$9 : { + $70_1 = $3_1 + 16 | 0; + if ($70_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $70_1; + } + return; + } + + function $215($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $47_1 = 0, $95_1 = 0, $125_1 = 0, $126_1 = 0, $148_1 = 0, $147_1 = 0, $110_1 = 0, $118_1 = 0; + $3_1 = global$0 - 32 | 0; + label$1 : { + $147_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $147_1; + } + HEAP32[($3_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = ((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 1 | 0) & 1 | 0; + HEAP32[($3_1 + 24 | 0) >> 2] = 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 24 | 0) >> 2] | 0) >>> 0 < (HEAP32[(((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[($3_1 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[(((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 24 | 0) + ((HEAP32[($3_1 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0) + ((HEAP32[($3_1 + 24 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $47_1 = 24; + label$5 : { + label$6 : { + if (((HEAPU8[((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) >> 0] | 0) << $47_1 | 0) >> $47_1 | 0) { + break label$6 + } + if (!((HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $49(HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0); + HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] = 0; + HEAP32[(((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) + 8 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 28 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($3_1 + 28 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + break label$5; + } + $95_1 = 24; + label$7 : { + if (!((((HEAPU8[((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) >> 0] | 0) << $95_1 | 0) >> $95_1 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$7 + } + HEAP8[((HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($3_1 + 12 | 0) >> 2] | 0, 12) | 0) >> 0] = 0; + $110_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $118_1 = HEAP32[(((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 24 | 0) + ((HEAP32[($3_1 + 16 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $125_1 = ((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[($3_1 + 16 | 0) >> 2] | 0) << 2 | 0) | 0; + $126_1 = HEAP32[$125_1 >> 2] | 0; + HEAP32[$125_1 >> 2] = $126_1 + 1 | 0; + HEAP32[($118_1 + ($126_1 << 2 | 0) | 0) >> 2] = $110_1; + } + } + HEAP32[($3_1 + 24 | 0) >> 2] = (HEAP32[($3_1 + 24 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + HEAP32[(((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[($3_1 + 20 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = 0; + HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($3_1 + 16 | 0) >> 2] | 0; + label$8 : { + $148_1 = $3_1 + 32 | 0; + if ($148_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $148_1; + } + return; + } + + function $216($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $14_1 = 0, $60_1 = 0, $59_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (HEAP32[($4_1 + 8 | 0) >> 2] | 0) { + break label$4 + } + break label$3; + } + $14_1 = 24; + label$5 : { + if (!((((HEAPU8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] | 0) << $14_1 | 0) >> $14_1 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + break label$3; + } + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + HEAP32[$4_1 >> 2] = HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$6 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $217(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + label$7 : { + $60_1 = $4_1 + 16 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $217($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $26_1 = 0, $129_1 = 0, $128_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $128_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $128_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (HEAP32[($4_1 + 8 | 0) >> 2] | 0) { + break label$4 + } + break label$3; + } + if (!((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $26_1 = HEAP32[(HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if ($26_1 >>> 0 > 10 >>> 0) { + break label$5 + } + label$6 : { + switch ($26_1 | 0) { + default: + break label$5; + case 1: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + break label$5; + case 2: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + break label$5; + case 3: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + break label$5; + case 4: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + break label$5; + case 5: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + $217(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$5; + case 8: + $216(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + break label$5; + case 9: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + $216(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$5; + case 6: + $218(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + break label$5; + case 7: + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + $218(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$5; + case 10: + break label$6; + }; + } + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + $216(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + } + label$17 : { + $129_1 = $4_1 + 16 | 0; + if ($129_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $129_1; + } + return; + } + + function $218($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $14_1 = 0, $60_1 = 0, $59_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $59_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (HEAP32[($4_1 + 8 | 0) >> 2] | 0) { + break label$4 + } + break label$3; + } + $14_1 = 24; + label$5 : { + if (!((((HEAPU8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] | 0) << $14_1 | 0) >> $14_1 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + break label$3; + } + HEAP8[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) >> 0] = 1; + HEAP32[$4_1 >> 2] = HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + label$6 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[((HEAP32[$4_1 >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $217(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[$4_1 >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$6; + }; + } + label$7 : { + $60_1 = $4_1 + 16 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $219($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $50_1 = 0, $66_1 = 0, $65_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $65_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $6_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[$5_1 >> 2] | 0 | 0) < (HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[(((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$5 + } + $50_1 = 24; + if (((HEAPU8[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[(((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0, 12) | 0) >> 0] | 0) << $50_1 | 0) >> $50_1 | 0) { + break label$5 + } + $217(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0); + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + $66_1 = $5_1 + 16 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return; + } + + function $220($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $35_1 = 0, $34_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $7_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!(+((HEAP32[(($7_1 + ((HEAP32[($7_1 + 12 | 0) >> 2] | 0) << 2 | 0) | 0) + 16 | 0) >> 2] | 0) >>> 0) < +((HEAP32[($7_1 + 4 | 0) >> 2] | 0) >>> 0) * .8 & 1 | 0)) { + break label$4 + } + break label$3; + } + $219(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0); + label$5 : { + if (!((HEAP32[$6_1 >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$5 + } + $217(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0); + } + $215(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0); + } + label$6 : { + $35_1 = $6_1 + 16 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return; + } + + function $221($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $45_1 = 0, $46_1 = 0, $56_1 = 0, $55_1 = 0, $30_1 = 0, $38_1 = 0, $52_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $55_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$3 : { + if (HEAP32[($4_1 + 4 | 0) >> 2] | 0) { + break label$3 + } + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 12375 | 0, 0 | 0) | 0; + fimport$0(1 | 0); + abort(); + } + HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 4 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 4 | 0) >> 2] | 0, 12) | 0) + 8 | 0) >> 2] | 0; + $30_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $38_1 = HEAP32[(((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) + ((HEAP32[$4_1 >> 2] | 0) << 2 | 0) | 0) >> 2] | 0; + $45_1 = ((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) + ((HEAP32[$4_1 >> 2] | 0) << 2 | 0) | 0; + $46_1 = HEAP32[$45_1 >> 2] | 0; + HEAP32[$45_1 >> 2] = $46_1 + 1 | 0; + HEAP32[($38_1 + ($46_1 << 2 | 0) | 0) >> 2] = $30_1; + $52_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$4 : { + $56_1 = $4_1 + 16 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return $52_1 | 0; + } + + function $222($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $37(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $223($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = Math_fround($1_1); + var $4_1 = 0, $11_1 = 0, $10_1 = 0, $7_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAPF32[($4_1 + 8 | 0) >> 2] = $1_1; + $7_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $38(Math_fround(Math_fround(HEAPF32[($4_1 + 8 | 0) >> 2]))) | 0 | 0) | 0; + label$3 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return $7_1 | 0; + } + + function $224($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP8[($4_1 + 11 | 0) >> 0] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $39(Math_fround(Math_fround(HEAP8[($4_1 + 11 | 0) >> 0] | 0 | 0))) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $225($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $40(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $226($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $41(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $227($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $42(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $228($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $43(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $229($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $44(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $230($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $10_1 = $221(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, $45(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $14_1 = $5_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $231($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $47(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $232($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $10_1 = $221(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, $48(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $14_1 = $5_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $233($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $14_1 = $221(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, $55(HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + label$3 : { + $18_1 = $4_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $234($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $235($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + return; + } + + function $236($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $11_1 = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($11_1 + 4 | 0) >> 2] = (HEAP32[($11_1 + 4 | 0) >> 2] | 0) + 1 | 0; + return; + } + + function $237($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $11_1 = HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0; + HEAP32[($11_1 + 4 | 0) >> 2] = (HEAP32[($11_1 + 4 | 0) >> 2] | 0) + -1 | 0; + return; + } + + function $238($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return Math_fround(Math_fround(HEAPF32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2])); + } + + function $239($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = Math_fround($2_1); + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAPF32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAPF32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = Math_fround(HEAPF32[($5_1 + 4 | 0) >> 2]); + return; + } + + function $240($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $13_1 = 24; + return ((HEAPU8[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 0] | 0) << $13_1 | 0) >> $13_1 | 0 | 0; + } + + function $241($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP8[($5_1 + 7 | 0) >> 0] = $2_1; + HEAP8[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 0] = HEAPU8[($5_1 + 7 | 0) >> 0] | 0; + return; + } + + function $242($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $243($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $13_1 = $980(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $17_1 = $4_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $244($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $245($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + return; + } + + function $246($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + return HEAP32[((HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0; + } + + function $247($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0; + $6_1 = global$0 - 16 | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + HEAP32[((HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($6_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$6_1 >> 2] | 0; + return; + } + + function $248($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function $249($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $250($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $6_1 = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $6_1; + return $6_1 | 0; + } + + function $251($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0; + } + + function $252($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $253($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + return; + } + + function $254($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $255($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + return HEAP32[((HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0; + } + + function $256($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $257($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0; + } + + function $258($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + return HEAP32[((HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0; + } + + function $259($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0; + $6_1 = global$0 - 16 | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + HEAP32[((HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($6_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[$6_1 >> 2] | 0; + return; + } + + function $260($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $18_1 = 0, $17_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $56(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + label$3 : { + $18_1 = $5_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $261($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $262($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0; + } + + function $263($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[((HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + return; + } + + function $264($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[(HEAP32[((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($5_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + return; + } + + function $265($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return HEAP32[(((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + Math_imul(HEAP32[($4_1 + 8 | 0) >> 2] | 0, 12) | 0) + 4 | 0) >> 2] | 0 | 0; + } + + function $266($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $8_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $12_1 = $3_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $267($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $268($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $973(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $269($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $270($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $268(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $271($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $12_1 = 0, $50_1 = 0, $49_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $49_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $49_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $12_1 = 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $12_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $12_1; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$4 + } + label$6 : { + if (!((HEAP32[(((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + fimport$1(HEAP32[(((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[($3_1 + 8 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 1 | 0; + continue label$5; + }; + } + $269(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + $50_1 = $3_1 + 16 | 0; + if ($50_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + return; + } + + function $272($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $973(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $273($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $38_1 = 0, $37_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $964(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0); + } + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $964(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $4_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $274($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $43_1 = 0, $70_1 = 0, $69_1 = 0, $53_1 = 0, $66_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $69_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + $7_1 = 0; + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 4 | 0) >> 2] = (($529(HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0) >>> 0) % ((HEAP32[($6_1 + 20 | 0) >> 2] | 0) >>> 0) | 0; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + label$6 : { + if ($855(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0) { + break label$6 + } + HEAP32[($6_1 + 28 | 0) >> 2] = HEAP32[(((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0; + break label$3; + } + HEAP32[($6_1 + 4 | 0) >> 2] = (((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 1 | 0) >>> 0) % ((HEAP32[($6_1 + 20 | 0) >> 2] | 0) >>> 0) | 0; + $43_1 = HEAP32[($6_1 + 8 | 0) >> 2] | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = $43_1 + 1 | 0; + label$7 : { + if (!($43_1 >>> 0 > (HEAP32[($6_1 + 20 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + } + continue label$5; + }; + } + $53_1 = $856(HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] = $53_1; + HEAP32[(((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 4 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + HEAP32[($6_1 + 28 | 0) >> 2] = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + } + $66_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$8 : { + $70_1 = $6_1 + 32 | 0; + if ($70_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $70_1; + } + return $66_1 | 0; + } + + function $275($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $47_1 = 0, $46_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $46_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0) >>> 0 < (HEAP32[($6_1 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $274(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = (HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + $47_1 = $6_1 + 32 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return; + } + + function $276($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $16_1 = 0, $11_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + $11_1 = $272(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $11_1; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $277($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $20_1 = 0, $19_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $273(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $20_1 = $3_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return; + } + + function $278($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $40_1 = 0, $39_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $39_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 > (Math_imul(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0, 3) >>> 2 | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 1 | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $272(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $275(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + $273(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + } + label$4 : { + $40_1 = $3_1 + 16 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return; + } + + function $279($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $22_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $274(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + $22_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[($22_1 + 4 | 0) >> 2] = (HEAP32[($22_1 + 4 | 0) >> 2] | 0) + 1 | 0; + $278(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$4 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $280($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $71_1 = 0, $70_1 = 0, $14_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $70_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $70_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $14_1 = $963((HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] | 0) << 2 | 0 | 0) | 0; + HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] = $14_1; + HEAP32[(HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0) >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $6_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[$5_1 >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[((HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0) + ((HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) >> 2] = 0; + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + $71_1 = $5_1 + 16 | 0; + if ($71_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $71_1; + } + return; + } + + function $281($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $38_1 = 0, $37_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0) >>> 0 < (HEAP32[($4_1 + 8 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $964(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) << 2 | 0) | 0) >> 2] | 0 | 0); + } + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + $964(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $4_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $282($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $25_1 = 0, $24_1 = 0, $23_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $25_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $25_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $25_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 1; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $24_1 = $6_1 + 48 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $7_1 | 0; + } + + function $283($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $24_1 = 0, $23_1 = 0, $22_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $22_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $24_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $24_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $24_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 2; + HEAPF32[($6_1 + 16 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2]); + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $23_1 = $6_1 + 48 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $7_1 | 0; + } + + function $284($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $23_1 = 0, $22_1 = 0, $21_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $21_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $23_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $23_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $23_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 116; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $22_1 = $6_1 + 48 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $7_1 | 0; + } + + function $285($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $25_1 = 0, $24_1 = 0, $23_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $25_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $25_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $25_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 3; + HEAP8[($6_1 + 16 | 0) >> 0] = HEAPU8[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 0] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $24_1 = $6_1 + 48 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $7_1 | 0; + } + + function $286($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $28_1 = 0, $27_1 = 0, $26_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $26_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $28_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $28_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $28_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 4; + HEAP32[($6_1 + 16 | 0) >> 2] = $279(HEAP32[(HEAP32[($6_1 + 36 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $27_1 = $6_1 + 48 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $7_1 | 0; + } + + function $287($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $85_1 = 0, $84_1 = 0, $83_1 = 0, $75_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $83_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $83_1; + } + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $85_1 = 0; + i64toi32_i32$1 = $6_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 7; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 115; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 8; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$7; + } + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + } + } + $75_1 = 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + label$9 : { + $84_1 = $6_1 + 48 | 0; + if ($84_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + return $75_1 | 0; + } + + function $288($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $27_1 = 0, $26_1 = 0, $25_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $27_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $27_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $27_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $26_1 = $6_1 + 48 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $7_1 | 0; + } + + function $289($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $33_1 = 0, $32_1 = 0, $31_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $31_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $33_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $33_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $33_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 115; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 1 | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $32_1 = $6_1 + 48 | 0; + if ($32_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + return $7_1 | 0; + } + + function $290($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $28_1 = 0, $27_1 = 0, $26_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $26_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $28_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $28_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $28_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = $7_1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $27_1 = $6_1 + 48 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $7_1 | 0; + } + + function $291($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $28_1 = 0, $27_1 = 0, $26_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $26_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $28_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $28_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $28_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = $7_1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $27_1 = $6_1 + 48 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $7_1 | 0; + } + + function $292($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $64_1 = 0, $13_1 = 0, $63_1 = 0, $62_1 = 0, $59_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $62_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 24 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $64_1 = 0; + i64toi32_i32$1 = $6_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $64_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $6_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $64_1; + HEAP32[($6_1 + 12 | 0) >> 2] = i64toi32_i32$0; + $13_1 = HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + label$3 : { + if ($13_1 >>> 0 > 7 >>> 0) { + break label$3 + } + label$4 : { + switch ($13_1 | 0) { + default: + HEAP32[$6_1 >> 2] = HEAP32[(HEAP32[($6_1 + 44 | 0) >> 2] | 0) >> 2] | 0; + $435(0 | 0, 12390 | 0, $6_1 | 0); + break label$3; + case 1: + $287(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + $288(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 3: + $289(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 4: + $290(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 7: + $291(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 5: + HEAP32[($6_1 + 8 | 0) >> 2] = 9; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + break label$3; + case 6: + break label$4; + }; + } + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + } + $59_1 = 0; + label$12 : { + $63_1 = $6_1 + 48 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $59_1 | 0; + } + + function $293($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $28_1 = 0, $40_1 = 0, $39_1 = 0, $26_1 = 0, $27_1 = 0, $36_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $39_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = 0; + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $26_1 = HEAP32[($6_1 + 4 | 0) >> 2] | 0; + $27_1 = HEAP32[($6_1 + 24 | 0) >> 2] | 0; + $28_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $28_1 + 1 | 0; + $292($26_1 | 0, $27_1 + $28_1 | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $36_1 = 0; + label$6 : { + $40_1 = $6_1 + 32 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $294($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $85_1 = 0, $84_1 = 0, $83_1 = 0, $75_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $83_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $83_1; + } + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $85_1 = 0; + i64toi32_i32$1 = $6_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $85_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 7; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 115; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 8; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$7; + } + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + } + } + $75_1 = 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + label$9 : { + $84_1 = $6_1 + 48 | 0; + if ($84_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + return $75_1 | 0; + } + + function $295($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $28_1 = 0, $27_1 = 0, $26_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $26_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $28_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $28_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $28_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = $7_1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $27_1 = $6_1 + 48 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $7_1 | 0; + } + + function $296($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $28_1 = 0, $27_1 = 0, $26_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $26_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $28_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $28_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $28_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = $7_1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $27_1 = $6_1 + 48 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $7_1 | 0; + } + + function $297($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $26_1 = 0, $25_1 = 0, $24_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $24_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $26_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $26_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $26_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 5; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $25_1 = $6_1 + 48 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $7_1 | 0; + } + + function $298($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $27_1 = 0, $26_1 = 0, $25_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $27_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $27_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $27_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $26_1 = $6_1 + 48 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $7_1 | 0; + } + + function $299($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $33_1 = 0, $32_1 = 0, $31_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $31_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $33_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $33_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $33_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 115; + HEAP32[($6_1 + 16 | 0) >> 2] = (HEAP32[($6_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = (HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 1 | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $32_1 = $6_1 + 48 | 0; + if ($32_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + return $7_1 | 0; + } + + function $300($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $26_1 = 0, $25_1 = 0, $24_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $24_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $26_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $26_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $26_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 9; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $25_1 = $6_1 + 48 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $7_1 | 0; + } + + function $301($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $27_1 = 0, $26_1 = 0, $25_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $27_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $27_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $27_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 125; + HEAP32[($6_1 + 16 | 0) >> 2] = $7_1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = 10; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $26_1 = $6_1 + 48 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $7_1 | 0; + } + + function $302($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $26_1 = 0, $25_1 = 0, $24_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $24_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $26_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $26_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $26_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 6; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $25_1 = $6_1 + 48 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $7_1 | 0; + } + + function $303($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $27_1 = 0, $26_1 = 0, $25_1 = 0, $7_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $7_1 = 0; + $10_1 = $6_1 + 8 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $27_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $27_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $27_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 8 | 0) >> 2] = 133; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = 10; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + $26_1 = $6_1 + 48 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $7_1 | 0; + } + + function $304($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $92_1 = 0, $91_1 = 0, $88_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $91_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + label$3 : { + if ($10_1 >>> 0 > 11 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + $435(HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 12422 | 0, 0 | 0); + break label$3; + case 1: + $294(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 2: + $300(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 11: + $297(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 3: + $298(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 4: + $299(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 5: + $295(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 10: + $296(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 6: + label$16 : { + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + $301(HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 7: + label$17 : { + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$17 + } + $302(HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 8: + label$18 : { + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$18 + } + $303(HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 9: + break label$4; + }; + } + $284(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $88_1 = 0; + label$19 : { + $92_1 = $6_1 + 16 | 0; + if ($92_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $92_1; + } + return $88_1 | 0; + } + + function $305($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $109_1 = 0, $108_1 = 0, $107_1 = 0, $99_1 = 0, $104_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $107_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $107_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $109_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $109_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 12; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 18; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 72; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 73; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$9; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $99_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($99_1 | 0, 12471 | 0, $7_1 | 0); + } + } + } + } + $104_1 = 0; + label$11 : { + $108_1 = $7_1 + 48 | 0; + if ($108_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $108_1; + } + return $104_1 | 0; + } + + function $306($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $1659 = 0, $16_1 = 0, $709_1 = 0, $1062 = 0, $1658 = 0, $1657 = 0, $124_1 = 0, $178_1 = 0, $182_1 = 0, $279_1 = 0, $283_1 = 0, $380_1 = 0, $384_1 = 0, $481_1 = 0, $485_1 = 0, $582_1 = 0, $586_1 = 0, $930_1 = 0, $934_1 = 0, $1283 = 0, $1287 = 0, $1398 = 0, $1577 = 0, $1609 = 0, $1654 = 0; + $7_1 = global$0 - 208 | 0; + label$1 : { + $1657 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $1657; + } + HEAP32[($7_1 + 204 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 200 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 196 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 192 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 188 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 184 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $1659 = 0; + i64toi32_i32$1 = $7_1 + 176 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1659; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7_1; + HEAP32[($7_1 + 168 | 0) >> 2] = $1659; + HEAP32[($7_1 + 172 | 0) >> 2] = i64toi32_i32$0; + $16_1 = (HEAP32[(HEAP32[($7_1 + 204 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($16_1 >>> 0 > 45 >>> 0) { + break label$3 + } + label$4 : { + switch ($16_1 | 0) { + default: + $282(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $282(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + $283(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 3: + $285(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 4: + $286(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 5: + $307(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 45: + $284(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 6: + $304(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 7: + $305(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 8: + $308(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 9: + $309(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 10: + $310(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 11: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 168 | 0) >> 2] = 131; + HEAP32[($7_1 + 176 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + label$50 : { + label$51 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$51 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 16; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$50; + } + label$52 : { + label$53 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$53 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 22; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$52; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $124_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($124_1 | 0, 12594 | 0, $7_1 | 0); + } + } + break label$3; + case 12: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 168 | 0) >> 2] = 131; + HEAP32[($7_1 + 176 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + label$54 : { + label$55 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$55 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$55 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 17; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$54; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $178_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $182_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 20 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $182_1; + $435($178_1 | 0, 12614 | 0, $7_1 + 16 | 0 | 0); + } + break label$3; + case 13: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$56 : { + label$57 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$57 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$57 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$56; + } + label$58 : { + label$59 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$59 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$59 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 34; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$58; + } + label$60 : { + label$61 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$61 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$61 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 40; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$60; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $279_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $283_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 32 | 0) >> 2] = $283_1; + $435($279_1 | 0, 12637 | 0, $7_1 + 32 | 0 | 0); + } + } + } + break label$3; + case 14: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$62 : { + label$63 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$63 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$63 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 29; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$62; + } + label$64 : { + label$65 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$65 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$65 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 35; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$64; + } + label$66 : { + label$67 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$67 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$67 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 41; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$66; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $380_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $384_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 52 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 48 | 0) >> 2] = $384_1; + $435($380_1 | 0, 12670 | 0, $7_1 + 48 | 0 | 0); + } + } + } + break label$3; + case 15: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$68 : { + label$69 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$69 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$69 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 30; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$68; + } + label$70 : { + label$71 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$71 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$71 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 36; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$70; + } + label$72 : { + label$73 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$73 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$73 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 42; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$72; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $481_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $485_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 68 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 64 | 0) >> 2] = $485_1; + $435($481_1 | 0, 12703 | 0, $7_1 + 64 | 0 | 0); + } + } + } + break label$3; + case 16: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$74 : { + label$75 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$75 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$75 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 31; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$74; + } + label$76 : { + label$77 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$77 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$77 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 37; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$76; + } + label$78 : { + label$79 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$79 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$79 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 43; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$78; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $582_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $586_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 84 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 80 | 0) >> 2] = $586_1; + $435($582_1 | 0, 12737 | 0, $7_1 + 80 | 0 | 0); + } + } + } + break label$3; + case 17: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$80 : { + label$81 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$81 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$81 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 48; + break label$80; + } + label$82 : { + label$83 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$83 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$83 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 32; + break label$82; + } + label$84 : { + label$85 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$85 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$85 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 32; + break label$84; + } + label$86 : { + label$87 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$87 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$87 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 38; + break label$86; + } + label$88 : { + label$89 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$89 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$89 + } + $709_1 = (HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$90 : { + if ($709_1 >>> 0 > 1 >>> 0) { + break label$90 + } + label$91 : { + switch ($709_1 | 0) { + default: + HEAP32[($7_1 + 168 | 0) >> 2] = 32; + break label$90; + case 1: + break label$91; + }; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 12771 | 0, 0 | 0); + } + break label$88; + } + label$93 : { + label$94 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$94 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$94 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 44; + break label$93; + } + label$95 : { + label$96 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$96 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$96 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 46; + break label$95; + } + label$97 : { + label$98 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$98 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$98 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 49; + break label$97; + } + label$99 : { + label$100 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$100 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$100 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 53; + break label$99; + } + label$101 : { + label$102 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$102 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$102 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 50; + break label$101; + } + label$103 : { + label$104 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$104 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$104 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 54; + break label$103; + } + label$105 : { + label$106 : { + label$107 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$107 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$106 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$106 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 51; + break label$105; + } + label$108 : { + label$109 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$109 + } + label$110 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$110 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$109 + } + } + HEAP32[($7_1 + 168 | 0) >> 2] = 55; + break label$108; + } + label$111 : { + label$112 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$112 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$112 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 52; + break label$111; + } + label$113 : { + label$114 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$114 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$114 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 56; + break label$113; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $930_1 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $934_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 100 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 96 | 0) >> 2] = $934_1; + $435($930_1 | 0, 12804 | 0, $7_1 + 96 | 0 | 0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$3; + case 18: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 200 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$115 : { + label$116 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$116 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$116 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 57; + break label$115; + } + label$117 : { + label$118 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$118 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$118 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 32; + break label$117; + } + label$119 : { + label$120 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$120 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$120 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 33; + break label$119; + } + label$121 : { + label$122 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$122 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$122 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 39; + break label$121; + } + label$123 : { + label$124 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$124 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$124 + } + $1062 = (HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$125 : { + if ($1062 >>> 0 > 1 >>> 0) { + break label$125 + } + label$126 : { + switch ($1062 | 0) { + default: + HEAP32[($7_1 + 168 | 0) >> 2] = 33; + break label$125; + case 1: + break label$126; + }; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 12771 | 0, 0 | 0); + } + break label$123; + } + label$128 : { + label$129 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$129 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$129 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 45; + break label$128; + } + label$130 : { + label$131 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$131 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$131 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 47; + break label$130; + } + label$132 : { + label$133 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$133 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$133 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 58; + break label$132; + } + label$134 : { + label$135 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$135 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$135 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 62; + break label$134; + } + label$136 : { + label$137 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$137 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$137 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 59; + break label$136; + } + label$138 : { + label$139 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$139 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$139 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 63; + break label$138; + } + label$140 : { + label$141 : { + label$142 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$142 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$141 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$141 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 60; + break label$140; + } + label$143 : { + label$144 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$144 + } + label$145 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$145 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$144 + } + } + HEAP32[($7_1 + 168 | 0) >> 2] = 64; + break label$143; + } + label$146 : { + label$147 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$147 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$147 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 61; + break label$146; + } + label$148 : { + label$149 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$149 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$149 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 65; + break label$148; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $1283 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $1287 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 116 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 112 | 0) >> 2] = $1287; + $435($1283 | 0, 12837 | 0, $7_1 + 112 | 0 | 0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$3; + case 19: + $311(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 20: + $312(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 21: + $313(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 22: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 23: + $314(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 24: + label$150 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$150 + } + $315(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 25: + label$151 : { + label$152 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$152 + } + $316(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$151; + } + label$153 : { + label$154 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$154 + } + $317(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$153; + } + label$155 : { + label$156 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$156 + } + $318(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$155; + } + label$157 : { + label$158 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$158 + } + $319(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$157; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $1398 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 128 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($1398 | 0, 12871 | 0, $7_1 + 128 | 0 | 0); + } + } + } + } + break label$3; + case 29: + $320(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 30: + $321(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 31: + $322(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 26: + label$159 : { + label$160 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$160 + } + $323(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$159; + } + label$161 : { + label$162 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$162 + } + $324(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$161; + } + label$163 : { + label$164 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$164 + } + $325(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$163; + } + } + } + } + break label$3; + case 27: + $326(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 28: + label$165 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$165 + } + $327(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 32: + label$166 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$166 + } + $328(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 33: + $329(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 34: + $330(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 35: + $331(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 36: + $332(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 37: + $333(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 38: + $334(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 39: + $335(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 40: + label$167 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$167 + } + $336(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 168 | 0) >> 2] = 132; + HEAP32[($7_1 + 176 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$3; + case 41: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$168 : { + label$169 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$169 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 70; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$168; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $1577 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 144 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($1577 | 0, 12893 | 0, $7_1 + 144 | 0 | 0); + } + break label$3; + case 42: + $306(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + label$170 : { + label$171 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$171 + } + HEAP32[($7_1 + 168 | 0) >> 2] = 71; + $427(HEAP32[((HEAP32[($7_1 + 196 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 168 | 0 | 0) | 0; + break label$170; + } + HEAP32[(HEAP32[($7_1 + 188 | 0) >> 2] | 0) >> 2] = 1; + $1609 = HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 160 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($1609 | 0, 12926 | 0, $7_1 + 160 | 0 | 0); + } + break label$3; + case 43: + label$172 : { + if (!((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$172 + } + $337(HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 44: + break label$4; + }; + } + label$173 : { + label$174 : { + label$175 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$175 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$174 + } + } + $338(HEAP32[($7_1 + 204 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 200 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 196 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 192 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 188 | 0) >> 2] | 0 | 0) | 0; + break label$173; + } + } + } + $1654 = 0; + label$176 : { + $1658 = $7_1 + 208 | 0; + if ($1658 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $1658; + } + return $1654 | 0; + } + + function $307($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $55_1 = 0, $54_1 = 0, $53_1 = 0, $50_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $53_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $55_1 = 0; + i64toi32_i32$1 = $6_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $55_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $55_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 4 | 0) >> 2] = -1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + } + HEAP32[($6_1 + 8 | 0) >> 2] = 1; + HEAP32[($6_1 + 16 | 0) >> 2] = HEAP32[($6_1 + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 8 | 0) >> 2] = 112; + HEAP32[($6_1 + 16 | 0) >> 2] = 1; + $427(HEAP32[((HEAP32[($6_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 8 | 0 | 0) | 0; + } + $50_1 = 0; + label$5 : { + $54_1 = $6_1 + 48 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return $50_1 | 0; + } + + function $308($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $237_1 = 0, $236_1 = 0, $235_1 = 0, $227_1 = 0, $232_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $235_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $235_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $237_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $237_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $237_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 13; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 19; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 23; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 24; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 25; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 26; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 27; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$15; + } + label$17 : { + label$18 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 74; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$17; + } + label$19 : { + label$20 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 75; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$19; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $227_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($227_1 | 0, 12491 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + $232_1 = 0; + label$21 : { + $236_1 = $7_1 + 48 | 0; + if ($236_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $236_1; + } + return $232_1 | 0; + } + + function $309($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $117_1 = 0, $116_1 = 0, $115_1 = 0, $107_1 = 0, $112_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $115_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $115_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $117_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $117_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $117_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 14; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 20; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 76; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 77; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$9; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $107_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($107_1 | 0, 12511 | 0, $7_1 | 0); + } + } + } + } + $112_1 = 0; + label$11 : { + $116_1 = $7_1 + 48 | 0; + if ($116_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $116_1; + } + return $112_1 | 0; + } + + function $310($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $199_1 = 0, $198_1 = 0, $197_1 = 0, $189_1 = 0, $194_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $197_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $197_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $199_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $199_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $199_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 15; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 21; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 78; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 79; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 80; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 81; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$13; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $189_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($189_1 | 0, 12531 | 0, $7_1 | 0); + } + } + } + } + } + } + $194_1 = 0; + label$15 : { + $198_1 = $7_1 + 48 | 0; + if ($198_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $198_1; + } + return $194_1 | 0; + } + + function $311($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $13_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, $12_1 = 0, $15_1 = 0, i64toi32_i32$0 = 0, $74_1 = 0, $73_1 = 0, $72_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $72_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $72_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 92; + $13_1 = 1; + $15_1 = 90; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $74_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $74_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $74_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$3 : { + $73_1 = $7_1 + 64 | 0; + if ($73_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $73_1; + } + return $8_1 | 0; + } + + function $312($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, $14_1 = 0, $15_1 = 0, i64toi32_i32$0 = 0, $89_1 = 0, $88_1 = 0, $87_1 = 0; + $7_1 = global$0 - 80 | 0; + label$1 : { + $87_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $87_1; + } + $8_1 = 0; + $11_1 = $7_1 + 40 | 0; + $12_1 = 92; + $13_1 = 1; + $14_1 = 91; + $15_1 = 90; + HEAP32[($7_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 60 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $89_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $89_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $89_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$3 : { + $88_1 = $7_1 + 80 | 0; + if ($88_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $88_1; + } + return $8_1 | 0; + } + + function $313($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $63_1 = 0, $62_1 = 0, $61_1 = 0, $53_1 = 0, $58_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $61_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $63_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $63_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $63_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 66; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 66; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $53_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($53_1 | 0, 12551 | 0, $7_1 | 0); + } + } + $58_1 = 0; + label$7 : { + $62_1 = $7_1 + 48 | 0; + if ($62_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + return $58_1 | 0; + } + + function $314($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $12_1 = 0, i64toi32_i32$0 = 0, $66_1 = 0, $65_1 = 0, $64_1 = 0, $8_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $64_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 92; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $66_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $66_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $66_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$3 : { + $65_1 = $7_1 + 64 | 0; + if ($65_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + return $8_1 | 0; + } + + function $315($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $48_1 = 0, $47_1 = 0, $44_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $47_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $350(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$6 + } + break label$5; + } + label$7 : { + if (!((HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$7 + } + $351(HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + } + } + $44_1 = 0; + label$8 : { + $48_1 = $7_1 + 32 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return $44_1 | 0; + } + + function $316($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $41_1 = 0, $40_1 = 0, $39_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $39_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $41_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $41_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $41_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 107; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $40_1 = $7_1 + 48 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $8_1 | 0; + } + + function $317($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $41_1 = 0, $40_1 = 0, $39_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $39_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $41_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $41_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $41_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 108; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $40_1 = $7_1 + 48 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $8_1 | 0; + } + + function $318($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $41_1 = 0, $40_1 = 0, $39_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $39_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $41_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $41_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $41_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 109; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $40_1 = $7_1 + 48 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $8_1 | 0; + } + + function $319($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $38_1 = 0, $37_1 = 0, $36_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $38_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $38_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $38_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 110; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $37_1 = $7_1 + 48 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $8_1 | 0; + } + + function $320($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $26_1 = 0, $25_1 = 0, $8_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $25_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $8_1 = 0; + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $306(HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $26_1 = $7_1 + 32 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $8_1 | 0; + } + + function $321($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $38_1 = 0, $37_1 = 0, $36_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $38_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $38_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $38_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 8 | 0) >> 2] = 131; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $349(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 101; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $37_1 = $7_1 + 48 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $8_1 | 0; + } + + function $322($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $118_1 = 0, $117_1 = 0, $116_1 = 0, $113_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $116_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $116_1; + } + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $118_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $118_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $118_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 8 | 0) >> 2] = 131; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $349(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 101; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 102; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 103; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 104; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 105; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$9; + } + } + } + } + } + $113_1 = 0; + label$11 : { + $117_1 = $7_1 + 48 | 0; + if ($117_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $117_1; + } + return $113_1 | 0; + } + + function $323($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $42_1 = 0, $41_1 = 0, $40_1 = 0, $32_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $40_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 24 | 0) >> 2] = -1; + i64toi32_i32$0 = 0; + $42_1 = 0; + i64toi32_i32$1 = $7_1; + HEAP32[$7_1 >> 2] = $42_1; + HEAP32[($7_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $42_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 24 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + } + $32_1 = 0; + HEAP32[$7_1 >> 2] = 112; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[($7_1 + 24 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$4 : { + $41_1 = $7_1 + 48 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return $32_1 | 0; + } + + function $324($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $8_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $51_1 = 0, $50_1 = 0, $49_1 = 0, $31_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $49_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $49_1; + } + $8_1 = 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $8_1; + i64toi32_i32$0 = 0; + $51_1 = 0; + i64toi32_i32$1 = $7_1; + HEAP32[$7_1 >> 2] = $51_1; + HEAP32[($7_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $51_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != ($8_1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 24 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + } + $31_1 = 0; + HEAP32[($7_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = 1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + HEAP32[$7_1 >> 2] = 112; + HEAP32[($7_1 + 8 | 0) >> 2] = (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 1 | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$4 : { + $50_1 = $7_1 + 48 | 0; + if ($50_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + return $31_1 | 0; + } + + function $325($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $12_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $73_1 = 0, $50_1 = 0, $72_1 = 0, $71_1 = 0, $47_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $71_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $71_1; + } + $12_1 = $7_1 + 24 | 0; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $73_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $73_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 24 | 0) >> 2] = 131; + HEAP32[($7_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 126; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($7_1 + 12 | 0) >> 2] = 5; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $336(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + (HEAP32[($7_1 + 12 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 12 | 0) >> 2] = (HEAP32[($7_1 + 12 | 0) >> 2] | 0) + (HEAP32[(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0) | 0; + } + $47_1 = 0; + $50_1 = $7_1 + 24 | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + (HEAP32[($7_1 + 12 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 127; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $50_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 92; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $50_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$4 : { + $72_1 = $7_1 + 64 | 0; + if ($72_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $72_1; + } + return $47_1 | 0; + } + + function $326($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $61_1 = 0, $60_1 = 0, $59_1 = 0, $35_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $59_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + $8_1 = 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $8_1; + i64toi32_i32$0 = 0; + $61_1 = 0; + i64toi32_i32$1 = $7_1; + HEAP32[$7_1 >> 2] = $61_1; + HEAP32[($7_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $61_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != ($8_1 | 0) & 1 | 0)) { + break label$3 + } + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + (HEAP32[($7_1 + 24 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + (HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0) | 0; + } + $35_1 = 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + (HEAP32[($7_1 + 24 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = 128; + HEAP32[($7_1 + 8 | 0) >> 2] = (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + (HEAP32[($7_1 + 24 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 12 | 0) >> 2] = (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 1 | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + HEAP32[$7_1 >> 2] = 127; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$4 : { + $60_1 = $7_1 + 48 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return $35_1 | 0; + } + + function $327($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $9_1 = 0, $26_1 = 0, $25_1 = 0, $22_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $25_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $9_1 = HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($9_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + break label$3; + case 1: + $352(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $353(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $22_1 = 0; + label$7 : { + $26_1 = $7_1 + 32 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $22_1 | 0; + } + + function $328($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $21_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $54_1 = 0, $53_1 = 0, $52_1 = 0, $49_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $52_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 40 | 0) >> 2] = 0; + HEAP32[($7_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!(HEAP32[($7_1 + 40 | 0) >> 2] | 0)) { + break label$5 + } + $21_1 = $7_1 + 16 | 0; + i64toi32_i32$0 = 0; + $54_1 = 0; + i64toi32_i32$1 = $21_1; + HEAP32[$21_1 >> 2] = $54_1; + HEAP32[($21_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($21_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $21_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 16 | 0) >> 2] = 128; + HEAP32[($7_1 + 28 | 0) >> 2] = 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $21_1 | 0) | 0; + } + HEAP32[($7_1 + 40 | 0) >> 2] = 1; + HEAP32[($7_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 36 | 0) >> 2] | 0) >> 2] | 0; + label$6 : { + if (!((HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $306(HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $49_1 = 0; + label$7 : { + $53_1 = $7_1 + 64 | 0; + if ($53_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + return $49_1 | 0; + } + + function $329($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $185_1 = 0, $99_1 = 0, $184_1 = 0, $183_1 = 0, $170_1 = 0, $175_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $183_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $183_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $185_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $185_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $185_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$4 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 89; + break label$3; + } + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 82; + break label$6; + } + label$8 : { + label$9 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 82; + break label$8; + } + label$10 : { + label$11 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 83; + break label$10; + } + label$12 : { + label$13 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$13 + } + $99_1 = (HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$14 : { + if ($99_1 >>> 0 > 1 >>> 0) { + break label$14 + } + label$15 : { + switch ($99_1 | 0) { + default: + HEAP32[($7_1 + 8 | 0) >> 2] = 82; + break label$14; + case 1: + break label$15; + }; + } + HEAP32[($7_1 + 8 | 0) >> 2] = 87; + } + break label$12; + } + label$17 : { + label$18 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 84; + break label$17; + } + label$19 : { + label$20 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 85; + break label$19; + } + label$21 : { + label$22 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 86; + break label$21; + } + label$23 : { + label$24 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 87; + break label$23; + } + label$25 : { + label$26 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 87; + break label$25; + } + label$27 : { + label$28 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$28 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 88; + break label$27; + } + label$29 : { + label$30 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0)) { + break label$30 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 87; + break label$29; + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $170_1 = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($170_1 | 0, 12571 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + } + } + } + $175_1 = 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + label$31 : { + $184_1 = $7_1 + 48 | 0; + if ($184_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $184_1; + } + return $175_1 | 0; + } + + function $330($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, i64toi32_i32$1 = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$0 = 0, $66_1 = 0, $65_1 = 0, $64_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $64_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 1; + $13_1 = 92; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $66_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $66_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $66_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 128; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $65_1 = $7_1 + 64 | 0; + if ($65_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + return $8_1 | 0; + } + + function $331($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, i64toi32_i32$1 = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$0 = 0, $66_1 = 0, $65_1 = 0, $64_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $64_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 1; + $13_1 = 92; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $66_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $66_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $66_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 128; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $65_1 = $7_1 + 64 | 0; + if ($65_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + return $8_1 | 0; + } + + function $332($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, $12_1 = 0, $15_1 = 0, i64toi32_i32$1 = 0, $13_1 = 0, i64toi32_i32$0 = 0, $82_1 = 0, $81_1 = 0, $80_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $80_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 1; + $13_1 = 92; + $15_1 = 128; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $82_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $82_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $82_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $81_1 = $7_1 + 64 | 0; + if ($81_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + return $8_1 | 0; + } + + function $333($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $87_1 = 0, $86_1 = 0, $83_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $86_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $86_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $339(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + $340(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + $341(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$7; + } + } + } + } + $83_1 = 0; + label$9 : { + $87_1 = $7_1 + 32 | 0; + if ($87_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $87_1; + } + return $83_1 | 0; + } + + function $334($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $55_1 = 0, i64toi32_i32$1 = 0, $12_1 = 0, i64toi32_i32$0 = 0, $112_1 = 0, $31_1 = 0, $56_1 = 0, $58_1 = 0, $111_1 = 0, $110_1 = 0, $52_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $110_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $110_1; + } + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 40 | 0) >> 2] = 0; + $12_1 = $7_1 + 32 | 0; + i64toi32_i32$0 = 0; + $112_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[i64toi32_i32$1 >> 2] = $112_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $112_1; + HEAP32[($7_1 + 28 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 24 | 0) >> 2] = 131; + HEAP32[$12_1 >> 2] = HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 24 | 0 | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + $31_1 = (HEAP32[(HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($31_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($31_1 | 0) { + default: + $342(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + $343(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + } + $52_1 = 0; + $55_1 = $7_1 + 24 | 0; + $56_1 = 1; + $58_1 = 92; + HEAP32[($7_1 + 24 | 0) >> 2] = 32; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $58_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $58_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 128; + HEAP32[($7_1 + 36 | 0) >> 2] = $56_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $56_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + label$6 : { + $111_1 = $7_1 + 64 | 0; + if ($111_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $111_1; + } + return $52_1 | 0; + } + + function $335($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $48_1 = 0, $47_1 = 0, $46_1 = 0, $43_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $46_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $48_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $48_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $48_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 8 | 0) >> 2] = 131; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $348(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + } + $43_1 = 0; + label$4 : { + $47_1 = $7_1 + 48 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return $43_1 | 0; + } + + function $336($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $29_1 = 0, $42_1 = 0, $41_1 = 0, $27_1 = 0, $28_1 = 0, $38_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$7_1 >> 2] = HEAP32[(HEAP32[($7_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$7_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $27_1 = HEAP32[$7_1 >> 2] | 0; + $28_1 = HEAP32[($7_1 + 24 | 0) >> 2] | 0; + $29_1 = HEAP32[($7_1 + 8 | 0) >> 2] | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = $29_1 + 1 | 0; + $306($27_1 | 0, $28_1 + $29_1 | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $38_1 = 0; + label$6 : { + $42_1 = $7_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return $38_1 | 0; + } + + function $337($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, $12_1 = 0, i64toi32_i32$0 = 0, $39_1 = 0, $38_1 = 0, $37_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $37_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + $12_1 = 1; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $39_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $39_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $39_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($7_1 + 40 | 0) >> 2] | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 100; + HEAP32[($7_1 + 16 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $354(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $38_1 = $7_1 + 48 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return $8_1 | 0; + } + + function $338($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $95_1 = 0, i64toi32_i32$0 = 0, $138_1 = 0, $35_1 = 0, $39_1 = 0, $65_1 = 0, $66_1 = 0, $67_1 = 0, $68_1 = 0, $94_1 = 0, $98_1 = 0, $137_1 = 0, $136_1 = 0, $125_1 = 0; + $7_1 = global$0 - 80 | 0; + label$1 : { + $136_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $136_1; + } + HEAP32[($7_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 60 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $138_1 = 0; + i64toi32_i32$1 = $7_1 + 40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $138_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $138_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 36 | 0) >> 2] = 1; + $306(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$4 + } + $35_1 = $7_1 + 40 | 0; + $36_1 = 0; + $39_1 = -1; + HEAP32[($7_1 + 32 | 0) >> 2] = $39_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $39_1; + HEAP32[($7_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 28 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 115; + HEAP32[($7_1 + 48 | 0) >> 2] = $36_1; + HEAP32[($7_1 + 52 | 0) >> 2] = HEAP32[($7_1 + 28 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $35_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 7; + HEAP32[($7_1 + 48 | 0) >> 2] = $36_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $36_1; + HEAP32[($7_1 + 56 | 0) >> 2] = HEAP32[($7_1 + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $35_1 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = 2; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$6 + } + $65_1 = $7_1 + 40 | 0; + $66_1 = 0; + $67_1 = 115; + $68_1 = -1; + HEAP32[($7_1 + 24 | 0) >> 2] = $68_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $68_1; + HEAP32[($7_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $67_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $66_1; + HEAP32[($7_1 + 52 | 0) >> 2] = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $65_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $67_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $66_1; + HEAP32[($7_1 + 52 | 0) >> 2] = HEAP32[($7_1 + 24 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $65_1 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = 2; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$8 + } + $94_1 = $7_1 + 40 | 0; + $95_1 = 0; + $98_1 = -1; + HEAP32[($7_1 + 16 | 0) >> 2] = $98_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $98_1; + HEAP32[($7_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 115; + HEAP32[($7_1 + 48 | 0) >> 2] = $95_1; + HEAP32[($7_1 + 52 | 0) >> 2] = HEAP32[($7_1 + 12 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $94_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 8; + HEAP32[($7_1 + 48 | 0) >> 2] = $95_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $95_1; + HEAP32[($7_1 + 56 | 0) >> 2] = HEAP32[($7_1 + 16 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $94_1 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = 2; + break label$7; + } + HEAP32[($7_1 + 8 | 0) >> 2] = -1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 115; + HEAP32[($7_1 + 48 | 0) >> 2] = 0; + HEAP32[($7_1 + 52 | 0) >> 2] = HEAP32[($7_1 + 8 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 40 | 0 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = 1; + } + } + } + $125_1 = 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 128; + HEAP32[($7_1 + 52 | 0) >> 2] = 1; + HEAP32[($7_1 + 48 | 0) >> 2] = HEAP32[($7_1 + 36 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 40 | 0 | 0) | 0; + label$9 : { + $137_1 = $7_1 + 80 | 0; + if ($137_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $137_1; + } + return $125_1 | 0; + } + + function $339($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, $12_1 = 0, $13_1 = 0, $19_1 = 0, i64toi32_i32$1 = 0, $14_1 = 0, $15_1 = 0, i64toi32_i32$0 = 0, $99_1 = 0, $98_1 = 0, $97_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $97_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $97_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + $12_1 = 1; + $13_1 = 2; + $14_1 = 128; + $15_1 = 92; + $19_1 = 6; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $99_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $99_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 7; + HEAP32[($7_1 + 32 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 90; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 3 | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 107; + HEAP32[($7_1 + 32 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 67; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 91; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $98_1 = $7_1 + 64 | 0; + if ($98_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $98_1; + } + return $8_1 | 0; + } + + function $340($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, $12_1 = 0, $13_1 = 0, $21_1 = 0, $15_1 = 0, $14_1 = 0, $19_1 = 0, i64toi32_i32$1 = 0, $16_1 = 0, $18_1 = 0, $22_1 = 0, i64toi32_i32$0 = 0, $171_1 = 0, $170_1 = 0, $169_1 = 0; + $7_1 = global$0 - 80 | 0; + label$1 : { + $169_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $169_1; + } + $8_1 = 0; + $11_1 = $7_1 + 40 | 0; + $12_1 = 1; + $13_1 = 2; + $14_1 = 128; + $15_1 = 92; + $16_1 = 91; + $18_1 = 69; + $19_1 = 90; + $21_1 = 113; + $22_1 = 6; + HEAP32[($7_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 60 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $171_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $171_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $171_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 114; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 82; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $22_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 30; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 3 | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 67; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $16_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $22_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 31; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 3 | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 68; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $16_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $170_1 = $7_1 + 80 | 0; + if ($170_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $170_1; + } + return $8_1 | 0; + } + + function $341($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $8_1 = 0, $12_1 = 0, $18_1 = 0, $20_1 = 0, $23_1 = 0, $15_1 = 0, $14_1 = 0, $21_1 = 0, i64toi32_i32$1 = 0, $16_1 = 0, $19_1 = 0, $28_1 = 0, i64toi32_i32$0 = 0, $182_1 = 0, $181_1 = 0, $180_1 = 0; + $7_1 = global$0 - 80 | 0; + label$1 : { + $180_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $180_1; + } + $8_1 = 0; + $11_1 = $7_1 + 40 | 0; + $12_1 = 1; + $14_1 = 128; + $15_1 = 92; + $16_1 = 91; + $18_1 = 2; + $19_1 = 106; + $20_1 = 6; + $21_1 = 90; + $23_1 = 113; + $28_1 = 115; + HEAP32[($7_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 60 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $182_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $182_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $182_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $28_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $28_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $23_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 82; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $23_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $23_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $23_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 30; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 5 | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 5 | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 67; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $16_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $23_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 31; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $21_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] = (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 5 | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $20_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $19_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $12_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + $306(HEAP32[((HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 5 | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 68; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $16_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $15_1; + HEAP32[($7_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $14_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 48 | 0) >> 2] = 4; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $181_1 = $7_1 + 80 | 0; + if ($181_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $181_1; + } + return $8_1 | 0; + } + + function $342($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $47_1 = 0, $17_1 = 0, $29_1 = 0, $46_1 = 0, $45_1 = 0, $33_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $45_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $45_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 24 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $47_1 = 0; + i64toi32_i32$1 = $7_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $47_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $7_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $47_1; + HEAP32[($7_1 + 12 | 0) >> 2] = i64toi32_i32$0; + $17_1 = (HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($17_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($17_1 | 0) { + default: + HEAP32[($7_1 + 8 | 0) >> 2] = 124; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + $29_1 = 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 115; + HEAP32[($7_1 + 16 | 0) >> 2] = $29_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $29_1; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + } + $33_1 = 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 1; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + label$6 : { + $46_1 = $7_1 + 48 | 0; + if ($46_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + return $33_1 | 0; + } + + function $343($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $61_1 = 0, $31_1 = 0, $43_1 = 0, $60_1 = 0, $59_1 = 0, $47_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $59_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $61_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $61_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $61_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $792(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0); + } + $31_1 = (HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$4 : { + if ($31_1 >>> 0 > 1 >>> 0) { + break label$4 + } + label$5 : { + switch ($31_1 | 0) { + default: + HEAP32[($7_1 + 8 | 0) >> 2] = 124; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + break label$4; + case 1: + break label$5; + }; + } + $43_1 = 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 115; + HEAP32[($7_1 + 16 | 0) >> 2] = $43_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $43_1; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + } + $47_1 = 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 1; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + label$7 : { + $60_1 = $7_1 + 48 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return $47_1 | 0; + } + + function $344($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $38_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $83_1 = 0, $19_1 = 0, $31_1 = 0, $82_1 = 0, $81_1 = 0, $35_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $81_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + HEAP32[($8_1 + 32 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $83_1 = 0; + i64toi32_i32$1 = $8_1 + 24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $83_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $8_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $83_1; + HEAP32[($8_1 + 20 | 0) >> 2] = i64toi32_i32$0; + $19_1 = (HEAP32[(HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($19_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($19_1 | 0) { + default: + HEAP32[($8_1 + 16 | 0) >> 2] = 124; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $8_1 + 16 | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + $31_1 = 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 115; + HEAP32[($8_1 + 24 | 0) >> 2] = $31_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $31_1; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $8_1 + 16 | 0 | 0) | 0; + } + $35_1 = 0; + $38_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 1; + HEAP32[($8_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 32; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 90; + HEAP32[($8_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + $306(HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 91; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 92; + HEAP32[($8_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$6 : { + $82_1 = $8_1 + 64 | 0; + if ($82_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $82_1; + } + return $35_1 | 0; + } + + function $345($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, i64toi32_i32$1 = 0, $54_1 = 0, i64toi32_i32$0 = 0, $99_1 = 0, $35_1 = 0, $47_1 = 0, $98_1 = 0, $97_1 = 0, $51_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $97_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $97_1; + } + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $99_1 = 0; + i64toi32_i32$1 = $8_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $99_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + label$3 : { + if (!((HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $792(HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0); + } + $35_1 = (HEAP32[(HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$4 : { + if ($35_1 >>> 0 > 1 >>> 0) { + break label$4 + } + label$5 : { + switch ($35_1 | 0) { + default: + HEAP32[($8_1 + 16 | 0) >> 2] = 124; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $8_1 + 16 | 0 | 0) | 0; + break label$4; + case 1: + break label$5; + }; + } + $47_1 = 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 115; + HEAP32[($8_1 + 24 | 0) >> 2] = $47_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $47_1; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $8_1 + 16 | 0 | 0) | 0; + } + $51_1 = 0; + $54_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 1; + HEAP32[($8_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 32; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 90; + HEAP32[($8_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + $306(HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 91; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 92; + HEAP32[($8_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$7 : { + $98_1 = $8_1 + 64 | 0; + if ($98_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $98_1; + } + return $51_1 | 0; + } + + function $346($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $38_1 = 0, $37_1 = 0, $36_1 = 0, $9_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $36_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + $9_1 = 0; + $12_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $38_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $38_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $38_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[(HEAP32[($8_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 91; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$3 : { + $37_1 = $8_1 + 64 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $9_1 | 0; + } + + function $347($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, $43_1 = 0, $42_1 = 0, $39_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $42_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + $12_1 = (HEAP32[(HEAP32[($8_1 + 28 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($12_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($12_1 | 0) { + default: + $344((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $345((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $346((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $39_1 = 0; + label$7 : { + $43_1 = $8_1 + 32 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return $39_1 | 0; + } + + function $348($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, $11_1 = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$0 = 0, $84_1 = 0, $41_1 = 0, $83_1 = 0, $82_1 = 0, $66_1 = 0; + $7_1 = global$0 - 80 | 0; + label$1 : { + $82_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $82_1; + } + $10_1 = $7_1 + 40 | 0; + $11_1 = 92; + $12_1 = 91; + $13_1 = 1; + HEAP32[($7_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 60 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $84_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $84_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $84_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $11_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 128; + HEAP32[($7_1 + 52 | 0) >> 2] = $13_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $12_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($7_1 + 40 | 0) >> 2] = $11_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + $41_1 = HEAP32[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $41_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $41_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $347(HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 72 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $66_1 = 0; + HEAP32[($7_1 + 40 | 0) >> 2] = 92; + HEAP32[($7_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 40 | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$6 : { + $83_1 = $7_1 + 80 | 0; + if ($83_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $83_1; + } + return $66_1 | 0; + } + + function $349($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $43_1 = 0, $42_1 = 0, $39_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $42_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$7_1 >> 2] = HEAP32[(HEAP32[($7_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$7_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $320(HEAP32[$7_1 >> 2] | 0 | 0, (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + (HEAP32[($7_1 + 8 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = (HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 2 | 0; + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $39_1 = 0; + label$6 : { + $43_1 = $7_1 + 32 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return $39_1 | 0; + } + + function $350($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $49_1 = 0, $48_1 = 0, $47_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $47_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + $8_1 = 0; + $11_1 = $7_1 + 24 | 0; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $49_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $49_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $49_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 20 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($7_1 + 12 | 0) >> 2] = $659() | 0; + $691(HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $362(HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, $7_1 + 20 | 0 | 0, HEAP32[($7_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + $660(HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0); + $336(HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + (HEAP32[($7_1 + 20 | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 100; + HEAP32[($7_1 + 32 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $48_1 = $7_1 + 64 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return $8_1 | 0; + } + + function $351($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $154_1 = 0, $86_1 = 0, $153_1 = 0, $152_1 = 0, $141_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $152_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $152_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $154_1 = 0; + i64toi32_i32$1 = $7_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $154_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $154_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $336(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 93; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 93; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 94; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 95; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 96; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$14 + } + $86_1 = (HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$15 : { + if ($86_1 >>> 0 > 1 >>> 0) { + break label$15 + } + label$16 : { + switch ($86_1 | 0) { + default: + HEAP32[($7_1 + 8 | 0) >> 2] = 93; + break label$15; + case 1: + break label$16; + }; + } + HEAP32[($7_1 + 8 | 0) >> 2] = 98; + } + break label$13; + } + label$18 : { + label$19 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$19 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 97; + break label$18; + } + label$20 : { + label$21 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$21 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 98; + break label$20; + } + label$22 : { + label$23 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$23 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 98; + break label$22; + } + label$24 : { + label$25 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$25 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 98; + break label$24; + } + label$26 : { + label$27 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$27 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 99; + break label$26; + } + } + } + } + } + } + } + } + } + } + } + } + $141_1 = 0; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + label$28 : { + $153_1 = $7_1 + 48 | 0; + if ($153_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $153_1; + } + return $141_1 | 0; + } + + function $352($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $69_1 = 0, $54_1 = 0, $68_1 = 0, $67_1 = 0, $51_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $67_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $67_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $69_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $69_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $69_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 4 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 118; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >>> 0 > $8_1 >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 131; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $293(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) >> 2] | 0; + } + $51_1 = 0; + $54_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 125; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[($7_1 + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 10; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[($7_1 + 44 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $54_1 | 0) | 0; + $447(HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0); + label$5 : { + $68_1 = $7_1 + 48 | 0; + if ($68_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + return $51_1 | 0; + } + + function $353($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $53_1 = 0, $38_1 = 0, $52_1 = 0, $51_1 = 0, $35_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $51_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $53_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $53_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $53_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 4 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 118; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >>> 0 > $8_1 >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 131; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + } + $35_1 = 0; + $38_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 125; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[($7_1 + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 10; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[($7_1 + 44 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $38_1 | 0) | 0; + $447(HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0); + label$4 : { + $52_1 = $7_1 + 48 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return $35_1 | 0; + } + + function $354($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $48_1 = 0, $47_1 = 0, $44_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $47_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + label$3 : { + label$4 : { + if (!((HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($8_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $357(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + } + label$6 : { + if (!((HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $355(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + } + $44_1 = 0; + label$7 : { + $48_1 = $8_1 + 32 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return $44_1 | 0; + } + + function $355($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $34_1 = 0, $33_1 = 0, $32_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $32_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $34_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $34_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $34_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $306(HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = 111; + HEAP32[($7_1 + 16 | 0) >> 2] = (HEAP32[($7_1 + 40 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($7_1 + 44 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) | 0; + HEAP32[($7_1 + 20 | 0) >> 2] = $8_1; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $33_1 = $7_1 + 48 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $8_1 | 0; + } + + function $356($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, $9_1 = 0, $18_1 = 0, $20_1 = 0, i64toi32_i32$1 = 0, $13_1 = 0, $14_1 = 0, $15_1 = 0, i64toi32_i32$0 = 0, $98_1 = 0, $97_1 = 0, $96_1 = 0; + $8_1 = global$0 - 80 | 0; + label$1 : { + $96_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $96_1; + } + $9_1 = 0; + $12_1 = $8_1 + 32 | 0; + $13_1 = 2; + $14_1 = 128; + $15_1 = 92; + $18_1 = 1; + $20_1 = 6; + HEAP32[($8_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 64 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $98_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $98_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $98_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 72 | 0) >> 2] | 0) >> 2] | 0; + $306(HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 56 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 7; + HEAP32[($8_1 + 40 | 0) >> 2] = $13_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 90; + HEAP32[($8_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 107; + HEAP32[($8_1 + 40 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($8_1 + 68 | 0) >> 2] | 0) + 3 | 0; + $354(HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($8_1 + 68 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($8_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 56 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 67; + HEAP32[($8_1 + 40 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = 91; + HEAP32[($8_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 32 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($8_1 + 64 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + label$3 : { + $97_1 = $8_1 + 80 | 0; + if ($97_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $97_1; + } + return $9_1 | 0; + } + + function $357($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $30_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + $12_1 = HEAP32[(HEAP32[($8_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($12_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($12_1 | 0) { + case 1: + $360(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + $361(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + default: + break label$4; + }; + } + } + $27_1 = 0; + label$7 : { + $31_1 = $8_1 + 32 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $358($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, $9_1 = 0, $18_1 = 0, $22_1 = 0, $13_1 = 0, $15_1 = 0, $14_1 = 0, $20_1 = 0, i64toi32_i32$1 = 0, $16_1 = 0, $19_1 = 0, $23_1 = 0, i64toi32_i32$0 = 0, $169_1 = 0, $168_1 = 0, $167_1 = 0; + $8_1 = global$0 - 96 | 0; + label$1 : { + $167_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $167_1; + } + $9_1 = 0; + $12_1 = $8_1 + 48 | 0; + $13_1 = 2; + $14_1 = 128; + $15_1 = 92; + $16_1 = 91; + $18_1 = 1; + $19_1 = 69; + $20_1 = 90; + $22_1 = 113; + $23_1 = 6; + HEAP32[($8_1 + 92 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 88 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 84 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 80 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 76 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 72 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $169_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $169_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $169_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 88 | 0) >> 2] | 0) >> 2] | 0; + $306(HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 84 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 114; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 82; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $13_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $23_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $13_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 30; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $19_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 3 | 0; + $354(HEAP32[($8_1 + 92 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 67; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $16_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $23_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $13_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 31; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $19_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 3 | 0; + $354(HEAP32[($8_1 + 92 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 3 | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 68; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $16_1; + HEAP32[($8_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $13_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + label$3 : { + $168_1 = $8_1 + 96 | 0; + if ($168_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $168_1; + } + return $9_1 | 0; + } + + function $359($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, $9_1 = 0, $18_1 = 0, $20_1 = 0, $21_1 = 0, $24_1 = 0, $15_1 = 0, $14_1 = 0, $22_1 = 0, i64toi32_i32$1 = 0, $16_1 = 0, $19_1 = 0, $29_1 = 0, i64toi32_i32$0 = 0, $180_1 = 0, $179_1 = 0, $178_1 = 0; + $8_1 = global$0 - 96 | 0; + label$1 : { + $178_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $178_1; + } + $9_1 = 0; + $12_1 = $8_1 + 48 | 0; + $14_1 = 128; + $15_1 = 92; + $16_1 = 91; + $18_1 = 1; + $19_1 = 106; + $20_1 = 6; + $21_1 = 2; + $22_1 = 90; + $24_1 = 113; + $29_1 = 115; + HEAP32[($8_1 + 92 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 88 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 84 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 80 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 76 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 72 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $180_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $180_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $180_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 88 | 0) >> 2] | 0) >> 2] | 0; + $306(HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 84 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $29_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $29_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $24_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 82; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $24_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $24_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $21_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 28; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $24_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $21_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 30; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 32 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $21_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $19_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 5 | 0; + $354(HEAP32[($8_1 + 92 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 5 | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 67; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $16_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $24_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $21_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 31; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $22_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $21_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $20_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $19_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 5 | 0; + $354(HEAP32[($8_1 + 92 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[($8_1 + 84 | 0) >> 2] | 0) + 5 | 0 | 0, HEAP32[($8_1 + 80 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 76 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $18_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = 68; + HEAP32[($8_1 + 56 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $16_1; + HEAP32[($8_1 + 36 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $15_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + HEAP32[($8_1 + 48 | 0) >> 2] = $14_1; + HEAP32[($8_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 56 | 0) >> 2] = 4; + $427(HEAP32[((HEAP32[($8_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + label$3 : { + $179_1 = $8_1 + 96 | 0; + if ($179_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $179_1; + } + return $9_1 | 0; + } + + function $360($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $91_1 = 0, $90_1 = 0, $87_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $90_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $90_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $356(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + $358(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[(HEAP32[($8_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + $359(HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$7; + } + } + } + } + $87_1 = 0; + label$9 : { + $91_1 = $8_1 + 32 | 0; + if ($91_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + return $87_1 | 0; + } + + function $361($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $12_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $53_1 = 0, $52_1 = 0, $51_1 = 0, $9_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $51_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + $9_1 = 0; + $12_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $53_1 = 0; + i64toi32_i32$1 = $12_1; + HEAP32[$12_1 >> 2] = $53_1; + HEAP32[($12_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($12_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $12_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $53_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($8_1 + 52 | 0) >> 2] | 0; + $306(HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 90; + HEAP32[($8_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + $354(HEAP32[($8_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 92; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $12_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + label$3 : { + $52_1 = $8_1 + 64 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return $9_1 | 0; + } + + function $362($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $42_1 = 0, $43_1 = 0, $56_1 = 0, $55_1 = 0, $40_1 = 0, $41_1 = 0, $52_1 = 0; + $8_1 = global$0 - 48 | 0; + label$1 : { + $55_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($8_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $5_1; + HEAP32[($8_1 + 20 | 0) >> 2] = -1; + HEAP32[(HEAP32[($8_1 + 40 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[($8_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($8_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($8_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($8_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + label$6 : { + if (!((HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + $40_1 = HEAP32[($8_1 + 12 | 0) >> 2] | 0; + $41_1 = HEAP32[($8_1 + 36 | 0) >> 2] | 0; + $42_1 = HEAP32[($8_1 + 40 | 0) >> 2] | 0; + $43_1 = HEAP32[$42_1 >> 2] | 0; + HEAP32[$42_1 >> 2] = $43_1 + 1 | 0; + $306($40_1 | 0, $41_1 + $43_1 | 0 | 0, HEAP32[($8_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0) | 0; + break label$5; + } + break label$3; + } + HEAP32[($8_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $52_1 = 0; + label$7 : { + $56_1 = $8_1 + 48 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return $52_1 | 0; + } + + function $363($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $9_1 = 0, $34_1 = 0, $33_1 = 0, $30_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $33_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $9_1 = HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($9_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 12957 | 0, 0 | 0) | 0; + break label$3; + case 1: + case 2: + break label$4; + }; + } + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $306(HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + } + $30_1 = 0; + label$7 : { + $34_1 = $7_1 + 32 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $30_1 | 0; + } + + function $364($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $29_1 = 0, $42_1 = 0, $41_1 = 0, $27_1 = 0, $28_1 = 0, $38_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$7_1 >> 2] = HEAP32[(HEAP32[($7_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$7_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $27_1 = HEAP32[$7_1 >> 2] | 0; + $28_1 = HEAP32[($7_1 + 24 | 0) >> 2] | 0; + $29_1 = HEAP32[($7_1 + 8 | 0) >> 2] | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = $29_1 + 1 | 0; + $363($27_1 | 0, $28_1 + $29_1 | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $38_1 = 0; + label$6 : { + $42_1 = $7_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return $38_1 | 0; + } + + function $365($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $24_1 = 0, $23_1 = 0, $22_1 = 0, $8_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $22_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $8_1 = 0; + $11_1 = $7_1 + 8 | 0; + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $24_1 = 0; + i64toi32_i32$1 = $11_1; + HEAP32[$11_1 >> 2] = $24_1; + HEAP32[($11_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($11_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $11_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $24_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 8 | 0) >> 2] = 138; + $427(HEAP32[((HEAP32[($7_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $11_1 | 0) | 0; + label$3 : { + $23_1 = $7_1 + 48 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $8_1 | 0; + } + + function $366($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, i64toi32_i32$1 = 0, $9_1 = 0, i64toi32_i32$0 = 0, $73_1 = 0, $55_1 = 0, $72_1 = 0, $71_1 = 0, $52_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $71_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $71_1; + } + $9_1 = 0; + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $73_1 = 0; + i64toi32_i32$1 = $8_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $73_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 8 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 4 | 0) >> 2] = $9_1; + label$3 : { + if (!((HEAP32[((HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != ($9_1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + } + HEAP32[($8_1 + 16 | 0) >> 2] = 129; + HEAP32[($8_1 + 24 | 0) >> 2] = HEAP32[($8_1 + 4 | 0) >> 2] | 0; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $8_1 + 16 | 0 | 0) | 0; + label$4 : { + if (!((HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $306(HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + } + $52_1 = 0; + $55_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 130; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 92; + HEAP32[($8_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $55_1 | 0) | 0; + $441(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + label$5 : { + $72_1 = $8_1 + 64 | 0; + if ($72_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $72_1; + } + return $52_1 | 0; + } + + function $367($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, i64toi32_i32$1 = 0, $33_1 = 0, $9_1 = 0, i64toi32_i32$0 = 0, $94_1 = 0, $70_1 = 0, $93_1 = 0, $92_1 = 0, $67_1 = 0; + $8_1 = global$0 - 64 | 0; + label$1 : { + $92_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $92_1; + } + $9_1 = 0; + HEAP32[($8_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 40 | 0) >> 2] = $5_1; + i64toi32_i32$0 = 0; + $94_1 = 0; + i64toi32_i32$1 = $8_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $94_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $94_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($8_1 + 8 | 0) >> 2] = $9_1; + HEAP32[($8_1 + 4 | 0) >> 2] = $9_1; + HEAP32[$8_1 >> 2] = $9_1; + label$3 : { + if (!((HEAP32[((HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != ($9_1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$8_1 >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($8_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + } + $33_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 129; + HEAP32[($8_1 + 24 | 0) >> 2] = HEAP32[$8_1 >> 2] | 0; + HEAP32[($8_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $33_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 1; + HEAP32[($8_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $33_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 137; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $33_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 32; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $33_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 90; + HEAP32[($8_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $33_1 | 0) | 0; + label$4 : { + if (!((HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $306(HEAP32[((HEAP32[($8_1 + 60 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 40 | 0) >> 2] | 0 | 0) | 0; + } + $67_1 = 0; + $70_1 = $8_1 + 16 | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 130; + $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $70_1 | 0) | 0; + HEAP32[($8_1 + 16 | 0) >> 2] = 92; + HEAP32[($8_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $70_1 | 0) | 0; + HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = (HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) | 0; + $441(HEAP32[((HEAP32[($8_1 + 48 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($8_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + label$5 : { + $93_1 = $8_1 + 64 | 0; + if ($93_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $93_1; + } + return $67_1 | 0; + } + + function $368($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $39_1 = 0, $38_1 = 0, $35_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $38_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($8_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$8_1 >> 2] = HEAP32[(HEAP32[($8_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$8_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $367(HEAP32[$8_1 >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($8_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($8_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $35_1 = 0; + label$6 : { + $39_1 = $8_1 + 32 | 0; + if ($39_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + return $35_1 | 0; + } + + function $369($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $43_1 = 0, $42_1 = 0, $39_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $42_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + label$3 : { + if (!((HEAP32[(HEAP32[($8_1 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $368(HEAP32[(HEAP32[($8_1 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $366(HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($8_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $39_1 = 0; + label$5 : { + $43_1 = $8_1 + 32 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return $39_1 | 0; + } + + function $370($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $35_1 = 0, $14_1 = 0, $34_1 = 0, $33_1 = 0, $27_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $33_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$0 = 0; + $35_1 = 0; + i64toi32_i32$1 = $5_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $35_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $5_1; + HEAP32[$5_1 >> 2] = $35_1; + HEAP32[($5_1 + 4 | 0) >> 2] = i64toi32_i32$0; + $14_1 = (HEAP32[(HEAP32[($5_1 + 28 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($14_1 >>> 0 > 13 >>> 0) { + break label$3 + } + label$4 : { + switch ($14_1 | 0) { + case 1: + HEAP32[$5_1 >> 2] = 120; + break label$3; + case 2: + HEAP32[$5_1 >> 2] = 121; + break label$3; + case 3: + HEAP32[$5_1 >> 2] = 122; + break label$3; + case 4: + HEAP32[$5_1 >> 2] = 123; + break label$3; + default: + break label$4; + }; + } + HEAP32[(HEAP32[($5_1 + 20 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, 12976 | 0, 0 | 0); + } + $27_1 = 0; + $427(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $5_1 | 0) | 0; + label$9 : { + $34_1 = $5_1 + 32 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $27_1 | 0; + } + + function $371($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $370(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $29_1 = 0; + label$6 : { + $33_1 = $5_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $372($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $127_1 = 0, $102_1 = 0, $105_1 = 0, $126_1 = 0, $125_1 = 0; + $6_1 = global$0 - 64 | 0; + label$1 : { + $125_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $125_1; + } + $7_1 = 0; + HEAP32[($6_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 48 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $127_1 = 0; + i64toi32_i32$1 = $6_1 + 24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $127_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = i64toi32_i32$1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $127_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 20 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + } + HEAP32[($6_1 + 24 | 0) >> 2] = 119; + HEAP32[($6_1 + 32 | 0) >> 2] = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + HEAP32[($6_1 + 36 | 0) >> 2] = $279(HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 40 | 0) >> 2] = $279(HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 24 | 0 | 0) | 0; + HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $371(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $370(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + } + $102_1 = 0; + $105_1 = $6_1 + 24 | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = 130; + $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $105_1 | 0) | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = 92; + HEAP32[($6_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $105_1 | 0) | 0; + $441(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + $365(HEAP32[($6_1 + 60 | 0) >> 2] | 0 | 0, $102_1 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + $126_1 = $6_1 + 64 | 0; + if ($126_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $126_1; + } + return $102_1 | 0; + } + + function $373($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $183_1 = 0, $146_1 = 0, $174_1 = 0, $182_1 = 0, $181_1 = 0; + $6_1 = global$0 - 64 | 0; + label$1 : { + $181_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $181_1; + } + $7_1 = 0; + $10_1 = $6_1 + 24 | 0; + HEAP32[($6_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 48 | 0) >> 2] = $3_1; + i64toi32_i32$0 = 0; + $183_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $183_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $183_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 16 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 24 | 0) >> 2] = 117; + HEAP32[($6_1 + 20 | 0) >> 2] = $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 28 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $364(HEAP32[(HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = (HEAP32[($6_1 + 12 | 0) >> 2] | 0) + (HEAP32[(HEAP32[(HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $374(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = (HEAP32[($6_1 + 12 | 0) >> 2] | 0) + (HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $306(HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$6 + } + HEAP32[($6_1 + 24 | 0) >> 2] = 131; + HEAP32[($6_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $6_1 + 24 | 0 | 0) | 0; + } + $146_1 = $6_1 + 24 | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = 130; + $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $146_1 | 0) | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = 92; + HEAP32[($6_1 + 16 | 0) >> 2] = $427(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $146_1 | 0) | 0; + $441(HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + label$7 : { + if (!((HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $369(HEAP32[((HEAP32[($6_1 + 60 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 60 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + } + $174_1 = 0; + $365(HEAP32[($6_1 + 60 | 0) >> 2] | 0 | 0, $174_1 | 0, HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) | 0; + label$8 : { + $182_1 = $6_1 + 64 | 0; + if ($182_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $182_1; + } + return $174_1 | 0; + } + + function $374($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $10_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $64_1 = 0, $52_1 = 0, $63_1 = 0, $62_1 = 0, $59_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $62_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + $10_1 = $7_1 + 24 | 0; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + i64toi32_i32$0 = 0; + $64_1 = 0; + i64toi32_i32$1 = $10_1; + HEAP32[$10_1 >> 2] = $64_1; + HEAP32[($10_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($10_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $10_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $64_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 20 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 60 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 134; + HEAP32[($7_1 + 32 | 0) >> 2] = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 60 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $327(HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 56 | 0) >> 2] | 0) + (HEAP32[(HEAP32[($7_1 + 60 | 0) >> 2] | 0) >> 2] | 0) | 0 | 0, HEAP32[($7_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 24 | 0) >> 2] = 135; + $52_1 = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + HEAP32[($7_1 + 20 | 0) >> 2] = $52_1 + -1 | 0; + HEAP32[($7_1 + 32 | 0) >> 2] = $52_1; + $427(HEAP32[((HEAP32[($7_1 + 52 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $7_1 + 24 | 0 | 0) | 0; + } + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $59_1 = 0; + label$6 : { + $63_1 = $7_1 + 64 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $59_1 | 0; + } + + function $375($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $8_1 = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + default: + break label$3; + case 1: + $373(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $372(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $19_1 = 0; + label$7 : { + $23_1 = $6_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $376($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $29_1 = 0, $8_1 = 0, i64toi32_i32$1 = 0, $31_1 = 0, i64toi32_i32$0 = 0, $86_1 = 0, $85_1 = 0, $84_1 = 0, $81_1 = 0; + $7_1 = global$0 - 64 | 0; + label$1 : { + $84_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + $8_1 = 0; + HEAP32[($7_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 48 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 44 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $738(HEAP32[(HEAP32[($7_1 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 60 | 0) >> 2] | 0 | 0, $8_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0) != ($8_1 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[(HEAP32[($7_1 + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$4 + } + $29_1 = $7_1 + 16 | 0; + $31_1 = 92; + i64toi32_i32$0 = 0; + $86_1 = 0; + i64toi32_i32$1 = $29_1; + HEAP32[$29_1 >> 2] = $86_1; + HEAP32[($29_1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($29_1 + 16 | 0) >> 2] = 0; + i64toi32_i32$1 = $29_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $86_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($7_1 + 16 | 0) >> 2] = 126; + HEAP32[($7_1 + 12 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 136; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 125; + HEAP32[($7_1 + 24 | 0) >> 2] = 0; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 10; + HEAP32[($7_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 127; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $31_1; + HEAP32[($7_1 + 4 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 140; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $31_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = 139; + $427(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $29_1 | 0) | 0; + $441(HEAP32[((HEAP32[($7_1 + 48 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$3; + } + HEAP32[(HEAP32[($7_1 + 44 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[$7_1 >> 2] = HEAP32[($7_1 + 60 | 0) >> 2] | 0; + $435(0 | 0, 13e3 | 0, $7_1 | 0); + } + $81_1 = 0; + label$5 : { + $85_1 = $7_1 + 64 | 0; + if ($85_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $85_1; + } + return $81_1 | 0; + } + + function $377($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $25_1 = 0, $63_1 = 0, $62_1 = 0, $59_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $62_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + $6_1 = 0; + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $445() | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$3 + } + $364(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, $5_1 + 12 | 0 | 0) | 0; + } + $25_1 = $5_1 + 12 | 0; + $374(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, $25_1 | 0) | 0; + $376(HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, $25_1 | 0) | 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5_1 + 4 | 0) >> 2] = $448(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + if (!((HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $375(HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, $5_1 + 12 | 0 | 0) | 0; + } + continue label$5; + }; + } + $446(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0); + $59_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + label$7 : { + $63_1 = $5_1 + 32 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $59_1 | 0; + } + + function $378() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $449($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $379() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $450($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $380() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $451($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $381() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $452($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $382() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $453($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $383() { + var $2_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $466() | 0; + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $451($856(13024 | 0) | 0 | 0) | 0 | 0); + $467(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $451($856(13026 | 0) | 0 | 0) | 0 | 0); + $13_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $17_1 = $2_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $384() { + var $2_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $524() | 0; + $526(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $496($856(13024 | 0) | 0 | 0) | 0 | 0); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $385() { + var $2_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $524() | 0; + $526(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $496($856(13024 | 0) | 0 | 0) | 0 | 0); + $526(HEAP32[($2_1 + 12 | 0) >> 2] | 0 | 0, $496($856(13026 | 0) | 0 | 0) | 0 | 0); + $13_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $17_1 = $2_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $386($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $75_1 = 0, $92_1 = 0, $91_1 = 0, $88_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $91_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + $8_1 = 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 28 | 0) >> 2] = $8_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $8_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $8_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $8_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $8_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 24 | 0) >> 2] = $509(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, $449(0 | 0) | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($6_1 + 24 | 0) >> 2] = $509(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, $450(0 | 0) | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($6_1 + 24 | 0) >> 2] = $509(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, $451(0 | 0) | 0 | 0) | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($6_1 + 24 | 0) >> 2] = $509(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, $452(0 | 0) | 0 | 0) | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($6_1 + 24 | 0) >> 2] = $509(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, $453(0 | 0) | 0 | 0) | 0; + break label$11; + } + $977(13028 | 0, 0 | 0) | 0; + } + } + } + } + } + $75_1 = 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $485($75_1 | 0, $75_1 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $856($387(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0) | 0 | 0) | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = $482(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = $472(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $88_1 = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + label$13 : { + $92_1 = $6_1 + 48 | 0; + if ($92_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $92_1; + } + return $88_1 | 0; + } + + function $387($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $4_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ($4_1 >>> 0 > 20 >>> 0) { + break label$2 + } + label$3 : { + switch ($4_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 13066; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 13074; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 13078; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 13082; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 13086; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 13090; + break label$1; + case 6: + HEAP32[($3_1 + 12 | 0) >> 2] = 13094; + break label$1; + case 7: + HEAP32[($3_1 + 12 | 0) >> 2] = 13099; + break label$1; + case 8: + HEAP32[($3_1 + 12 | 0) >> 2] = 13103; + break label$1; + case 9: + HEAP32[($3_1 + 12 | 0) >> 2] = 13107; + break label$1; + case 10: + HEAP32[($3_1 + 12 | 0) >> 2] = 13112; + break label$1; + case 11: + HEAP32[($3_1 + 12 | 0) >> 2] = 13116; + break label$1; + case 12: + HEAP32[($3_1 + 12 | 0) >> 2] = 13120; + break label$1; + case 13: + HEAP32[($3_1 + 12 | 0) >> 2] = 13125; + break label$1; + case 14: + HEAP32[($3_1 + 12 | 0) >> 2] = 13131; + break label$1; + case 15: + HEAP32[($3_1 + 12 | 0) >> 2] = 13138; + break label$1; + case 16: + HEAP32[($3_1 + 12 | 0) >> 2] = 13145; + break label$1; + case 17: + HEAP32[($3_1 + 12 | 0) >> 2] = 13152; + break label$1; + case 18: + HEAP32[($3_1 + 12 | 0) >> 2] = 13159; + break label$1; + case 19: + HEAP32[($3_1 + 12 | 0) >> 2] = 13166; + break label$1; + case 20: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13173; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13066; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $388($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $378() | 0 | 0, $384() | 0 | 0, $449(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $389($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $379() | 0 | 0, $384() | 0 | 0, $450(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $390($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $380() | 0 | 0, $384() | 0 | 0, $451(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $391($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $383() | 0 | 0, $385() | 0 | 0, $451(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $392($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $383() | 0 | 0, $385() | 0 | 0, $450(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $393($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $381() | 0 | 0, $384() | 0 | 0, $450(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $394($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $379() | 0 | 0, $384() | 0 | 0, $452(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $395($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $11_1 = 0, $10_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $10_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $4_1 | 0, $4_1 | 0, $450($4_1 | 0) | 0 | 0) | 0; + label$3 : { + $11_1 = $3_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return $7_1 | 0; + } + + function $396($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $379() | 0 | 0, $384() | 0 | 0, $453(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $397($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $380() | 0 | 0, $384() | 0 | 0, $453(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $398($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $381() | 0 | 0, $384() | 0 | 0, $452(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $399($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $382() | 0 | 0, $384() | 0 | 0, $453(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $400($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $9_1 = $386(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $382() | 0 | 0, $384() | 0 | 0, $450(0 | 0) | 0 | 0) | 0; + label$3 : { + $13_1 = $3_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $401() { + return $390(1 | 0) | 0 | 0; + } + + function $402() { + return $390(2 | 0) | 0 | 0; + } + + function $403() { + return $390(3 | 0) | 0 | 0; + } + + function $404() { + return $390(4 | 0) | 0 | 0; + } + + function $405() { + return $390(5 | 0) | 0 | 0; + } + + function $406() { + return $390(6 | 0) | 0 | 0; + } + + function $407() { + return $391(7 | 0) | 0 | 0; + } + + function $408() { + return $396(8 | 0) | 0 | 0; + } + + function $409() { + return $397(9 | 0) | 0 | 0; + } + + function $410() { + return $393(10 | 0) | 0 | 0; + } + + function $411() { + return $394(11 | 0) | 0 | 0; + } + + function $412() { + return $395(12 | 0) | 0 | 0; + } + + function $413() { + return $388(14 | 0) | 0 | 0; + } + + function $414() { + return $389(13 | 0) | 0 | 0; + } + + function $415() { + return $390(15 | 0) | 0 | 0; + } + + function $416() { + return $398(16 | 0) | 0 | 0; + } + + function $417() { + return $399(17 | 0) | 0 | 0; + } + + function $418() { + return $400(18 | 0) | 0 | 0; + } + + function $419() { + return $388(19 | 0) | 0 | 0; + } + + function $420() { + return $392(20 | 0) | 0 | 0; + } + + function $421($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $47_1 = 0, $46_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $46_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $401() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $402() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $403() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $404() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $405() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $406() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $407() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $408() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $409() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $410() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $411() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $412() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $413() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $414() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $415() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $416() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $417() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $418() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $419() | 0 | 0); + $489(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0, $420() | 0 | 0); + label$3 : { + $47_1 = $3_1 + 16 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return; + } + + function $422($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $4_1 = 0, $7_1 = 0, $9_1 = 0, $13_1 = 0, $22_1 = 0, $21_1 = 0, $47_1 = 0, $67_1 = 0, $18_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $21_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + $7_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $47_1 = i64toi32_i32$0; + i64toi32_i32$0 = $7_1; + HEAP32[i64toi32_i32$0 >> 2] = $47_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $9_1 = 16; + HEAP32[(i64toi32_i32$0 + $9_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $9_1 | 0) >> 2] | 0; + $13_1 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $13_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $67_1 = i64toi32_i32$1; + i64toi32_i32$1 = $7_1 + $13_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $67_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $18_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $22_1 = $3_1 + 16 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $423($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $424() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $425(); + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $425() { + var $2_1 = 0, $3_1 = 0; + $2_1 = global$0 - 16 | 0; + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($2_1 + 12 | 0) >> 2] = $3_1; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($2_1 + 12 | 0) >> 2] | 0) >>> 0 < 141 >>> 0 & 1 | 0)) { + break label$1 + } + HEAP32[($2_1 + 12 | 0) >> 2] = (HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$2; + }; + } + return; + } + + function $426($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $423(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $427($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $7_1 = 0, $28_1 = 0, $43_1 = 0, $42_1 = 0, $39_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $42_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $6_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $7_1 = HEAP32[$6_1 >> 2] | 0; + HEAP32[$6_1 >> 2] = $7_1 + 1 | 0; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $7_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $422(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $28_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $28_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $28_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + $39_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$5 : { + $43_1 = $4_1 + 16 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return $39_1 | 0; + } + + function $428($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!((HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] = 11; + HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 28 | 0) >> 2] | 0; + } + } + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $429($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $6_1 = 0, $51_1 = 0, $56_1 = 0, $58_1 = 0, $62_1 = 0, $70_1 = 0, $69_1 = 0, $14_1 = 0, $50_1 = 0, $195_1 = 0, $215_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $69_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + $6_1 = 0; + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 12 | 0) >> 2] = $6_1; + HEAP32[(HEAP32[($5_1 + 20 | 0) >> 2] | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 28 | 0) >> 2] | 0) >> 2] | 0; + $14_1 = $963(Math_imul(HEAP32[(HEAP32[($5_1 + 28 | 0) >> 2] | 0) >> 2] | 0, 20) | 0) | 0; + HEAP32[(HEAP32[($5_1 + 24 | 0) >> 2] | 0) >> 2] = $14_1; + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 13181 | 0, 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$6 + } + $914(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, 13209 | 0, 0 | 0) | 0; + } + $50_1 = HEAP32[(HEAP32[($5_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + $51_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $51_1 + 1 | 0; + $56_1 = $50_1 + Math_imul($51_1, 20) | 0; + i64toi32_i32$2 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195_1 = i64toi32_i32$0; + i64toi32_i32$0 = $56_1; + HEAP32[i64toi32_i32$0 >> 2] = $195_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $58_1 = 16; + HEAP32[(i64toi32_i32$0 + $58_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $58_1 | 0) >> 2] | 0; + $62_1 = 8; + i64toi32_i32$2 = i64toi32_i32$2 + $62_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $215_1 = i64toi32_i32$1; + i64toi32_i32$1 = $56_1 + $62_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $215_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + continue label$4; + }; + } + label$7 : { + $70_1 = $5_1 + 32 | 0; + if ($70_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $70_1; + } + return; + } + + function $430($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $431() { + var $2_1 = 0, $4_1 = 0, $3_1 = 0, $21_1 = 0, $20_1 = 0, $7_1 = 0, $13_1 = 0, $15_1 = 0, $17_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $3_1 = 32; + $4_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(28 | 0) | 0; + $7_1 = $276($3_1 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + $13_1 = $424() | 0; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = $13_1; + $15_1 = $439($3_1 | 0) | 0; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = $15_1; + $17_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $21_1 = $2_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $432($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $60_1 = 0, $59_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $59_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $277(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $281(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $426(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $430(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $440(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$8 : { + $60_1 = $3_1 + 16 | 0; + if ($60_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + return; + } + + function $433($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $41_1 = 0, $40_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $280(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $428(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + $429(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0 | 0); + } + label$5 : { + $41_1 = $3_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $434($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[(0 + 25888 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + return; + } + + function $435($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $24_1 = 0, $23_1 = 0, $10_1 = 0, $12_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $23_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + $10_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + $12_1 = HEAP32[(0 + 25888 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $12_1; + $914($10_1 | 0, 13288 | 0, $5_1 | 0) | 0; + $889(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $24_1 = $5_1 + 32 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return; + } + + function $436($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $24_1 = 0, $23_1 = 0, $10_1 = 0, $12_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $23_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + $10_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + $12_1 = HEAP32[(0 + 25888 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $12_1; + $914($10_1 | 0, 13303 | 0, $5_1 | 0) | 0; + $889(HEAP32[(0 + 21084 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $24_1 = $5_1 + 32 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return; + } + + function $437($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0; + $5_1 = global$0 - 16 | 0; + HEAP32[($5_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $1_1; + HEAP32[$5_1 >> 2] = $2_1; + label$1 : { + label$2 : { + if (!((HEAP32[$5_1 >> 2] | 0) >>> 0 < (HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$2 + } + HEAP32[($5_1 + 12 | 0) >> 2] = -1; + break label$1; + } + label$3 : { + if (!((HEAP32[$5_1 >> 2] | 0) >>> 0 >= (HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = 1; + break label$1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = 0; + } + return HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $438($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $76_1 = 0, $75_1 = 0, $72_1 = 0; + $5_1 = global$0 - 48 | 0; + label$1 : { + $75_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $75_1; + } + $6_1 = 0; + HEAP32[($5_1 + 40 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 36 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 32 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 28 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 24 | 0) >> 2] = (HEAP32[($5_1 + 36 | 0) >> 2] | 0) - 1 | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = $6_1; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($5_1 + 40 | 0) >> 2] | 0 | 0) == ($6_1 | 0) & 1 | 0) { + break label$5 + } + if (HEAP32[($5_1 + 36 | 0) >> 2] | 0) { + break label$4 + } + } + HEAP32[($5_1 + 44 | 0) >> 2] = 0; + break label$3; + } + label$6 : { + label$7 : while (1) { + if (!((HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0) <= (HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5_1 + 16 | 0) >> 2] = (HEAP32[($5_1 + 28 | 0) >> 2] | 0) + (((HEAP32[($5_1 + 24 | 0) >> 2] | 0) - (HEAP32[($5_1 + 28 | 0) >> 2] | 0) | 0 | 0) / (2 | 0) | 0) | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $437((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0 | 0, ((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0) + 8 | 0 | 0, HEAP32[($5_1 + 32 | 0) >> 2] | 0 | 0) | 0; + label$8 : { + label$9 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) < (0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($5_1 + 24 | 0) >> 2] = (HEAP32[($5_1 + 16 | 0) >> 2] | 0) - 1 | 0; + break label$8; + } + label$10 : { + label$11 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($5_1 + 28 | 0) >> 2] = (HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 1 | 0; + break label$10; + } + HEAP32[($5_1 + 20 | 0) >> 2] = (HEAP32[($5_1 + 40 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 16 | 0) >> 2] | 0) << 3 | 0) | 0; + break label$6; + } + } + continue label$7; + }; + } + HEAP32[($5_1 + 44 | 0) >> 2] = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + } + $72_1 = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + label$12 : { + $76_1 = $5_1 + 48 | 0; + if ($76_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $76_1; + } + return $72_1 | 0; + } + + function $439($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $24_1 = 0, $23_1 = 0, $14_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + $4_1 = -1; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + $14_1 = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $14_1; + HEAP32[(HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] = $4_1; + HEAP32[((HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + $20_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $24_1 = $3_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $440($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $441($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $39_1 = 0, $54_1 = 0, $69_1 = 0, $68_1 = 0, $64_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $68_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + $6_1 = -1; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + ((HEAP32[$5_1 >> 2] | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[$5_1 >> 2] | 0) + 1 | 0) << 3 | 0) | 0) >> 2] = $6_1; + HEAP32[(((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + (((HEAP32[$5_1 >> 2] | 0) + 1 | 0) << 3 | 0) | 0) + 4 | 0) >> 2] = $6_1; + $39_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($39_1 + 4 | 0) >> 2] = (HEAP32[($39_1 + 4 | 0) >> 2] | 0) + 1 | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 >= ((HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0) - 1 | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $54_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[$54_1 >> 2] = (HEAP32[$54_1 >> 2] | 0) << 1 | 0; + $64_1 = $965(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0) << 3 | 0 | 0) | 0; + HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $64_1; + } + label$4 : { + $69_1 = $5_1 + 16 | 0; + if ($69_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + return; + } + + function $442($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $438(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $13_1 = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + $17_1 = $4_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $443($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $444($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $445() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $446($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $444(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $447($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $443(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $448($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $29_1 = 0, $49_1 = 0, $48_1 = 0, $45_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $48_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + $4_1 = 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != ($4_1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$4 : { + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$4; + } + HEAP32[((HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + } + $29_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[$29_1 >> 2] = (HEAP32[$29_1 >> 2] | 0) + -1 | 0; + } + label$6 : { + label$7 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($3_1 + 12 | 0) >> 2] = 0; + break label$6; + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + $444(HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[$3_1 >> 2] | 0; + } + $45_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + label$8 : { + $49_1 = $3_1 + 16 | 0; + if ($49_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $49_1; + } + return $45_1 | 0; + } + + function $449($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $450($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $451($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $452($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 4; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $453($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 5; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $454($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 6; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $17_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $455($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 7; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + label$3 : { + if (!((HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$3 + } + $456(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[$5_1 >> 2] | 0 | 0); + } + $29_1 = HEAP32[$5_1 >> 2] | 0; + label$4 : { + $33_1 = $5_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $456($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $24_1 = 0; + $4_1 = global$0 - 32 | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $24_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $24_1 + 1 | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $24_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $457($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $34_1 = 0, $33_1 = 0, $18_1 = 0, $30_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 8; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] = $5_1; + $18_1 = $450($5_1 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = $18_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != ($5_1 | 0) & 1 | 0)) { + break label$3 + } + $683(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + } + $30_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$4 : { + $34_1 = $4_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $30_1 | 0; + } + + function $458($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 9; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $16_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $20_1 = $3_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $459($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $34_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 10; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + label$3 : { + if (!((HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$3 + } + $684(HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[$5_1 >> 2] | 0 | 0); + } + $31_1 = HEAP32[$5_1 >> 2] | 0; + label$4 : { + $35_1 = $5_1 + 16 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $460($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 13; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] = $5_1; + $19_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $23_1 = $4_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $461($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 14; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = -1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + $21_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $25_1 = $5_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $462($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $74_1 = 0, $73_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $73_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $73_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $17_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$4 : { + if ($17_1 >>> 0 > 13 >>> 0) { + break label$4 + } + label$5 : { + switch ($17_1 | 0) { + default: + break label$4; + case 6: + label$10 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $463(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + break label$4; + case 7: + case 9: + label$11 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $681(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + break label$4; + case 11: + case 12: + label$12 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + break label$4; + case 13: + break label$5; + }; + } + label$13 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $463(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + } + label$14 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$15 : { + $74_1 = $3_1 + 16 | 0; + if ($74_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $74_1; + } + return; + } + + function $463($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $464(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $464($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $462(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $465($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $466() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $467($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $465(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $468($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $6_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $6_1 = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + -1 | 0; + label$1 : { + label$2 : { + if ($6_1 >>> 0 > 13 >>> 0) { + break label$2 + } + label$3 : { + switch ($6_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 13320; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 13331; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 13341; + break label$1; + case 11: + HEAP32[($3_1 + 12 | 0) >> 2] = 13353; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 13368; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 13379; + break label$1; + case 12: + HEAP32[($3_1 + 12 | 0) >> 2] = 13392; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 13405; + break label$1; + case 8: + HEAP32[($3_1 + 12 | 0) >> 2] = 13415; + break label$1; + case 6: + HEAP32[($3_1 + 12 | 0) >> 2] = 13431; + break label$1; + case 7: + HEAP32[($3_1 + 12 | 0) >> 2] = 13443; + break label$1; + case 9: + HEAP32[($3_1 + 12 | 0) >> 2] = 13455; + break label$1; + case 10: + HEAP32[($3_1 + 12 | 0) >> 2] = 13467; + break label$1; + case 13: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13483; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13494; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $469($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $19_1 = 0, $18_1 = 0, $13_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $6_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $13_1 = $726(32 | 0, $6_1 | 0, $6_1 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $13_1; + $15_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $19_1 = $4_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $470($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $463(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $727(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $471($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $61_1 = 0, $60_1 = 0, $57_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $60_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[$4_1 >> 2] = $5_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != ($5_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = $738(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$4 : { + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[$4_1 >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$4; + } + label$6 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] | 0 | 0) != (1 | 0) & 1 | 0)) { + break label$6 + } + } + } + $57_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$7 : { + $61_1 = $4_1 + 16 | 0; + if ($61_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + return $57_1 | 0; + } + + function $472($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = $473(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + label$3 : { + $12_1 = $4_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $473($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $26_1 = 0, $25_1 = 0, $22_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $25_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(36 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 28 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 32 | 0) >> 2] = $6_1; + $22_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $26_1 = $5_1 + 16 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $22_1 | 0; + } + + function $474($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $22_1 = 0, $21_1 = 0, $18_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $21_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(36 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 28 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + $18_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $22_1 = $4_1 + 16 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $475($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $47_1 = 0, $46_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $46_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $476(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $477(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $838(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $727(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$7 : { + $47_1 = $3_1 + 16 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return; + } + + function $476($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $718(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $478(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $477($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $778(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $782(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $478($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $486(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $479($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $27_1 = 0, $26_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $26_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $727(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + label$5 : { + $27_1 = $3_1 + 16 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return; + } + + function $480($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $15_1 = 0, $24_1 = 0, $23_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $481(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $15_1 = HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if ($15_1 >>> 0 > 2 >>> 0) { + break label$4 + } + label$5 : { + switch ($15_1 | 0) { + default: + break label$4; + case 1: + $475(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + break label$4; + case 2: + break label$5; + }; + } + $479(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$8 : { + $24_1 = $3_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return; + } + + function $481($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $463(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $482($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $14_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $18_1 = $5_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $483($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $11_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $15_1 = $4_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $484($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $19_1 = 0, $18_1 = 0, $13_1 = 0, $15_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + $13_1 = $506(HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = $13_1; + $15_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $19_1 = $5_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $485($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $14_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $18_1 = $5_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $486($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $480(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $487($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $488() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $489($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $487(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $490($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $491($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $492($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP8[($3_1 + 15 | 0) >> 0] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 4; + HEAP8[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 0] = HEAPU8[($3_1 + 15 | 0) >> 0] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $493($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAPF32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 3; + HEAPF32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[($3_1 + 12 | 0) >> 2]); + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $494($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 5; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $495($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 6; + HEAP8[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 0] = 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 48 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 52 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + $21_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $25_1 = $4_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $496($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 7; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $497() { + var $2_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = 46; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 2; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + $11_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $15_1 = $2_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $498($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $499($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $22_1 = 0, $21_1 = 0, $18_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $21_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 32 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 44 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $18_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $22_1 = $5_1 + 16 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $500($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($6_1 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + $20_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$3 : { + $24_1 = $6_1 + 32 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $501($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 25; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $15_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $19_1 = $3_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $502($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 26; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $503($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 30; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $504($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $19_1 = 0, $18_1 = 0, $11_1 = 0, $15_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 31; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + $11_1 = $450($4_1 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = $11_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $15_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $19_1 = $3_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $505($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 32; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $506($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 33; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $507($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 29; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $508($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 27; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $509($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 41; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 32 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $19_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $23_1 = $5_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $510($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 34; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $511($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 35; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $512($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 36; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $513($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $26_1 = 0, $25_1 = 0, $22_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = 37; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $7_1; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($6_1 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + $22_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$3 : { + $26_1 = $6_1 + 32 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $22_1 | 0; + } + + function $514($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $22_1 = 0, $21_1 = 0, $16_1 = 0, $18_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $21_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 38; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 32 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = $6_1; + $16_1 = $547(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 36 | 0) >> 2] = $16_1; + $18_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $22_1 = $5_1 + 16 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $515($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 39; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $516($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 40; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $15_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $19_1 = $4_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $517($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 44; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $518($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $21_1 = 0, $20_1 = 0, $17_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 45; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + $17_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $21_1 = $4_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $519($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $4_1 = 0, $10_1 = 0, $11_1 = 0, $12_1 = 0, $15_1 = 0, $18_1 = 0, $21_1 = 0, $24_1 = 0, $27_1 = 0, $46_1 = 0, $45_1 = 0, $78_1 = 0, $88_1 = 0, $98_1 = 0, $108_1 = 0, $118_1 = 0, $128_1 = 0, $138_1 = 0, $42_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $45_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $45_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(56 | 0) | 0; + $10_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $11_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + i64toi32_i32$2 = $11_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $78_1 = i64toi32_i32$0; + i64toi32_i32$0 = $10_1; + HEAP32[i64toi32_i32$0 >> 2] = $78_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $12_1 = 48; + i64toi32_i32$2 = i64toi32_i32$2 + $12_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $88_1 = i64toi32_i32$1; + i64toi32_i32$1 = $10_1 + $12_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $88_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $15_1 = 40; + i64toi32_i32$2 = $11_1 + $15_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $98_1 = i64toi32_i32$0; + i64toi32_i32$0 = $10_1 + $15_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $98_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $18_1 = 32; + i64toi32_i32$2 = $11_1 + $18_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $108_1 = i64toi32_i32$1; + i64toi32_i32$1 = $10_1 + $18_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $108_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $21_1 = 24; + i64toi32_i32$2 = $11_1 + $21_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $118_1 = i64toi32_i32$0; + i64toi32_i32$0 = $10_1 + $21_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $118_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $24_1 = 16; + i64toi32_i32$2 = $11_1 + $24_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $128_1 = i64toi32_i32$1; + i64toi32_i32$1 = $10_1 + $24_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $128_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $27_1 = 8; + i64toi32_i32$2 = $11_1 + $27_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $138_1 = i64toi32_i32$0; + i64toi32_i32$0 = $10_1 + $27_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $138_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = (HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (42 | 0) & 1 | 0 ? 5 : 4; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $42_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $46_1 = $4_1 + 16 | 0; + if ($46_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + return $42_1 | 0; + } + + function $520($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $7_1 = 0, $338_1 = 0, $337_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $337_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $337_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($7_1 >>> 0 > 45 >>> 0) { + break label$3 + } + label$4 : { + switch ($7_1 | 0) { + default: + break label$3; + case 4: + label$30 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 5: + label$31 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$31 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + label$32 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$32 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0); + } + break label$3; + case 6: + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + break label$3; + case 7: + case 21: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + break label$3; + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + break label$3; + case 22: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + break label$3; + case 23: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0); + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + break label$3; + case 24: + label$33 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$33 + } + $689(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 25: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + break label$3; + case 29: + label$34 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$34 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$35 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$35 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 30: + label$36 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$36 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$37 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$37 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 31: + label$38 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$38 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$39 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$39 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 26: + case 27: + label$40 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$41 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$41 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 28: + label$42 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$42 + } + $480(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 32: + label$43 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$43 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 40: + label$44 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$44 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + label$45 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$45 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0); + } + break label$3; + case 33: + label$46 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$46 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$47 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$47 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 34: + case 35: + label$48 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$48 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$49 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$49 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 36: + label$50 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$50 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$51 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$51 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + label$52 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$52 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0); + } + label$53 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$53 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0); + } + break label$3; + case 37: + label$54 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$54 + } + $548(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 38: + label$55 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$55 + } + $745(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + break label$3; + case 39: + label$56 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$56 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + label$57 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$57 + } + $542(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + break label$3; + case 41: + case 42: + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + break label$3; + case 43: + $802(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + break label$3; + case 44: + break label$4; + }; + } + label$58 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$58 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0); + } + label$59 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$59 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + } + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$60 : { + $338_1 = $3_1 + 16 | 0; + if ($338_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $338_1; + } + return; + } + + function $521($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $522(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $522($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $520(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $523($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $524() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $525($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $523(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $526($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $523(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $527($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $6_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $6_1 = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + -1 | 0; + label$1 : { + label$2 : { + if ($6_1 >>> 0 > 45 >>> 0) { + break label$2 + } + label$3 : { + switch ($6_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 13504; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 13509; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 13513; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 13519; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 13524; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 13531; + break label$1; + case 6: + HEAP32[($3_1 + 12 | 0) >> 2] = 13540; + break label$1; + case 7: + HEAP32[($3_1 + 12 | 0) >> 2] = 13543; + break label$1; + case 8: + HEAP32[($3_1 + 12 | 0) >> 2] = 13547; + break label$1; + case 9: + HEAP32[($3_1 + 12 | 0) >> 2] = 13551; + break label$1; + case 10: + HEAP32[($3_1 + 12 | 0) >> 2] = 13555; + break label$1; + case 11: + HEAP32[($3_1 + 12 | 0) >> 2] = 13559; + break label$1; + case 12: + HEAP32[($3_1 + 12 | 0) >> 2] = 13563; + break label$1; + case 13: + HEAP32[($3_1 + 12 | 0) >> 2] = 13567; + break label$1; + case 14: + HEAP32[($3_1 + 12 | 0) >> 2] = 13570; + break label$1; + case 15: + HEAP32[($3_1 + 12 | 0) >> 2] = 13573; + break label$1; + case 16: + HEAP32[($3_1 + 12 | 0) >> 2] = 13577; + break label$1; + case 17: + HEAP32[($3_1 + 12 | 0) >> 2] = 13581; + break label$1; + case 18: + HEAP32[($3_1 + 12 | 0) >> 2] = 13584; + break label$1; + case 19: + HEAP32[($3_1 + 12 | 0) >> 2] = 13588; + break label$1; + case 20: + HEAP32[($3_1 + 12 | 0) >> 2] = 13592; + break label$1; + case 21: + HEAP32[($3_1 + 12 | 0) >> 2] = 13595; + break label$1; + case 22: + HEAP32[($3_1 + 12 | 0) >> 2] = 13599; + break label$1; + case 23: + HEAP32[($3_1 + 12 | 0) >> 2] = 13603; + break label$1; + case 24: + HEAP32[($3_1 + 12 | 0) >> 2] = 13608; + break label$1; + case 25: + HEAP32[($3_1 + 12 | 0) >> 2] = 13614; + break label$1; + case 26: + HEAP32[($3_1 + 12 | 0) >> 2] = 13626; + break label$1; + case 27: + HEAP32[($3_1 + 12 | 0) >> 2] = 13631; + break label$1; + case 28: + HEAP32[($3_1 + 12 | 0) >> 2] = 13641; + break label$1; + case 29: + HEAP32[($3_1 + 12 | 0) >> 2] = 13646; + break label$1; + case 30: + HEAP32[($3_1 + 12 | 0) >> 2] = 13656; + break label$1; + case 31: + HEAP32[($3_1 + 12 | 0) >> 2] = 13662; + break label$1; + case 32: + HEAP32[($3_1 + 12 | 0) >> 2] = 13668; + break label$1; + case 33: + HEAP32[($3_1 + 12 | 0) >> 2] = 13672; + break label$1; + case 34: + HEAP32[($3_1 + 12 | 0) >> 2] = 13676; + break label$1; + case 35: + HEAP32[($3_1 + 12 | 0) >> 2] = 13682; + break label$1; + case 36: + HEAP32[($3_1 + 12 | 0) >> 2] = 13691; + break label$1; + case 37: + HEAP32[($3_1 + 12 | 0) >> 2] = 13695; + break label$1; + case 38: + HEAP32[($3_1 + 12 | 0) >> 2] = 13702; + break label$1; + case 39: + HEAP32[($3_1 + 12 | 0) >> 2] = 13709; + break label$1; + case 40: + HEAP32[($3_1 + 12 | 0) >> 2] = 13715; + break label$1; + case 41: + HEAP32[($3_1 + 12 | 0) >> 2] = 13724; + break label$1; + case 42: + HEAP32[($3_1 + 12 | 0) >> 2] = 13737; + break label$1; + case 43: + HEAP32[($3_1 + 12 | 0) >> 2] = 13750; + break label$1; + case 44: + HEAP32[($3_1 + 12 | 0) >> 2] = 13759; + break label$1; + case 45: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13764; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13768; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $528($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $4_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ($4_1 >>> 0 > 16 >>> 0) { + break label$2 + } + label$3 : { + switch ($4_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 13768; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 13776; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 13764; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 13504; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 13509; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 13513; + break label$1; + case 14: + HEAP32[($3_1 + 12 | 0) >> 2] = 13782; + break label$1; + case 8: + HEAP32[($3_1 + 12 | 0) >> 2] = 13519; + break label$1; + case 9: + HEAP32[($3_1 + 12 | 0) >> 2] = 13524; + break label$1; + case 10: + HEAP32[($3_1 + 12 | 0) >> 2] = 13608; + break label$1; + case 11: + HEAP32[($3_1 + 12 | 0) >> 2] = 13656; + break label$1; + case 12: + HEAP32[($3_1 + 12 | 0) >> 2] = 13662; + break label$1; + case 13: + HEAP32[($3_1 + 12 | 0) >> 2] = 13641; + break label$1; + case 15: + HEAP32[($3_1 + 12 | 0) >> 2] = 13787; + break label$1; + case 6: + case 7: + break label$2; + case 16: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13794; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 13804; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $529($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $5_1 = 0, $8_1 = 0, $9_1 = 0, $18_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = 5381; + label$1 : { + label$2 : while (1) { + $5_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $5_1 + 1 | 0; + $8_1 = HEAPU8[$5_1 >> 0] | 0; + HEAP8[($3_1 + 11 | 0) >> 0] = $8_1; + $9_1 = 24; + if (!(($8_1 << $9_1 | 0) >> $9_1 | 0)) { + break label$1 + } + $18_1 = 24; + HEAP32[($3_1 + 4 | 0) >> 2] = (((HEAP32[($3_1 + 4 | 0) >> 2] | 0) << 5 | 0) + (HEAP32[($3_1 + 4 | 0) >> 2] | 0) | 0) + (((HEAPU8[($3_1 + 11 | 0) >> 0] | 0) << $18_1 | 0) >> $18_1 | 0) | 0; + continue label$2; + }; + } + return HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0; + } + + function $530($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $15_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $19_1 = $4_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $531($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $532($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + $19_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $23_1 = $5_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $533($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $48_1 = 0, $47_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $727(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $790(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + $48_1 = $3_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $534($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + $15_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $19_1 = $4_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $535($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + $15_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $19_1 = $4_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $536($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $16_1 = 0, $15_1 = 0, $12_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $15_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = 0; + $12_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $16_1 = $3_1 + 16 | 0; + if ($16_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + return $12_1 | 0; + } + + function $537($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $7_1 = 0, $64_1 = 0, $63_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $63_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($7_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($7_1 | 0) { + default: + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $531(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + break label$3; + case 1: + label$9 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $533(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$10 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + break label$3; + case 2: + break label$4; + }; + } + label$11 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$12 : { + $64_1 = $3_1 + 16 | 0; + if ($64_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + return; + } + + function $538($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = 0; + $8_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$1 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$1 + } + label$2 : { + switch ($8_1 | 0) { + default: + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$1; + case 1: + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$1; + case 2: + break label$2; + }; + } + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + } + return HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0; + } + + function $539($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $540($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $537(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $541() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $542($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $540(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $543($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $539(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $544($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $21_1 = 0, $20_1 = 0, $15_1 = 0, $17_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $6_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $15_1 = $726(32 | 0, $6_1 | 0, $6_1 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $15_1; + $17_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $21_1 = $4_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $545($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $770(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $727(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $546($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $61_1 = 0, $60_1 = 0, $57_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $60_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[$4_1 >> 2] = $5_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != ($5_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = $738(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$4 : { + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[$4_1 >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$4; + } + label$6 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[(HEAP32[$4_1 >> 2] | 0) >> 2] | 0 | 0) != (8 | 0) & 1 | 0)) { + break label$6 + } + } + } + $57_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$7 : { + $61_1 = $4_1 + 16 | 0; + if ($61_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + return $57_1 | 0; + } + + function $547($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $23_1 = 0, $22_1 = 0, $10_1 = 0, $19_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(28 | 0) | 0; + $10_1 = $496(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = $10_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 20 | 0) >> 2] = $6_1; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 24 | 0) >> 2] = $6_1; + $19_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $23_1 = $5_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $548($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $48_1 = 0, $47_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $727(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + $48_1 = $3_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $549($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $26_1 = 0, $42_1 = 0, $41_1 = 0, $32_1 = 0, $34_1 = 0, $38_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$3 + } + $26_1 = 24; + if (((HEAPU8[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 36 | 0) >> 0] | 0) << $26_1 | 0) >> $26_1 | 0) { + break label$3 + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $32_1 = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $34_1 = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = $34_1; + $435($32_1 | 0, 13823 | 0, $6_1 | 0); + } + $38_1 = 0; + label$4 : { + $42_1 = $6_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return $38_1 | 0; + } + + function $550($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $8_1 = 0, $23_1 = 0, $82_1 = 0, $239_1 = 0, $310_1 = 0, $320_1 = 0, $361_1 = 0, $406_1 = 0, $451_1 = 0, $535_1 = 0, $534_1 = 0, $90_1 = 0, $247_1 = 0, $318_1 = 0, $333_1 = 0, $369_1 = 0, $414_1 = 0, $459_1 = 0, $499_1 = 0, $516_1 = 0, $525_1 = 0, $531_1 = 0; + $7_1 = global$0 - 144 | 0; + label$1 : { + $534_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $534_1; + } + $8_1 = 0; + HEAP32[($7_1 + 140 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 136 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 132 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 128 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 124 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 120 | 0) >> 2] = $8_1; + HEAP32[($7_1 + 120 | 0) >> 2] = $738(HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($7_1 + 120 | 0) >> 2] | 0 | 0) != ($8_1 | 0) & 1 | 0)) { + break label$4 + } + $23_1 = (HEAP32[(HEAP32[($7_1 + 120 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$5 : { + if ($23_1 >>> 0 > 8 >>> 0) { + break label$5 + } + label$6 : { + switch ($23_1 | 0) { + case 8: + label$15 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($7_1 + 116 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$16 : { + if (!((HEAP32[($7_1 + 116 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + label$17 : { + label$18 : { + if (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) { + break label$18 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 6; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 116 | 0) >> 2] | 0; + break label$17; + } + label$19 : { + label$20 : { + if (!(((HEAP32[($7_1 + 140 | 0) >> 2] | 0) - 1 | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0) == (HEAP32[($7_1 + 116 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 8; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 116 | 0) >> 2] | 0; + break label$19; + } + label$21 : { + label$22 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 7; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 116 | 0) >> 2] | 0; + break label$21; + } + $82_1 = 0; + HEAP32[($7_1 + 112 | 0) >> 2] = $82_1; + label$23 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($82_1 | 0) & 1 | 0)) { + break label$23 + } + $90_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $90_1; + } + HEAP32[($7_1 + 112 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 112 | 0) >> 2] | 0) + 8 | 0) >> 2] = 6; + HEAP32[((HEAP32[($7_1 + 112 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 116 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 2; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 112 | 0) >> 2] | 0; + } + } + } + } + } + break label$5; + default: + label$24 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($7_1 + 108 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$25 : { + label$26 : { + label$27 : { + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0) { + break label$27 + } + if ((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0) { + break label$27 + } + if (!((HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$26 + } + } + label$28 : { + label$29 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 1; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 108 | 0) >> 2] | 0; + break label$28; + } + $239_1 = 0; + HEAP32[($7_1 + 104 | 0) >> 2] = $239_1; + label$30 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($239_1 | 0) & 1 | 0)) { + break label$30 + } + $247_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $247_1; + } + HEAP32[($7_1 + 104 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] = 1; + HEAP32[((HEAP32[($7_1 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 108 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 2; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 104 | 0) >> 2] | 0; + } + break label$25; + } + HEAP32[$7_1 >> 2] = $468(HEAP32[(HEAP32[($7_1 + 108 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $977(13864 | 0, $7_1 | 0) | 0; + } + } + break label$5; + case 1: + label$31 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$31 + } + HEAP32[($7_1 + 100 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$32 : { + label$33 : { + label$34 : { + if ((HEAP32[(HEAP32[($7_1 + 100 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$34 + } + if (!((HEAP32[(HEAP32[($7_1 + 100 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$33 + } + } + label$35 : { + label$36 : { + if (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) { + break label$36 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 11; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 100 | 0) >> 2] | 0; + break label$35; + } + label$37 : { + label$38 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$38 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 3; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 100 | 0) >> 2] | 0; + break label$37; + } + $310_1 = 0; + HEAP32[($7_1 + 96 | 0) >> 2] = $310_1; + label$39 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($310_1 | 0) & 1 | 0)) { + break label$39 + } + $318_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $318_1; + } + $320_1 = 2; + HEAP32[($7_1 + 96 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 96 | 0) >> 2] | 0) + 8 | 0) >> 2] = $320_1; + HEAP32[((HEAP32[($7_1 + 96 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 100 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = $320_1; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 96 | 0) >> 2] | 0; + } + } + break label$32; + } + $333_1 = HEAP32[(0 + 21084 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 100 | 0) >> 2] | 0) >> 2] | 0; + $914($333_1 | 0, 13887 | 0, $7_1 + 16 | 0 | 0) | 0; + } + } + break label$5; + case 2: + label$40 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + HEAP32[($7_1 + 92 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$41 : { + label$42 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$42 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 4; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 92 | 0) >> 2] | 0; + break label$41; + } + $361_1 = 0; + HEAP32[($7_1 + 88 | 0) >> 2] = $361_1; + label$43 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($361_1 | 0) & 1 | 0)) { + break label$43 + } + $369_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $369_1; + } + HEAP32[($7_1 + 88 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 88 | 0) >> 2] | 0) + 8 | 0) >> 2] = 3; + HEAP32[((HEAP32[($7_1 + 88 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 92 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 2; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 88 | 0) >> 2] | 0; + } + } + break label$5; + case 3: + label$44 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$44 + } + HEAP32[($7_1 + 84 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$45 : { + label$46 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$46 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 5; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 84 | 0) >> 2] | 0; + break label$45; + } + $406_1 = 0; + HEAP32[($7_1 + 80 | 0) >> 2] = $406_1; + label$47 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($406_1 | 0) & 1 | 0)) { + break label$47 + } + $414_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $414_1; + } + HEAP32[($7_1 + 80 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 80 | 0) >> 2] | 0) + 8 | 0) >> 2] = 4; + HEAP32[((HEAP32[($7_1 + 80 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 84 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 2; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 80 | 0) >> 2] | 0; + } + } + break label$5; + case 4: + label$48 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$48 + } + HEAP32[($7_1 + 76 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$49 : { + label$50 : { + if (!((HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$50 + } + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + break label$49; + } + $451_1 = 0; + HEAP32[($7_1 + 72 | 0) >> 2] = $451_1; + label$51 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($451_1 | 0) & 1 | 0)) { + break label$51 + } + $459_1 = $837() | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] = $459_1; + } + HEAP32[($7_1 + 72 | 0) >> 2] = $839(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 8 | 0) >> 2] = 7; + HEAP32[((HEAP32[($7_1 + 72 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 2; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 72 | 0) >> 2] | 0; + } + } + break label$5; + case 5: + label$52 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$52 + } + HEAP32[($7_1 + 68 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 40 | 0) >> 2] = 9; + HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + } + break label$5; + case 6: + label$53 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$53 + } + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = 1; + $499_1 = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($499_1 | 0, 13909 | 0, $7_1 + 32 | 0 | 0); + } + break label$5; + case 7: + break label$6; + }; + } + label$54 : { + if (!((HEAP32[((HEAP32[($7_1 + 120 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$54 + } + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = 1; + $516_1 = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($516_1 | 0, 13954 | 0, $7_1 + 48 | 0 | 0); + } + } + break label$3; + } + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = 1; + $525_1 = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($525_1 | 0, 14005 | 0, $7_1 + 64 | 0 | 0); + } + $531_1 = 0; + label$55 : { + $535_1 = $7_1 + 144 | 0; + if ($535_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $535_1; + } + return $531_1 | 0; + } + + function $551($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$2 = 0, $34_1 = 0, $33_1 = 0, $13_1 = 0, $15_1 = 0, i64toi32_i32$1 = 0, $96_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == ($5_1 | 0) & 1 | 0)) { + break label$3 + } + $13_1 = $837() | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] = $13_1; + } + $15_1 = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $839(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + i64toi32_i32$2 = (HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $96_1 = i64toi32_i32$0; + i64toi32_i32$0 = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $96_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = 5; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$4 : { + $34_1 = $4_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $15_1 | 0; + } + + function $552($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $237_1 = 0, $236_1 = 0, $233_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $236_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $236_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $738(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($6_1 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 1; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 2; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 3; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 4; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 7; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 16 | 0) >> 2] = 6; + HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$15; + } + label$17 : { + label$18 : { + label$19 : { + if ((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0) { + break label$19 + } + if ((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0) { + break label$19 + } + if (!((HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$18 + } + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[$6_1 >> 2] = $725(HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $435(0 | 0, 14060 | 0, $6_1 | 0); + break label$17; + } + $551(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + } + } + } + } + } + } + break label$3; + } + $551(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + $233_1 = 0; + label$20 : { + $237_1 = $6_1 + 32 | 0; + if ($237_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $237_1; + } + return $233_1 | 0; + } + + function $553($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $17_1 = 0, $51_1 = 0, $50_1 = 0, $47_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $50_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $17_1 = (HEAP32[(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($17_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($17_1 | 0) { + default: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $47_1 = 0; + label$6 : { + $51_1 = $6_1 + 16 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return $47_1 | 0; + } + + function $554($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $301_1 = 0, $300_1 = 0, $297_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $300_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $300_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = (HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($10_1 >>> 0 > 45 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + break label$3; + case 5: + $549(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 7: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 19: + case 20: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 21: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 22: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 23: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 24: + label$30 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + $555(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 25: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$31 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$31 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 29: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 30: + label$32 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$32 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 31: + label$33 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$33 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$34 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$34 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 26: + case 27: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$35 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$35 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 28: + label$36 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$36 + } + $557(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 32: + label$37 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$37 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 33: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 34: + case 35: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 36: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 37: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 38: + $553(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 39: + $558(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 40: + label$38 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$38 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 41: + case 42: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 43: + label$39 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$39 + } + $559(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 44: + break label$4; + }; + } + label$40 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + } + $297_1 = 0; + label$41 : { + $301_1 = $6_1 + 16 | 0; + if ($301_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $301_1; + } + return $297_1 | 0; + } + + function $555($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $556(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $33_1 = 0; + label$5 : { + $37_1 = $6_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $556($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $554(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $557($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $52_1 = 0, $51_1 = 0, $48_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $51_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + label$3 : { + if (!((HEAP32[(HEAP32[($6_1 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$6 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $552(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$5; + }; + } + } + $48_1 = 0; + label$7 : { + $52_1 = $6_1 + 32 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return $48_1 | 0; + } + + function $558($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $29_1 = 0, $28_1 = 0, $25_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $28_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $561(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $25_1 = 0; + label$4 : { + $29_1 = $6_1 + 16 | 0; + if ($29_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + return $25_1 | 0; + } + + function $559($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $563(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $33_1 = 0; + label$5 : { + $37_1 = $6_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $560($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $34_1 = 0, $33_1 = 0, $30_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = (HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($10_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $30_1 = 0; + label$7 : { + $34_1 = $6_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $30_1 | 0; + } + + function $561($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $560(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $562($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $41_1 = 0, $40_1 = 0, $37_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $8_1 = HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + default: + break label$3; + case 1: + label$7 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 2: + break label$4; + }; + } + label$8 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + } + $37_1 = 0; + label$9 : { + $41_1 = $6_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return $37_1 | 0; + } + + function $563($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $562(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $564($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $20_1 = 0; + label$4 : { + $24_1 = $6_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $565($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $564(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $566($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $554(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $20_1 = 0; + label$4 : { + $24_1 = $6_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $567($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $566(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $568($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $567(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $566(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $33_1 = 0; + label$5 : { + $37_1 = $6_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $569($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $557(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $570($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $92_1 = 0, $91_1 = 0, $88_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $91_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $91_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $565(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $569(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $554(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $568(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + $88_1 = 0; + label$7 : { + $92_1 = $5_1 + 16 | 0; + if ($92_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $92_1; + } + return $88_1 | 0; + } + + function $571($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $23_1 = 0; + $3_1 = global$0 - 16 | 0; + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $23_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $23_1 + 1 | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 16 | 0) >> 2] = $23_1; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $572($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $23_1 = 0; + $3_1 = global$0 - 16 | 0; + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $23_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $23_1 + 1 | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 4 | 0) >> 2] = $23_1; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $573($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $24_1 = 0; + $3_1 = global$0 - 16 | 0; + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $24_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $24_1 + 1 | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 4 | 0) >> 2] = 0 - $24_1 | 0; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $574($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $24_1 = 0; + $4_1 = global$0 - 32 | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $24_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $24_1 + 1 | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = $24_1; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $575($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $24_1 = 0; + $4_1 = global$0 - 32 | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $24_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = $24_1 + 1 | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $24_1; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $576($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $23_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = 0; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $23_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $23_1 + 1 | 0; + HEAP32[((HEAP32[$3_1 >> 2] | 0) + 16 | 0) >> 2] = $23_1; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return 0 | 0; + } + + function $577($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $18_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$1 : { + label$2 : { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$1; + } + $18_1 = (HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($18_1 >>> 0 > 13 >>> 0) { + break label$3 + } + label$4 : { + switch ($18_1 | 0) { + default: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$3; + case 1: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + case 2: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$3; + case 11: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + break label$3; + case 3: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + break label$3; + case 4: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$3; + case 5: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + case 6: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$3; + case 7: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 11; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$3; + case 8: + case 10: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + case 9: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 12; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$3; + case 12: + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 15; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + break label$3; + case 13: + break label$4; + }; + } + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = 13; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + } + return HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $578($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $65_1 = 0, $64_1 = 0, $61_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $64_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $577(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + $577(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$7; + } + } + } + } + $61_1 = 0; + label$9 : { + $65_1 = $4_1 + 16 | 0; + if ($65_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + return $61_1 | 0; + } + + function $579($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $332_1 = 0, $331_1 = 0, $328_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $331_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $331_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$5 : { + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$7 + } + if ((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + } + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$8 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$9 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$9 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$10 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$11 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$11 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$12 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$13 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$13 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$13 + } + label$14 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + if ($579(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0) { + break label$14 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$15 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$15 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$15 + } + label$16 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$17 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$17 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$18 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$18 + } + label$19 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + if ($579(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0) { + break label$19 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$20 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$20 + } + label$21 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$21 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$22 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$22 + } + label$23 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$23 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$24 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $580(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + } + $328_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$25 : { + $332_1 = $4_1 + 16 | 0; + if ($332_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $332_1; + } + return $328_1 | 0; + } + + function $580($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $18_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + label$3 : { + label$4 : { + if ($581(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0) { + break label$4 + } + if ($579(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$4 + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($6_1 + 28 | 0) >> 2] = 1; + } + $15_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$5 : { + $19_1 = $6_1 + 32 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $581($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $71_1 = 0, $103_1 = 0, $102_1 = 0, $99_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $102_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $102_1; + } + HEAP32[($4_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + break label$3; + } + label$5 : { + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$7 + } + if ((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$6 + } + } + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + label$8 : { + if (!((HEAP32[(HEAP32[($4_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[(HEAP32[($4_1 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$9 : while (1) { + $71_1 = 0; + label$10 : { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $71_1 = (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$11 : { + if (!($71_1 & 1 | 0)) { + break label$11 + } + HEAP32[($4_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$12 : { + if (!(($579(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$9; + } + break label$9; + }; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + } + $99_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + label$13 : { + $103_1 = $4_1 + 32 | 0; + if ($103_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $103_1; + } + return $99_1 | 0; + } + + function $582($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $22_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0) == (HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + if ($579(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$4 + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($6_1 + 28 | 0) >> 2] = 1; + } + $19_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$5 : { + $23_1 = $6_1 + 32 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $583($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP32[($3_1 + 12 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 1; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $584($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + label$1 : { + label$2 : { + label$3 : { + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0) { + break label$3 + } + if ((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0) { + break label$3 + } + if (!((HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$2 + } + } + HEAP32[($3_1 + 12 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 1; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $585($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $579(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + } + $21_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$5 : { + $25_1 = $4_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $586($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$1 : { + label$2 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + } + return HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $587($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $24_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $579(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + } + $21_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$5 : { + $25_1 = $4_1 + 16 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $588($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $403_1 = 0, $402_1 = 0, $399_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $402_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $402_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$5 : { + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if ((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$6 + } + } + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$8 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$9 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$9 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$10 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + $519(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, 43 | 0) | 0; + $436(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14100 | 0, 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$11 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$11 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$11 + } + $519(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + $436(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$12 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$13 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$13 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$14 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$15 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$15 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$16 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$16 + } + $519(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, 43 | 0) | 0; + $436(HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14100 | 0, 0 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$17 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$17 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $585(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$18 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $586(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$19 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$19 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$19 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$20 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $587(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + label$21 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$21 + } + label$22 : { + if ((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$22 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$21 + } + } + label$23 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$23 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$24 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$24 + } + label$25 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$25 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + break label$3; + } + label$26 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$26 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + label$27 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$27 + } + if (!((HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$27 + } + HEAP32[($4_1 + 12 | 0) >> 2] = $580(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + } + $399_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$28 : { + $403_1 = $4_1 + 16 | 0; + if ($403_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $403_1; + } + return $399_1 | 0; + } + + function $589($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $71_1 = 0, $103_1 = 0, $102_1 = 0, $99_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $102_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $102_1; + } + HEAP32[($4_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + break label$3; + } + label$5 : { + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if ((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$6 + } + } + if (!((HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + label$8 : { + if (!((HEAP32[(HEAP32[($4_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[(HEAP32[($4_1 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$9 : while (1) { + $71_1 = 0; + label$10 : { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $71_1 = (HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$11 : { + if (!($71_1 & 1 | 0)) { + break label$11 + } + HEAP32[($4_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$12 : { + if (!(($588(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[($4_1 + 28 | 0) >> 2] = 1; + break label$3; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$9; + } + break label$9; + }; + HEAP32[($4_1 + 28 | 0) >> 2] = 0; + } + $99_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + label$13 : { + $103_1 = $4_1 + 32 | 0; + if ($103_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $103_1; + } + return $99_1 | 0; + } + + function $590($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $27_1 = 0, $26_1 = 0, $17_1 = 0, $23_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $26_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 12 | 0) >> 2] = 0; + break label$3; + } + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + $17_1 = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = $528(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($17_1 | 0, 14148 | 0, $4_1 | 0); + HEAP32[($4_1 + 12 | 0) >> 2] = 1; + } + $23_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$5 : { + $27_1 = $4_1 + 16 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $23_1 | 0; + } + + function $591($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, i64toi32_i32$2 = 0, $275_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $135_1 = 0, $215_1 = 0, $260_1 = 0, $267_1 = 0, $272_1 = 0, $369_1 = 0, $387_1 = 0, $386_1 = 0, $139_1 = 0, $141_1 = 0, $219_1 = 0, $221_1 = 0, $264_1 = 0, $269_1 = 0, $274_1 = 0, $974_1 = 0, $991_1 = 0, $373_1 = 0, $376_1 = 0, $383_1 = 0; + $6_1 = global$0 - 112 | 0; + label$1 : { + $386_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $386_1; + } + HEAP32[($6_1 + 108 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 104 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 100 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 96 | 0) >> 2] = $3_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + label$15 : { + label$16 : { + if ($582(HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$16 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$15; + } + $135_1 = 1; + HEAP32[(HEAP32[($6_1 + 96 | 0) >> 2] | 0) >> 2] = $135_1; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = $135_1; + $139_1 = HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $141_1 = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = $141_1; + $435($139_1 | 0, 14180 | 0, $6_1 | 0); + } + break label$13; + } + label$17 : { + label$18 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$18 + } + label$19 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 11; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + } + break label$17; + } + label$20 : { + label$21 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$21 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$21 + } + label$22 : { + label$23 : { + if ($582(HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$23 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 12; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$22; + } + $215_1 = 1; + HEAP32[(HEAP32[($6_1 + 96 | 0) >> 2] | 0) >> 2] = $215_1; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = $215_1; + $219_1 = HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $221_1 = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($6_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = $221_1; + $435($219_1 | 0, 14231 | 0, $6_1 + 16 | 0 | 0); + } + break label$20; + } + label$24 : { + label$25 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$25 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$25 + } + label$26 : { + label$27 : { + if ($580(HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$27 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 13; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$26; + } + $260_1 = 1; + HEAP32[(HEAP32[($6_1 + 96 | 0) >> 2] | 0) >> 2] = $260_1; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = $260_1; + $264_1 = HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $267_1 = (HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 36 | 0; + $269_1 = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $272_1 = (HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 36 | 0; + $274_1 = HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $275_1 = 8; + HEAP32[(($6_1 + 64 | 0) + $275_1 | 0) >> 2] = HEAP32[($267_1 + $275_1 | 0) >> 2] | 0; + i64toi32_i32$2 = $267_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $974_1 = i64toi32_i32$0; + i64toi32_i32$0 = $6_1; + HEAP32[($6_1 + 64 | 0) >> 2] = $974_1; + HEAP32[($6_1 + 68 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(($6_1 + 48 | 0) + $275_1 | 0) >> 2] = HEAP32[($272_1 + $275_1 | 0) >> 2] | 0; + i64toi32_i32$2 = $272_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $991_1 = i64toi32_i32$1; + i64toi32_i32$1 = $6_1; + HEAP32[($6_1 + 48 | 0) >> 2] = $991_1; + HEAP32[($6_1 + 52 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($6_1 + 44 | 0) >> 2] = $274_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $269_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $6_1 + 48 | 0; + HEAP32[($6_1 + 32 | 0) >> 2] = $6_1 + 64 | 0; + $435($264_1 | 0, 14282 | 0, $6_1 + 32 | 0 | 0); + } + break label$24; + } + label$28 : { + label$29 : { + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$29 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$29 + } + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$29 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + break label$28; + } + label$30 : { + label$31 : { + label$32 : { + if ((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$32 + } + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$31 + } + } + label$33 : { + if ((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$33 + } + if (!((HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$31 + } + } + if (!((HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$31 + } + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = 15; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$30; + } + $369_1 = 1; + HEAP32[(HEAP32[($6_1 + 96 | 0) >> 2] | 0) >> 2] = $369_1; + HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 4 | 0) >> 2] = $369_1; + $373_1 = HEAP32[((HEAP32[($6_1 + 100 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $376_1 = $528(HEAP32[((HEAP32[($6_1 + 108 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 84 | 0) >> 2] = $528(HEAP32[((HEAP32[($6_1 + 104 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 80 | 0) >> 2] = $376_1; + $435($373_1 | 0, 14319 | 0, $6_1 + 80 | 0 | 0); + } + } + } + } + } + } + } + } + } + } + } + $383_1 = 0; + label$34 : { + $387_1 = $6_1 + 112 | 0; + if ($387_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $387_1; + } + return $383_1 | 0; + } + + function $592($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $103_1 = 0, $102_1 = 0, $13_1 = 0, $15_1 = 0, $21_1 = 0, $23_1 = 0, $31_1 = 0, $33_1 = 0, $41_1 = 0, $43_1 = 0, $51_1 = 0, $53_1 = 0, $61_1 = 0, $63_1 = 0, $71_1 = 0, $73_1 = 0, $81_1 = 0, $83_1 = 0, $91_1 = 0, $93_1 = 0, $99_1 = 0; + $4_1 = global$0 - 192 | 0; + label$1 : { + $102_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $102_1; + } + HEAP32[($4_1 + 188 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 184 | 0) >> 2] = $1_1; + $8_1 = (HEAP32[(HEAP32[($4_1 + 188 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($8_1 >>> 0 > 8 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + case 8: + HEAP32[($4_1 + 180 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $13_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $15_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 180 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = $15_1; + $435($13_1 | 0, 14371 | 0, $4_1 | 0); + break label$3; + default: + HEAP32[($4_1 + 176 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $21_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $23_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 176 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $23_1; + $435($21_1 | 0, 14411 | 0, $4_1 + 16 | 0 | 0); + break label$3; + case 1: + HEAP32[($4_1 + 172 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $31_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $33_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 172 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($4_1 + 32 | 0) >> 2] = $33_1; + $435($31_1 | 0, 14452 | 0, $4_1 + 32 | 0 | 0); + break label$3; + case 2: + HEAP32[($4_1 + 168 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $41_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $43_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 168 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + HEAP32[($4_1 + 48 | 0) >> 2] = $43_1; + $435($41_1 | 0, 14488 | 0, $4_1 + 48 | 0 | 0); + break label$3; + case 3: + HEAP32[($4_1 + 164 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $51_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $53_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 68 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 164 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($4_1 + 64 | 0) >> 2] = $53_1; + $435($51_1 | 0, 14530 | 0, $4_1 + 64 | 0 | 0); + break label$3; + case 4: + HEAP32[($4_1 + 160 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $61_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $63_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 84 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 160 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[($4_1 + 80 | 0) >> 2] = $63_1; + $435($61_1 | 0, 14571 | 0, $4_1 + 80 | 0 | 0); + break label$3; + case 7: + HEAP32[($4_1 + 156 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $71_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $73_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 100 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + HEAP32[($4_1 + 96 | 0) >> 2] = $73_1; + $435($71_1 | 0, 14617 | 0, $4_1 + 96 | 0 | 0); + break label$3; + case 6: + HEAP32[($4_1 + 152 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $81_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $83_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 116 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 152 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($4_1 + 112 | 0) >> 2] = $83_1; + $435($81_1 | 0, 14658 | 0, $4_1 + 112 | 0 | 0); + break label$3; + case 5: + break label$4; + }; + } + HEAP32[($4_1 + 148 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $91_1 = HEAP32[($4_1 + 184 | 0) >> 2] | 0; + $93_1 = HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 132 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 148 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($4_1 + 128 | 0) >> 2] = $93_1; + $435($91_1 | 0, 14694 | 0, $4_1 + 128 | 0 | 0); + } + $99_1 = 0; + label$13 : { + $103_1 = $4_1 + 192 | 0; + if ($103_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $103_1; + } + return $99_1 | 0; + } + + function $593($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $16_1 = 0, $40_1 = 0, $39_1 = 0, $36_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $39_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + break label$3; + } + $16_1 = 0; + HEAP32[($6_1 + 8 | 0) >> 2] = $738(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, $16_1 | 0) | 0; + label$5 : { + label$6 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) == ($16_1 | 0) & 1 | 0)) { + break label$6 + } + $729(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0); + break label$5; + } + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + } + $36_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$7 : { + $40_1 = $6_1 + 32 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $594($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $66_1 = 0, $65_1 = 0, $62_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $65_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $65_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$4 + } + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $595(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$6 + } + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $596(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$8 + } + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $596(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$7; + } + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + } + } + $62_1 = 0; + label$9 : { + $66_1 = $6_1 + 16 | 0; + if ($66_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $66_1; + } + return $62_1 | 0; + } + + function $595($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $594(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $596($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $597(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $597($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $21_1 = 0, $20_1 = 0, $7_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $7_1 = 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $593(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$3 : { + $21_1 = $6_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $7_1 | 0; + } + + function $598($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $738(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) == ($7_1 | 0) & 1 | 0)) { + break label$4 + } + $730(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + } + $26_1 = 0; + label$5 : { + $30_1 = $6_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $599($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $29_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $738(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) == ($7_1 | 0) & 1 | 0)) { + break label$4 + } + $732(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + } + $26_1 = 0; + label$5 : { + $30_1 = $6_1 + 32 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $600($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $30_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $738(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) == ($7_1 | 0) & 1 | 0)) { + break label$4 + } + $737(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0) | 0; + } + $27_1 = 0; + label$5 : { + $31_1 = $6_1 + 32 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $601($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $44_1 = 0, $43_1 = 0, $40_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $43_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $600(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $40_1 = 0; + label$6 : { + $44_1 = $6_1 + 32 | 0; + if ($44_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $44_1; + } + return $40_1 | 0; + } + + function $602($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $68_1 = 0, $67_1 = 0, $24_1 = 0, $57_1 = 0, $64_1 = 0; + $6_1 = global$0 - 48 | 0; + label$1 : { + $67_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $67_1; + } + $7_1 = 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 28 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 28 | 0) >> 2] = $738(HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0) == ($7_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = 0; + $24_1 = HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $435($24_1 | 0, 14732 | 0, $6_1 | 0); + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($6_1 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[(HEAP32[($6_1 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(HEAP32[($6_1 + 40 | 0) >> 2] | 0) >> 2] = 12; + HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$7; + } + HEAP32[(HEAP32[($6_1 + 32 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = 0; + $57_1 = HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + HEAP32[($6_1 + 16 | 0) >> 2] = $725(HEAP32[(HEAP32[($6_1 + 28 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $435($57_1 | 0, 14763 | 0, $6_1 + 16 | 0 | 0); + } + } + } + $64_1 = 0; + label$9 : { + $68_1 = $6_1 + 48 | 0; + if ($68_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + return $64_1 | 0; + } + + function $603($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0; + $6_1 = global$0 - 16 | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + return 0 | 0; + } + + function $604($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $603(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $605($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $116_1 = 0, $115_1 = 0, $112_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $115_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $115_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = (HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($10_1 >>> 0 > 13 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + break label$3; + case 11: + $602(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 3: + case 4: + case 5: + break label$3; + case 6: + label$13 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $606(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$14 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + $605(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 7: + label$15 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $604(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 8: + case 10: + break label$3; + case 9: + label$16 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + $604(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$17 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$17 + } + $605(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 12: + $602(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 13: + break label$4; + }; + } + label$18 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$18 + } + $606(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + label$19 : { + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + $605(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + } + $112_1 = 0; + label$20 : { + $116_1 = $6_1 + 16 | 0; + if ($116_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $116_1; + } + return $112_1 | 0; + } + + function $606($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $605(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $607($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $65_1 = 0, $115_1 = 0, $6_1 = 0, $21_1 = 0, $70_1 = 0, $71_1 = 0, $75_1 = 0, $78_1 = 0, $120_1 = 0, $121_1 = 0, $125_1 = 0, $128_1 = 0, $152_1 = 0, $168_1 = 0, $191_1 = 0, $190_1 = 0, $349_1 = 0, $369_1 = 0, $379_1 = 0, $461_1 = 0, $481_1 = 0, $491_1 = 0, $156_1 = 0, $172_1 = 0, $181_1 = 0, $187_1 = 0; + $5_1 = global$0 - 64 | 0; + label$1 : { + $190_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $190_1; + } + $6_1 = 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $738(HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + $21_1 = (HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$5 : { + if ($21_1 >>> 0 > 8 >>> 0) { + break label$5 + } + label$6 : { + switch ($21_1 | 0) { + case 8: + label$15 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[($5_1 + 44 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = 13; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + break label$5; + default: + label$16 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$16 + } + $577(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + } + break label$5; + case 1: + label$17 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$17 + } + $65_1 = (HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0; + $70_1 = (HEAP32[((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $70_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $349_1 = i64toi32_i32$0; + i64toi32_i32$0 = $65_1; + HEAP32[i64toi32_i32$0 >> 2] = $349_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $71_1 = 24; + HEAP32[(i64toi32_i32$0 + $71_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $71_1 | 0) >> 2] | 0; + $75_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $75_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $369_1 = i64toi32_i32$1; + i64toi32_i32$1 = $65_1 + $75_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $369_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $78_1 = 8; + i64toi32_i32$2 = $70_1 + $78_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $379_1 = i64toi32_i32$0; + i64toi32_i32$0 = $65_1 + $78_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $379_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + break label$5; + case 2: + label$18 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$18 + } + $577(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + break label$5; + case 3: + label$19 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$19 + } + $578(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + } + break label$5; + case 4: + label$20 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$20 + } + $115_1 = (HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0; + $120_1 = (HEAP32[((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $120_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $461_1 = i64toi32_i32$1; + i64toi32_i32$1 = $115_1; + HEAP32[i64toi32_i32$1 >> 2] = $461_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $121_1 = 24; + HEAP32[(i64toi32_i32$1 + $121_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $121_1 | 0) >> 2] | 0; + $125_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $125_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $481_1 = i64toi32_i32$0; + i64toi32_i32$0 = $115_1 + $125_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $481_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $128_1 = 8; + i64toi32_i32$2 = $120_1 + $128_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $491_1 = i64toi32_i32$1; + i64toi32_i32$1 = $115_1 + $128_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $491_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + break label$5; + case 5: + label$21 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$21 + } + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = 16; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + break label$5; + case 6: + label$22 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$22 + } + $152_1 = 1; + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = $152_1; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = $152_1; + $156_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($156_1 | 0, 14801 | 0, $5_1 | 0); + } + break label$5; + case 7: + break label$6; + }; + } + label$23 : { + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$23 + } + $168_1 = 1; + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = $168_1; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = $168_1; + $172_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($172_1 | 0, 14819 | 0, $5_1 + 16 | 0 | 0); + } + } + break label$3; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $181_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $435($181_1 | 0, 14840 | 0, $5_1 + 32 | 0 | 0); + } + $187_1 = 0; + label$24 : { + $191_1 = $5_1 + 64 | 0; + if ($191_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $191_1; + } + return $187_1 | 0; + } + + function $608($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $56_1 = 0, $66_1 = 0, $79_1 = 0, $93_1 = 0, $92_1 = 0, $60_1 = 0, $62_1 = 0, $70_1 = 0, $72_1 = 0, $83_1 = 0, $89_1 = 0; + $5_1 = global$0 - 64 | 0; + label$1 : { + $92_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $92_1; + } + $6_1 = 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $738(HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5_1 + 44 | 0) >> 2] = $546(HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + label$8 : { + if (!((HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 48 | 0) >> 2] = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 52 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + break label$7; + } + $56_1 = 1; + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = $56_1; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = $56_1; + $60_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $62_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $62_1; + $435($60_1 | 0, 14867 | 0, $5_1 | 0); + } + break label$5; + } + $66_1 = 1; + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = $66_1; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = $66_1; + $70_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $72_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = $725(HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $72_1; + $435($70_1 | 0, 14892 | 0, $5_1 + 16 | 0 | 0); + } + break label$3; + } + $79_1 = 1; + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = $79_1; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] = $79_1; + $83_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($5_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + $435($83_1 | 0, 14927 | 0, $5_1 + 32 | 0 | 0); + } + $89_1 = 0; + label$9 : { + $93_1 = $5_1 + 64 | 0; + if ($93_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $93_1; + } + return $89_1 | 0; + } + + function $609($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $94_1 = 0, $108_1 = 0, $107_1 = 0, $98_1 = 0, $104_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $107_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $107_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$9; + } + $94_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $94_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $94_1; + $98_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($98_1 | 0, 14952 | 0, $7_1 | 0); + } + } + } + } + $104_1 = 0; + label$11 : { + $108_1 = $7_1 + 32 | 0; + if ($108_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $108_1; + } + return $104_1 | 0; + } + + function $610($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $283_1 = 0, $11_1 = 0, $91_1 = 0, $177_1 = 0, $230_1 = 0, $263_1 = 0, $287_1 = 0, $288_1 = 0, $292_1 = 0, $295_1 = 0, $409_1 = 0, $456_1 = 0, $517_1 = 0, $548_1 = 0, $578_1 = 0, $594_1 = 0, $593_1 = 0, $95_1 = 0, $99_1 = 0, $181_1 = 0, $185_1 = 0, $234_1 = 0, $238_1 = 0, $267_1 = 0, $1272 = 0, $1292 = 0, $1302 = 0, $413_1 = 0, $460_1 = 0, $521_1 = 0, $523_1 = 0, $552_1 = 0, $554_1 = 0, $590_1 = 0; + $7_1 = global$0 - 144 | 0; + label$1 : { + $593_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $593_1; + } + HEAP32[($7_1 + 140 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 136 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 132 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 128 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 124 | 0) >> 2] = $4_1; + $11_1 = (HEAP32[(HEAP32[($7_1 + 136 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($11_1 >>> 0 > 45 >>> 0) { + break label$3 + } + label$4 : { + switch ($11_1 | 0) { + default: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$3; + case 1: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + case 2: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$3; + case 3: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + break label$3; + case 4: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$3; + case 5: + $608(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 6: + $607(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$42 : { + if (HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] | 0) { + break label$42 + } + $550(HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 45: + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 2; + break label$3; + case 7: + $609(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 8: + case 9: + $611(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 10: + $612(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 11: + $613(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 12: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$43 : { + label$44 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$44 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$44 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$43; + } + $91_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $91_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $91_1; + $95_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $99_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $99_1; + $435($95_1 | 0, 16279 | 0, $7_1 | 0); + } + break label$3; + case 13: + case 14: + case 15: + case 16: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$45 : { + label$46 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$46 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$46 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$45; + } + label$47 : { + label$48 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$48 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$48 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$47; + } + label$49 : { + label$50 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$50 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$50 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$49; + } + $177_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $177_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $177_1; + $181_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $185_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 20 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $185_1; + $435($181_1 | 0, 15125 | 0, $7_1 + 16 | 0 | 0); + } + } + } + break label$3; + case 17: + case 18: + $614(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 19: + case 20: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$51 : { + label$52 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$52 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$52 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$51; + } + $230_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $230_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $230_1; + $234_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $238_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 36 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 32 | 0) >> 2] = $238_1; + $435($234_1 | 0, 15125 | 0, $7_1 + 32 | 0 | 0); + } + break label$3; + case 21: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$53 : { + label$54 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$54 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$53; + } + $263_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $263_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $263_1; + $267_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 48 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($267_1 | 0, 16321 | 0, $7_1 + 48 | 0 | 0); + } + break label$3; + case 22: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $283_1 = (HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0; + $287_1 = (HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $287_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1272 = i64toi32_i32$0; + i64toi32_i32$0 = $283_1; + HEAP32[i64toi32_i32$0 >> 2] = $1272; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $288_1 = 24; + HEAP32[(i64toi32_i32$0 + $288_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $288_1 | 0) >> 2] | 0; + $292_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $292_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1292 = i64toi32_i32$1; + i64toi32_i32$1 = $283_1 + $292_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $1292; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $295_1 = 8; + i64toi32_i32$2 = $287_1 + $295_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $1302 = i64toi32_i32$0; + i64toi32_i32$0 = $283_1 + $295_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1302; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$3; + case 23: + $615(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 24: + $832(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 25: + $616(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 29: + $617(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 30: + label$55 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$55 + } + $618(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 31: + $619(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 26: + case 27: + $620(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 28: + label$56 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$56 + } + $621(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, (HEAP32[($7_1 + 128 | 0) >> 2] | 0) + 2 | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 13; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + } + break label$3; + case 32: + label$57 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$57 + } + $622(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 33: + $623(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 34: + case 35: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$58 : { + label$59 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$59 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$58; + } + $409_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $409_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $409_1; + $413_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 64 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($413_1 | 0, 16341 | 0, $7_1 + 64 | 0 | 0); + } + break label$3; + case 36: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$60 : { + label$61 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$61 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$60; + } + $456_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $456_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $456_1; + $460_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 80 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($460_1 | 0, 16374 | 0, $7_1 + 80 | 0 | 0); + } + break label$3; + case 37: + $742(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 38: + $775(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 39: + $827(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 40: + label$62 : { + if (!((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$62 + } + $624(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + } + $577(HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 41: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$63 : { + label$64 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$64 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$63; + } + $517_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $517_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $517_1; + $521_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $523_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 100 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 96 | 0) >> 2] = $523_1; + $435($521_1 | 0, 16400 | 0, $7_1 + 96 | 0 | 0); + } + break label$3; + case 42: + $610(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$65 : { + label$66 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$66 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$65; + } + $548_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $548_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $548_1; + $552_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $554_1 = HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 116 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 112 | 0) >> 2] = $554_1; + $435($552_1 | 0, 16433 | 0, $7_1 + 112 | 0 | 0); + } + break label$3; + case 43: + $625(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + label$67 : { + label$68 : { + if (HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] | 0) { + break label$68 + } + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 16 | 0) >> 2] = 1; + break label$67; + } + $578_1 = 1; + HEAP32[(HEAP32[($7_1 + 124 | 0) >> 2] | 0) >> 2] = $578_1; + HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 4 | 0) >> 2] = $578_1; + $435(HEAP32[((HEAP32[($7_1 + 136 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 16464 | 0, 0 | 0); + } + break label$3; + case 44: + break label$4; + }; + } + $626(HEAP32[($7_1 + 140 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 136 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 132 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 128 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 124 | 0) >> 2] | 0 | 0) | 0; + } + $590_1 = 0; + label$69 : { + $594_1 = $7_1 + 144 | 0; + if ($594_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $594_1; + } + return $590_1 | 0; + } + + function $611($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $372_1 = 0, $390_1 = 0, $389_1 = 0, $376_1 = 0, $380_1 = 0, $386_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $389_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $389_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$15; + } + label$17 : { + label$18 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$17; + } + label$19 : { + label$20 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$19; + } + label$21 : { + label$22 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$21; + } + label$23 : { + label$24 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$24 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$24 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$23; + } + $372_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $372_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $372_1; + $376_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $380_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $380_1; + $435($376_1 | 0, 14975 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + } + } + $386_1 = 0; + label$25 : { + $390_1 = $7_1 + 32 | 0; + if ($390_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $390_1; + } + return $386_1 | 0; + } + + function $612($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $416_1 = 0, $434_1 = 0, $433_1 = 0, $420_1 = 0, $424_1 = 0, $430_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $433_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $433_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$16 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$15; + } + label$17 : { + label$18 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$18 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 43 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14100 | 0, 0 | 0); + break label$17; + } + label$19 : { + label$20 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$20 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$20 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$19; + } + label$21 : { + label$22 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$22 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$21; + } + $416_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $416_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $416_1; + $420_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $424_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $424_1; + $435($420_1 | 0, 14975 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + } + $430_1 = 0; + label$23 : { + $434_1 = $7_1 + 32 | 0; + if ($434_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $434_1; + } + return $430_1 | 0; + } + + function $613($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $114_1 = 0, $132_1 = 0, $131_1 = 0, $118_1 = 0, $122_1 = 0, $128_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $131_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $131_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$6 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + $519(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$9; + } + $114_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $114_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $114_1; + $118_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $122_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $122_1; + $435($118_1 | 0, 14975 | 0, $7_1 | 0); + } + } + } + } + $128_1 = 0; + label$11 : { + $132_1 = $7_1 + 32 | 0; + if ($132_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $132_1; + } + return $128_1 | 0; + } + + function $614($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $353_1 = 0, $371_1 = 0, $370_1 = 0, $357_1 = 0, $361_1 = 0, $367_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $370_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $370_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$3; + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$5; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$7; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$9; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$12 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$11; + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$13; + } + label$15 : { + label$16 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$15; + } + label$17 : { + label$18 : { + label$19 : { + label$20 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$20 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$19 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$18 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$18 + } + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$17; + } + label$21 : { + label$22 : { + label$23 : { + label$24 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$24 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$23 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$22 + } + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$21; + } + label$25 : { + label$26 : { + label$27 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$27 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$26 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$26 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$25; + } + label$28 : { + label$29 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$29 + } + label$30 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$30 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$29 + } + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$28; + } + label$31 : { + label$32 : { + label$33 : { + label$34 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$34 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$33 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$32 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$32 + } + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$31; + } + $353_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $353_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $353_1; + $357_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $361_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $361_1; + $435($357_1 | 0, 15125 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + } + } + } + $367_1 = 0; + label$35 : { + $371_1 = $7_1 + 32 | 0; + if ($371_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $371_1; + } + return $367_1 | 0; + } + + function $615($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $35_1 = 0, $57_1 = 0, $56_1 = 0, $39_1 = 0, $53_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $56_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + HEAP32[($7_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0)) { + break label$4 + } + $35_1 = 1; + HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] = $35_1; + HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] = $35_1; + $39_1 = HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($39_1 | 0, 15153 | 0, $7_1 | 0); + HEAP32[($7_1 + 28 | 0) >> 2] = 0; + break label$3; + } + $591(HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 28 | 0) >> 2] = 0; + } + $53_1 = HEAP32[($7_1 + 28 | 0) >> 2] | 0; + label$5 : { + $57_1 = $7_1 + 32 | 0; + if ($57_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $57_1; + } + return $53_1 | 0; + } + + function $616($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $59_1 = 0, $66_1 = 0, $108_1 = 0, $115_1 = 0, $153_1 = 0, $160_1 = 0, $194_1 = 0, $201_1 = 0, $208_1 = 0, $222_1 = 0, $221_1 = 0, $212_1 = 0, $218_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $221_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $221_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + label$5 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + label$9 : { + if ($628(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$9 + } + $577(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$8; + } + $59_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $59_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $59_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15238 | 0, 0 | 0); + } + break label$6; + } + $66_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $66_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $66_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15290 | 0, 0 | 0); + } + break label$4; + } + label$10 : { + label$11 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$11 + } + label$12 : { + label$13 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$13 + } + label$14 : { + label$15 : { + if ($628(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$15 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = 1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$14; + } + $108_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $108_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $108_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15343 | 0, 0 | 0); + } + break label$12; + } + $115_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $115_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $115_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15395 | 0, 0 | 0); + } + break label$10; + } + label$16 : { + label$17 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$17 + } + label$18 : { + label$19 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$19 + } + label$20 : { + label$21 : { + if ($628(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$21 + } + $577(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$20; + } + $153_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $153_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $153_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15449 | 0, 0 | 0); + } + break label$18; + } + $160_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $160_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $160_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15501 | 0, 0 | 0); + } + break label$16; + } + label$22 : { + label$23 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$23 + } + label$24 : { + label$25 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$25 + } + label$26 : { + label$27 : { + if ($628(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$27 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + break label$26; + } + $194_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $194_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $194_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15555 | 0, 0 | 0); + } + break label$24; + } + $201_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $201_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $201_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15588 | 0, 0 | 0); + } + break label$22; + } + $208_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $208_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $208_1; + $212_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($212_1 | 0, 15634 | 0, $7_1 | 0); + } + } + } + } + $218_1 = 0; + label$28 : { + $222_1 = $7_1 + 32 | 0; + if ($222_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $222_1; + } + return $218_1 | 0; + } + + function $617($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $64_1 = 0, $63_1 = 0, $33_1 = 0, $54_1 = 0, $60_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $63_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (4 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $33_1 = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($33_1 | 0, 15868 | 0, $7_1 + 16 | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (4 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = 1; + $54_1 = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($54_1 | 0, 15912 | 0, $7_1 | 0); + } + $60_1 = 0; + label$5 : { + $64_1 = $7_1 + 48 | 0; + if ($64_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + return $60_1 | 0; + } + + function $618($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $27_1 = 0, $26_1 = 0, $8_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $26_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + $8_1 = 0; + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $629(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 11; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + label$3 : { + $27_1 = $7_1 + 32 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $8_1 | 0; + } + + function $619($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $50_1 = 0, $87_1 = 0, $124_1 = 0, $151_1 = 0, $158_1 = 0, $172_1 = 0, $171_1 = 0, $162_1 = 0, $168_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $171_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $171_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 12; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$5; + } + $50_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $50_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $50_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15651 | 0, 0 | 0); + } + break label$3; + } + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$8 + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 11; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$9; + } + $87_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $87_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $87_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15705 | 0, 0 | 0); + } + break label$7; + } + label$11 : { + label$12 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + label$14 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$14 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 12; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$13; + } + $124_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $124_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $124_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15759 | 0, 0 | 0); + } + break label$11; + } + label$15 : { + label$16 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$16 + } + label$17 : { + label$18 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$18 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$17; + } + $151_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $151_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $151_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15813 | 0, 0 | 0); + } + break label$15; + } + $158_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $158_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $158_1; + $162_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($162_1 | 0, 15634 | 0, $7_1 | 0); + } + } + } + } + $168_1 = 0; + label$19 : { + $172_1 = $7_1 + 32 | 0; + if ($172_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $172_1; + } + return $168_1 | 0; + } + + function $620($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $30_1 = 0, $43_1 = 0, $64_1 = 0, $137_1 = 0, $145_1 = 0, $159_1 = 0, $158_1 = 0, $149_1 = 0, $155_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $158_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $158_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $30_1 = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$4 : { + if ($30_1 >>> 0 > 16 >>> 0) { + break label$4 + } + label$5 : { + switch ($30_1 | 0) { + case 13: + label$9 : { + label$10 : { + if ($589(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0) { + break label$10 + } + $577(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$9; + } + $43_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $43_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $43_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15954 | 0, 0 | 0); + } + break label$4; + case 16: + label$11 : { + label$12 : { + if ($589(HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0) { + break label$12 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 15; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$11; + } + $64_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $64_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $64_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 20 | 0) >> 2] = 0; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 15983 | 0, 0 | 0); + } + break label$4; + case 14: + label$13 : { + label$14 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (6 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 52 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + if ($589(HEAP32[((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0) { + break label$14 + } + HEAP8[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 36 | 0) >> 0] = 1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + break label$13; + } + $137_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $137_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $137_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2] = 0; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 16012 | 0, 0 | 0); + } + break label$4; + case 6: + case 7: + break label$4; + default: + break label$5; + }; + } + $145_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $145_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $145_1; + $149_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($149_1 | 0, 16039 | 0, $7_1 | 0); + } + $155_1 = 0; + label$15 : { + $159_1 = $7_1 + 32 | 0; + if ($159_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $159_1; + } + return $155_1 | 0; + } + + function $621($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $8_1 = HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + default: + break label$3; + case 1: + $632(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $633(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $19_1 = 0; + label$7 : { + $23_1 = $6_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $622($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $36_1 = 0, $8_1 = 0, $39_1 = 0, $40_1 = 0, $44_1 = 0, $47_1 = 0, $50_1 = 0, $63_1 = 0, $62_1 = 0, $159_1 = 0, $179_1 = 0, $189_1 = 0, $54_1 = 0, $59_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $62_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + $8_1 = 0; + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $8_1; + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != ($8_1 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + $36_1 = (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0; + $39_1 = (HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $39_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $159_1 = i64toi32_i32$0; + i64toi32_i32$0 = $36_1; + HEAP32[i64toi32_i32$0 >> 2] = $159_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $40_1 = 24; + HEAP32[(i64toi32_i32$0 + $40_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $40_1 | 0) >> 2] | 0; + $44_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $44_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $179_1 = i64toi32_i32$1; + i64toi32_i32$1 = $36_1 + $44_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $179_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $47_1 = 8; + i64toi32_i32$2 = $39_1 + $47_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $189_1 = i64toi32_i32$0; + i64toi32_i32$0 = $36_1 + $47_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $189_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + break label$3; + } + $50_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $50_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $50_1; + $54_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $527(HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $435($54_1 | 0, 16503 | 0, $7_1 | 0); + } + $59_1 = 0; + label$5 : { + $63_1 = $7_1 + 32 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $59_1 | 0; + } + + function $623($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $493_1 = 0, $511_1 = 0, $510_1 = 0, $48_1 = 0, $497_1 = 0, $501_1 = 0, $507_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $510_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $510_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) != (7 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) != (45 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) != (26 | 0) & 1 | 0)) { + break label$3 + } + $48_1 = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $527(HEAP32[(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $436($48_1 | 0, 15024 | 0, $7_1 + 16 | 0 | 0); + } + label$4 : { + label$5 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$4; + } + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$6; + } + label$8 : { + label$9 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$9 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$9 + } + $519(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 43 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + $436(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14100 | 0, 0 | 0); + break label$8; + } + label$10 : { + label$11 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$11 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (4 | 0) & 1 | 0)) { + break label$11 + } + $519(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 42 | 0) | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + $436(HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14124 | 0, 0 | 0); + break label$10; + } + label$12 : { + label$13 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$13 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$12; + } + label$14 : { + label$15 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$15 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$15 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$15 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 14; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + break label$14; + } + label$16 : { + label$17 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$17 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (8 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + break label$16; + } + label$18 : { + label$19 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$19 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$19 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$18; + } + label$20 : { + label$21 : { + label$22 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$22 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$21 + } + } + label$23 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$23 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$21 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$21 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 15; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$20; + } + label$24 : { + label$25 : { + label$26 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$26 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$25 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$25 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 15; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + break label$24; + } + label$27 : { + label$28 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$28 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (13 | 0) & 1 | 0)) { + break label$28 + } + if ($580(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$28 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 13; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$27; + } + label$29 : { + label$30 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$30 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$30 + } + if ($582(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$30 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$29; + } + label$31 : { + label$32 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$32 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$32 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$32 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 11; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$31; + } + label$33 : { + label$34 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$34 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$34 + } + if ($582(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0) { + break label$34 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = 12; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + break label$33; + } + $493_1 = 1; + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = $493_1; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = $493_1; + $497_1 = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $501_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $501_1; + $435($497_1 | 0, 15088 | 0, $7_1 | 0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + $507_1 = 0; + label$35 : { + $511_1 = $7_1 + 48 | 0; + if ($511_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $511_1; + } + return $507_1 | 0; + } + + function $624($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $625($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $77_1 = 0, $76_1 = 0, $19_1 = 0, $63_1 = 0, $67_1 = 0, $73_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $76_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $76_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$3 + } + $19_1 = $726(8 | 0, 1 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] = $19_1; + } + $631(HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $605(HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!(($588(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + $63_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + $67_1 = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = $468(HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[$7_1 >> 2] = $67_1; + $435($63_1 | 0, 16149 | 0, $7_1 | 0); + } + $73_1 = 0; + label$6 : { + $77_1 = $7_1 + 32 | 0; + if ($77_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $77_1; + } + return $73_1 | 0; + } + + function $626($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $73_1 = 0, $83_1 = 0, $99_1 = 0, $98_1 = 0, $77_1 = 0, $79_1 = 0, $87_1 = 0, $95_1 = 0; + $7_1 = global$0 - 48 | 0; + label$1 : { + $98_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $98_1; + } + HEAP32[($7_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 32 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 28 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $610(HEAP32[($7_1 + 44 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + label$5 : { + label$6 : { + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (15 | 0) & 1 | 0) { + break label$6 + } + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (16 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($7_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($7_1 + 20 | 0) >> 2] = $471(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) | 0; + label$8 : { + label$9 : { + if (!((HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 44 | 0) >> 2] = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + $577(HEAP32[($7_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0) | 0; + break label$8; + } + $73_1 = 1; + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = $73_1; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = $73_1; + $77_1 = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $79_1 = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $79_1; + $435($77_1 | 0, 16200 | 0, $7_1 | 0); + } + } + break label$4; + } + $83_1 = 1; + HEAP32[(HEAP32[($7_1 + 28 | 0) >> 2] | 0) >> 2] = $83_1; + HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] = $83_1; + $87_1 = HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($7_1 + 16 | 0) >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($87_1 | 0, 16239 | 0, $7_1 + 16 | 0 | 0); + } + $95_1 = 0; + label$10 : { + $99_1 = $7_1 + 48 | 0; + if ($99_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $99_1; + } + return $95_1 | 0; + } + + function $627($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $36_1 = 0, $48_1 = 0, $47_1 = 0, $39_1 = 0, $44_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $47_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$4 + } + $519(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, 43 | 0) | 0; + $436(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 14100 | 0, 0 | 0); + break label$3; + } + label$5 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (4 | 0) & 1 | 0)) { + break label$5 + } + $36_1 = 1; + HEAP32[($7_1 + 8 | 0) >> 2] = $36_1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $36_1; + $39_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($39_1 | 0, 15196 | 0, $7_1 | 0); + } + } + $44_1 = HEAP32[($7_1 + 8 | 0) >> 2] | 0; + label$6 : { + $48_1 = $7_1 + 32 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return $44_1 | 0; + } + + function $628($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $46_1 = 0, $45_1 = 0, $42_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $45_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $45_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = 0; + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$7_1 >> 2] = HEAP32[(HEAP32[($7_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$7_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!(($627(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[$7_1 >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($7_1 + 8 | 0) >> 2] = 1; + } + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $42_1 = HEAP32[($7_1 + 8 | 0) >> 2] | 0; + label$7 : { + $46_1 = $7_1 + 32 | 0; + if ($46_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + return $42_1 | 0; + } + + function $629($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $617(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $630($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $9_1 = 0, $126_1 = 0, $125_1 = 0, $116_1 = 0, $122_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $125_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $125_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $9_1 = HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($9_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + break label$3; + case 1: + label$7 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$8 : { + label$9 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$9 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$8 + } + } + label$10 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$10 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$8 + } + } + label$11 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$11 + } + if ((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$8 + } + } + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, 16075 | 0, 0 | 0); + } + } + $599(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + label$12 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$13 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0)) { + break label$13 + } + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + $116_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($116_1 | 0, 16115 | 0, $7_1 | 0); + } + } + } + $122_1 = 0; + label$14 : { + $126_1 = $7_1 + 32 | 0; + if ($126_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $126_1; + } + return $122_1 | 0; + } + + function $631($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $630(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $632($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $287_1 = 0, $286_1 = 0, $19_1 = 0, $274_1 = 0, $279_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $286_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $286_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = 1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$3 + } + $19_1 = $726(32 | 0, 0 | 0, HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = $19_1; + } + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $600(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, (HEAP32[($6_1 + 20 | 0) >> 2] | 0) - 1 | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $573(HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $606(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $605(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $595(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$9 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $639(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$10 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $574(HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = (HEAP32[($6_1 + 12 | 0) >> 2] | 0) + (HEAP32[(HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0) >> 2] | 0) | 0; + } + label$11 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $635(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$12 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $575(HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$13 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $601(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$14 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$14 + } + $640(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + label$15 : { + if (!((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + $610(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + label$16 : { + if (!(($588(HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$16 + } + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $274_1 = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + $435($274_1 | 0, 16666 | 0, $6_1 | 0); + } + } + $279_1 = 0; + $570(HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + label$17 : { + $287_1 = $6_1 + 32 | 0; + if ($287_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $287_1; + } + return $279_1 | 0; + } + + function $633($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $19_1 = 0, $18_1 = 0, $10_1 = 0, $15_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $18_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[(HEAP32[($6_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $10_1 = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = HEAP32[(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + $435($10_1 | 0, 16704 | 0, $6_1 | 0); + $15_1 = 0; + label$3 : { + $19_1 = $6_1 + 32 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $634($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $9_1 = 0, $34_1 = 0, $33_1 = 0, $30_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $33_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $9_1 = HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($9_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + break label$3; + case 1: + case 2: + break label$4; + }; + } + label$6 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $598(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + } + $30_1 = 0; + label$7 : { + $34_1 = $7_1 + 32 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $30_1 | 0; + } + + function $635($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $634(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $636($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $72_1 = 0, $71_1 = 0, $64_1 = 0, $68_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $71_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $71_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + label$4 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16527 | 0) | 0) { + break label$4 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + break label$3; + } + label$5 : { + label$6 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16547 | 0) | 0) { + break label$6 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 2; + break label$5; + } + label$7 : { + label$8 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16564 | 0) | 0) { + break label$8 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + break label$7; + } + label$9 : { + label$10 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16581 | 0) | 0) { + break label$10 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$9; + } + label$11 : { + label$12 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16596 | 0) | 0) { + break label$12 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + break label$11; + } + label$13 : { + label$14 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16605 | 0) | 0) { + break label$14 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 6; + break label$13; + } + label$15 : { + label$16 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16615 | 0) | 0) { + break label$16 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 7; + break label$15; + } + label$17 : { + label$18 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16623 | 0) | 0) { + break label$18 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + break label$17; + } + label$19 : { + label$20 : { + if ($855(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 16635 | 0) | 0) { + break label$20 + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + break label$19; + } + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + $64_1 = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $435($64_1 | 0, 16644 | 0, $4_1 | 0); + } + } + } + } + } + } + } + } + } + $68_1 = 0; + label$21 : { + $72_1 = $4_1 + 16 | 0; + if ($72_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $72_1; + } + return $68_1 | 0; + } + + function $637($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $56_1 = 0, $55_1 = 0, $47_1 = 0, $52_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $55_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $636(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!(($588(HEAP32[((HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + $47_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = HEAP32[(HEAP32[((HEAP32[($7_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + $435($47_1 | 0, 16666 | 0, $7_1 | 0); + } + $52_1 = 0; + label$6 : { + $56_1 = $7_1 + 32 | 0; + if ($56_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + return $52_1 | 0; + } + + function $638($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $637(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $639($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $40_1 = 0, $39_1 = 0, $36_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $39_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $638(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $637(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $36_1 = 0; + label$5 : { + $40_1 = $7_1 + 32 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $640($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $621(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, (HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $6_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $641($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $29_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $738(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$5_1 >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[$5_1 >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + $735(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0); + } + $26_1 = 0; + label$5 : { + $30_1 = $5_1 + 16 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $642($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $29_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $738(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$5_1 >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[$5_1 >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + $736(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0); + } + $26_1 = 0; + label$5 : { + $30_1 = $5_1 + 16 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $643($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $9_1 = 0, $40_1 = 0, $39_1 = 0, $36_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $39_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $9_1 = (HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($9_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + label$6 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $641(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 1: + break label$4; + }; + } + label$7 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $642(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + } + $36_1 = 0; + label$8 : { + $40_1 = $5_1 + 16 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $644($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $643(HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $29_1 = 0; + label$6 : { + $33_1 = $5_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $645($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $29_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $738(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$5_1 >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($5_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[$5_1 >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + $734(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0); + } + $26_1 = 0; + label$5 : { + $30_1 = $5_1 + 16 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $646($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $26_1 = 0, $25_1 = 0, $22_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $25_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $645(HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $647(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $22_1 = 0; + label$4 : { + $26_1 = $6_1 + 16 | 0; + if ($26_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + return $22_1 | 0; + } + + function $647($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $55_1 = 0, $54_1 = 0, $51_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $54_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $572(HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $606(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $595(HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + $51_1 = 0; + label$6 : { + $55_1 = $5_1 + 16 | 0; + if ($55_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $55_1; + } + return $51_1 | 0; + } + + function $648($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $27_1 = 0, $26_1 = 0, $23_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $26_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $26_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $11_1 = (HEAP32[(HEAP32[($7_1 + 16 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($11_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($11_1 | 0) { + default: + $645(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + HEAP32[(HEAP32[($7_1 + 20 | 0) >> 2] | 0) >> 2] = 2; + $646(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $23_1 = 0; + label$6 : { + $27_1 = $7_1 + 32 | 0; + if ($27_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + return $23_1 | 0; + } + + function $649($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $648(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $6_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $650($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $571(HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $649(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + $29_1 = 0; + label$5 : { + $33_1 = $5_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $651($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $9_1 = 0, $40_1 = 0, $39_1 = 0, $36_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $39_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + $9_1 = (HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($9_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + default: + label$6 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $650(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 1: + break label$4; + }; + } + label$7 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $647(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + } + $36_1 = 0; + label$8 : { + $40_1 = $5_1 + 16 | 0; + if ($40_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + return $36_1 | 0; + } + + function $652($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $651(HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $29_1 = 0; + label$6 : { + $33_1 = $5_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $653($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $81_1 = 0, $80_1 = 0, $68_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $80_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + HEAP32[$4_1 >> 2] = $5_1; + label$3 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != ($5_1 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $644(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $652(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $601(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $574(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $635(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = (HEAP32[($4_1 + 4 | 0) >> 2] | 0) + (HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0) | 0; + } + $68_1 = 0; + $575(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $640(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$5 : { + $81_1 = $4_1 + 16 | 0; + if ($81_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + return $68_1 | 0; + } + + function $654($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + label$3 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[(HEAP32[$3_1 >> 2] | 0) >> 2] | 0 | 0) != (2 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[(HEAP32[$3_1 >> 2] | 0) >> 2] | 0 | 0) != (3 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($3_1 + 12 | 0) >> 2] = 0; + break label$1; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 1; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $655($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $90_1 = 0, $102_1 = 0, $101_1 = 0, $50_1 = 0, $98_1 = 0; + $5_1 = global$0 - 48 | 0; + label$1 : { + $101_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $101_1; + } + $6_1 = 0; + HEAP32[($5_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 40 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 36 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 32 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 32 | 0) >> 2] = $738(HEAP32[($5_1 + 40 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0, $6_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($5_1 + 32 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($5_1 + 32 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($5_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5_1 + 28 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 32 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if ($654(HEAP32[((HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0) { + break label$7 + } + HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $50_1 = HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + $435($50_1 | 0, 16734 | 0, $5_1 | 0); + } + label$8 : { + label$9 : { + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 16784 | 0, 0 | 0); + break label$8; + } + label$10 : { + if (!(($583(HEAP32[((HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 16784 | 0, 0 | 0); + } + } + break label$5; + } + HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $90_1 = 0; + $435($90_1 | 0, 16821 | 0, $90_1 | 0); + } + break label$3; + } + HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + $435(0 | 0, 16865 | 0, $5_1 + 16 | 0 | 0); + } + $98_1 = 0; + label$11 : { + $102_1 = $5_1 + 48 | 0; + if ($102_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $102_1; + } + return $98_1 | 0; + } + + function $656($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $14_1 = 0, $19_1 = 0, $28_1 = 0, $27_1 = 0, $15_1 = 0, $24_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $5_1; + label$3 : { + if (!((HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == ($5_1 | 0) & 1 | 0)) { + break label$3 + } + $14_1 = 0; + $15_1 = $726(32 | 0, $14_1 | 0, $14_1 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] = $15_1; + } + $19_1 = $4_1 + 4 | 0; + $653(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0, $19_1 | 0) | 0; + $655(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, $19_1 | 0) | 0; + $24_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$4 : { + $28_1 = $4_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return $24_1 | 0; + } + + function $657($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + $14_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $18_1 = $4_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $658($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $659() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $660($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $658(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $661($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $10_1 = 0, $29_1 = 0, $43_1 = 0, $42_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $42_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $657(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $10_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[$10_1 >> 2] = (HEAP32[$10_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $29_1 = HEAP32[$5_1 >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $29_1; + HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $29_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[$5_1 >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[$5_1 >> 2] | 0; + } + label$5 : { + $43_1 = $5_1 + 16 | 0; + if ($43_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + return; + } + + function $662($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $29_1 = 0; + $3_1 = global$0 - 16 | 0; + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != ($4_1 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$2 : { + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 0; + break label$2; + } + HEAP32[((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + } + $29_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[$29_1 >> 2] = (HEAP32[$29_1 >> 2] | 0) + -1 | 0; + } + return HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0; + } + + function $663() { + var $2_1 = 0, $19_1 = 0, $18_1 = 0, $13_1 = 0, $15_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = 32; + $13_1 = $963((HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 0 | 0 | 0) | 0; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $13_1; + $15_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $19_1 = $2_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $664($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $665($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $9_1 = 0, $22_1 = 0, $37_1 = 0, $36_1 = 0, $5_1 = 0, $7_1 = 0, $32_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP8[($4_1 + 11 | 0) >> 0] = $1_1; + $5_1 = HEAPU8[($4_1 + 11 | 0) >> 0] | 0; + $7_1 = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $9_1 = HEAP32[$8_1 >> 2] | 0; + HEAP32[$8_1 >> 2] = $9_1 + 1 | 0; + HEAP8[($7_1 + $9_1 | 0) >> 0] = $5_1; + label$3 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) >>> 0 >= (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$3 + } + $22_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[($22_1 + 4 | 0) >> 2] = (HEAP32[($22_1 + 4 | 0) >> 2] | 0) + 32 | 0; + $32_1 = $965(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 0 | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $32_1; + } + label$4 : { + $37_1 = $4_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return; + } + + function $666($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + return HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0; + } + + function $667($0_1) { + $0_1 = $0_1 | 0; + var i64toi32_i32$1 = 0, $3_1 = 0, $6_1 = 0, i64toi32_i32$0 = 0, $23_1 = 0, $22_1 = 0, $21_1 = 0, $18_1 = 0; + $3_1 = global$0 - 64 | 0; + label$1 : { + $21_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $6_1 = $3_1 + 16 | 0; + HEAP32[($3_1 + 60 | 0) >> 2] = $0_1; + i64toi32_i32$0 = 0; + $23_1 = 0; + i64toi32_i32$1 = $6_1; + HEAP32[i64toi32_i32$1 >> 2] = $23_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$1 + 24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $23_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $6_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $23_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $6_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $23_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[$3_1 >> 2] = HEAP32[($3_1 + 60 | 0) >> 2] | 0; + $872($6_1 | 0, 16893 | 0, $3_1 | 0) | 0; + $18_1 = $856($3_1 + 16 | 0 | 0) | 0; + label$3 : { + $22_1 = $3_1 + 64 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $668($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $20_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $3_1 = global$0 - 64 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + HEAPF32[($3_1 + 60 | 0) >> 2] = $0_1; + i64toi32_i32$0 = 0; + $20_1 = 0; + i64toi32_i32$1 = $3_1 + 40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $20_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $3_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $20_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $20_1; + HEAP32[($3_1 + 28 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $3_1; + HEAP32[($3_1 + 16 | 0) >> 2] = $20_1; + HEAP32[($3_1 + 20 | 0) >> 2] = i64toi32_i32$0; + HEAPF64[$3_1 >> 3] = +Math_fround(HEAPF32[($3_1 + 60 | 0) >> 2]); + $872($3_1 + 16 | 0 | 0, 16896 | 0, $3_1 | 0) | 0; + $15_1 = $856($3_1 + 16 | 0 | 0) | 0; + label$3 : { + $19_1 = $3_1 + 64 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $669($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $28_1 = 0, $27_1 = 0, $24_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $27_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + $5_1 = 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 16 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $980(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $980(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $963((((HEAP32[($4_1 + 20 | 0) >> 2] | 0) + (HEAP32[($4_1 + 16 | 0) >> 2] | 0) | 0) + 1 | 0) << 0 | 0 | 0) | 0; + $854(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0) | 0; + $854((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + (HEAP32[($4_1 + 20 | 0) >> 2] | 0) | 0 | 0, HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0) | 0; + $24_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + label$3 : { + $28_1 = $4_1 + 32 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return $24_1 | 0; + } + + function $670($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$1 = 0, $8_1 = 0, i64toi32_i32$0 = 0, $54_1 = 0, $9_1 = 0, $53_1 = 0, $52_1 = 0, $49_1 = 0; + $5_1 = global$0 - 80 | 0; + label$1 : { + $52_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + $8_1 = $5_1 + 16 | 0; + $9_1 = 0; + HEAP32[($5_1 + 76 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 68 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 64 | 0) >> 2] = $9_1; + HEAP32[($5_1 + 60 | 0) >> 2] = $9_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $9_1; + i64toi32_i32$0 = 0; + $54_1 = 0; + i64toi32_i32$1 = $8_1; + HEAP32[i64toi32_i32$1 >> 2] = $54_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$1 + 24 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $8_1 + 16 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $8_1 + 8 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $54_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + HEAP32[$5_1 >> 2] = HEAP32[($5_1 + 72 | 0) >> 2] | 0; + $872($8_1 | 0, 16893 | 0, $5_1 | 0) | 0; + HEAP32[($5_1 + 64 | 0) >> 2] = $980(HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $980($5_1 + 16 | 0 | 0) | 0; + HEAP32[($5_1 + 56 | 0) >> 2] = $963((((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + (HEAP32[($5_1 + 60 | 0) >> 2] | 0) | 0) + 1 | 0) << 0 | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!(HEAP32[($5_1 + 68 | 0) >> 2] | 0)) { + break label$4 + } + $854(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + $854((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + (HEAP32[($5_1 + 64 | 0) >> 2] | 0) | 0 | 0, $5_1 + 16 | 0 | 0) | 0; + break label$3; + } + $854(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, $5_1 + 16 | 0 | 0) | 0; + $854((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + (HEAP32[($5_1 + 60 | 0) >> 2] | 0) | 0 | 0, HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + } + $49_1 = HEAP32[($5_1 + 56 | 0) >> 2] | 0; + label$5 : { + $53_1 = $5_1 + 80 | 0; + if ($53_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + return $49_1 | 0; + } + + function $671($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = Math_fround($1_1); + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $51_1 = 0, $6_1 = 0, $50_1 = 0, $49_1 = 0, $46_1 = 0; + $5_1 = global$0 - 80 | 0; + label$1 : { + $49_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $49_1; + } + HEAP32[($5_1 + 76 | 0) >> 2] = $0_1; + HEAPF32[($5_1 + 72 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 68 | 0) >> 2] = $2_1; + $6_1 = 0; + HEAP32[($5_1 + 64 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 60 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $6_1; + i64toi32_i32$0 = 0; + $51_1 = 0; + i64toi32_i32$1 = $5_1 + 40 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $51_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $5_1 + 32 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $51_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $5_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $51_1; + HEAP32[($5_1 + 28 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = $5_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $51_1; + HEAP32[($5_1 + 20 | 0) >> 2] = i64toi32_i32$0; + HEAPF64[$5_1 >> 3] = +Math_fround(HEAPF32[($5_1 + 72 | 0) >> 2]); + $872($5_1 + 16 | 0 | 0, 16896 | 0, $5_1 | 0) | 0; + HEAP32[($5_1 + 64 | 0) >> 2] = $980(HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $980($5_1 + 16 | 0 | 0) | 0; + HEAP32[($5_1 + 56 | 0) >> 2] = $963((((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + (HEAP32[($5_1 + 60 | 0) >> 2] | 0) | 0) + 1 | 0) << 0 | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!(HEAP32[($5_1 + 68 | 0) >> 2] | 0)) { + break label$4 + } + $854(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + $854((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + (HEAP32[($5_1 + 64 | 0) >> 2] | 0) | 0 | 0, $5_1 + 16 | 0 | 0) | 0; + break label$3; + } + $854(HEAP32[($5_1 + 56 | 0) >> 2] | 0 | 0, $5_1 + 16 | 0 | 0) | 0; + $854((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + (HEAP32[($5_1 + 60 | 0) >> 2] | 0) | 0 | 0, HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) | 0; + } + $46_1 = HEAP32[($5_1 + 56 | 0) >> 2] | 0; + label$5 : { + $50_1 = $5_1 + 80 | 0; + if ($50_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + return $46_1 | 0; + } + + function $672($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $8_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[$3_1 >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $977(16901 | 0, $3_1 | 0) | 0; + label$3 : { + $9_1 = $3_1 + 16 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return; + } + + function $673($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $9_1 = 0, $8_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $8_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[$3_1 >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $977(16904 | 0, $3_1 | 0) | 0; + label$3 : { + $9_1 = $3_1 + 16 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return; + } + + function $674($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAPF32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAPF64[$3_1 >> 3] = +Math_fround(HEAPF32[($3_1 + 12 | 0) >> 2]); + $977(16909 | 0, $3_1 | 0) | 0; + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $675($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $5_1 = 0, $12_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + HEAP8[($3_1 + 15 | 0) >> 0] = $0_1; + $5_1 = 24; + HEAP32[$3_1 >> 2] = ((HEAPU8[($3_1 + 15 | 0) >> 0] | 0) << $5_1 | 0) >> $5_1 | 0; + $977(16916 | 0, $3_1 | 0) | 0; + label$3 : { + $12_1 = $3_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return; + } + + function $676($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = 0; + $13_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $17_1 = $4_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $677($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $462(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $678($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $679($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $677(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $680() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $681($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $679(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $682($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $678(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $683($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 32 | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) >> 2] = 9; + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = 9; + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $684($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 32 | 0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) >> 2] = 11; + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] = 11; + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 20 | 0) >> 2] = (HEAP32[($4_1 + 20 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $685($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $10_1 = 0, $9_1 = 0, $6_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $9_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $763(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $6_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $10_1 = $3_1 + 16 | 0; + if ($10_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + return $6_1 | 0; + } + + function $686($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $687($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $688($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $689($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $521(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$6 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $690($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $661(HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0); + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $29_1 = 0; + label$6 : { + $33_1 = $5_1 + 32 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $691($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $63_1 = 0, $62_1 = 0, $58_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $62_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $659() | 0; + $661(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0, 0 | 0); + $690(HEAP32[((HEAP32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[(HEAP32[($4_1 + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) > (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($4_1 + 16 | 0) >> 2] = $662(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (25 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$5 + } + $690(HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 1 | 0 | 0) | 0; + } + $661(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, (HEAP32[((HEAP32[($4_1 + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 1 | 0 | 0); + $658(HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0); + continue label$4; + }; + } + $58_1 = 0; + $660(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0); + label$6 : { + $63_1 = $4_1 + 32 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $58_1 | 0; + } + + function $692($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $57_1 = 0, $56_1 = 0, $53_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $56_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + $7_1 = 0; + HEAP32[($6_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $738(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 16 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, $7_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + if (!((HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (9 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + if (!(((HEAP32[($6_1 + 24 | 0) >> 2] | 0) - 1 | 0 | 0) == (HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($6_1 + 28 | 0) >> 2] = 1; + break label$3; + } + } + } + HEAP32[($6_1 + 28 | 0) >> 2] = 0; + } + $53_1 = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + label$7 : { + $57_1 = $6_1 + 32 | 0; + if ($57_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $57_1; + } + return $53_1 | 0; + } + + function $693($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $10_1 = 0, $32_1 = 0, $31_1 = 0, $28_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $31_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = (HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($10_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $28_1 = 0; + label$7 : { + $32_1 = $6_1 + 16 | 0; + if ($32_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + return $28_1 | 0; + } + + function $694($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $239_1 = 0, $10_1 = 0, $22_1 = 0, $221_1 = 0, $230_1 = 0, $256_1 = 0, $339_1 = 0, $338_1 = 0, $335_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $338_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $338_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $10_1 = (HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($10_1 >>> 0 > 45 >>> 0) { + break label$3 + } + label$4 : { + switch ($10_1 | 0) { + default: + break label$3; + case 6: + $692(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 7: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$3; + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + $22_1 = 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, $22_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, $22_1 | 0) | 0; + break label$3; + case 21: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$3; + case 22: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 23: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 24: + label$29 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$29 + } + $695(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 25: + label$30 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$30 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$31 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$31 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 26: + case 27: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$32 : { + if (!((HEAP32[(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$32 + } + if (!($692(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0)) { + break label$32 + } + HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] = 28; + } + label$33 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$33 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 28: + label$34 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$34 + } + $697((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 2 | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 29: + label$35 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$35 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$36 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$36 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 30: + label$37 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$37 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 31: + label$38 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$38 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$39 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$39 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 32: + label$40 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$40 + } + $698(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 33: + $221_1 = 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, $221_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, $221_1 | 0) | 0; + break label$3; + case 34: + case 35: + $230_1 = 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, $230_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, $230_1 | 0) | 0; + break label$3; + case 36: + $239_1 = 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, $239_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, $239_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, $239_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, $239_1 | 0) | 0; + break label$3; + case 37: + $256_1 = 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, $256_1 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $256_1 | 0) | 0; + break label$3; + case 38: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 39: + $699(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + break label$3; + case 40: + label$41 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$41 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 41: + case 42: + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + break label$3; + case 43: + label$42 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$42 + } + $700(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + case 44: + break label$4; + }; + } + label$43 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$43 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + } + $335_1 = 0; + label$44 : { + $339_1 = $6_1 + 16 | 0; + if ($339_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $339_1; + } + return $335_1 | 0; + } + + function $695($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $61_1 = 0, $60_1 = 0, $57_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $60_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$5 + } + if (!((HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$4 + } + } + label$6 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + break label$3; + } + label$7 : { + if (!((HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $696(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + } + } + $57_1 = 0; + label$9 : { + $61_1 = $6_1 + 16 | 0; + if ($61_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + return $57_1 | 0; + } + + function $696($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $694(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $697($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $6_1 = HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($6_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($6_1 | 0) { + default: + break label$3; + case 1: + $702(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $703(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $13_1 = 0; + label$7 : { + $17_1 = $4_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $698($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $57_1 = 0, $56_1 = 0, $53_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $56_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $56_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != ($7_1 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $694(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[$6_1 >> 2] = HEAP32[(HEAP32[($6_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[$6_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $694(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0, 0 | 0) | 0; + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$6; + }; + } + $53_1 = 0; + label$8 : { + $57_1 = $6_1 + 32 | 0; + if ($57_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $57_1; + } + return $53_1 | 0; + } + + function $699($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $29_1 = 0, $28_1 = 0, $25_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $28_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $701(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $25_1 = 0; + label$4 : { + $29_1 = $6_1 + 16 | 0; + if ($29_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + return $25_1 | 0; + } + + function $700($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $704(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + $33_1 = 0; + label$5 : { + $37_1 = $6_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $701($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $693(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $702($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $126_1 = 0, $125_1 = 0, $122_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $125_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $125_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $707(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $710(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $694(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $709(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$7 : { + if (!((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $708(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + $122_1 = 0; + label$8 : { + $126_1 = $4_1 + 16 | 0; + if ($126_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $126_1; + } + return $122_1 | 0; + } + + function $703($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return 0 | 0; + } + + function $704($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $705(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $705($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $41_1 = 0, $40_1 = 0, $37_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + $8_1 = HEAP32[(HEAP32[($6_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + default: + break label$3; + case 1: + label$7 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + break label$3; + case 2: + break label$4; + }; + } + label$8 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + } + $37_1 = 0; + label$9 : { + $41_1 = $6_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return $37_1 | 0; + } + + function $706($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $20_1 = 0; + label$4 : { + $24_1 = $6_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $707($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $706(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $708($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $6_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$6_1 >> 2] = $3_1; + label$3 : { + if (!((HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $694(HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[$6_1 >> 2] | 0 | 0) | 0; + } + $20_1 = 0; + label$4 : { + $24_1 = $6_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $709($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $34_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $708(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $31_1 = 0; + label$6 : { + $35_1 = $6_1 + 32 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $710($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $697((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 1 | 0 | 0, HEAP32[$4_1 >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $29_1 = 0; + label$6 : { + $33_1 = $4_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $711($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $33_1 = 0, $32_1 = 0, $29_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != ($4_1 | 0) & 1 | 0)) { + break label$3 + } + $707(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $710(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + } + $29_1 = 0; + label$5 : { + $33_1 = $3_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return $29_1 | 0; + } + + function $712($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $713($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $714($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $715($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $716($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $714(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $717() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $718($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $716(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $719($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $715(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $720($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963((HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 4 | 0 | 0) | 0; + $973(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, 0 | 0, (HEAP32[($3_1 + 12 | 0) >> 2] | 0) << 4 | 0 | 0) | 0; + $13_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $17_1 = $3_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $721($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $722($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $8_1 = 0, $9_1 = 0, $25_1 = 0, $61_1 = 0, $60_1 = 0; + $8_1 = global$0 - 32 | 0; + label$1 : { + $60_1 = $8_1; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $60_1; + } + $9_1 = 0; + HEAP32[($8_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($8_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($8_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($8_1 + 4 | 0) >> 2] = $9_1; + HEAP32[$8_1 >> 2] = $9_1; + HEAP32[$8_1 >> 2] = (($529(HEAP32[($8_1 + 16 | 0) >> 2] | 0 | 0) | 0) >>> 0) % ((HEAP32[($8_1 + 24 | 0) >> 2] | 0) >>> 0) | 0; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!(HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + ((HEAP32[$8_1 >> 2] | 0) << 4 | 0) | 0) >> 2] | 0)) { + break label$4 + } + HEAP32[$8_1 >> 2] = (((HEAP32[$8_1 >> 2] | 0) + 1 | 0) >>> 0) % ((HEAP32[($8_1 + 24 | 0) >> 2] | 0) >>> 0) | 0; + $25_1 = HEAP32[($8_1 + 4 | 0) >> 2] | 0; + HEAP32[($8_1 + 4 | 0) >> 2] = $25_1 + 1 | 0; + label$6 : { + if (!($25_1 >>> 0 > (HEAP32[($8_1 + 24 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$6 + } + break label$3; + } + continue label$5; + }; + } + HEAP32[((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + ((HEAP32[$8_1 >> 2] | 0) << 4 | 0) | 0) >> 2] = HEAP32[($8_1 + 20 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + ((HEAP32[$8_1 >> 2] | 0) << 4 | 0) | 0) + 4 | 0) >> 2] = HEAP32[($8_1 + 16 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + ((HEAP32[$8_1 >> 2] | 0) << 4 | 0) | 0) + 8 | 0) >> 2] = HEAP32[($8_1 + 12 | 0) >> 2] | 0; + HEAP32[(((HEAP32[($8_1 + 28 | 0) >> 2] | 0) + ((HEAP32[$8_1 >> 2] | 0) << 4 | 0) | 0) + 12 | 0) >> 2] = HEAP32[($8_1 + 8 | 0) >> 2] | 0; + } + label$7 : { + $61_1 = $8_1 + 32 | 0; + if ($61_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + return; + } + + function $723($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $35_1 = 0, $50_1 = 0, $49_1 = 0, $46_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $49_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $49_1; + } + $6_1 = 0; + HEAP32[($5_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 8 | 0) >> 2] = (($529(HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) | 0) >>> 0) % ((HEAP32[($5_1 + 20 | 0) >> 2] | 0) >>> 0) | 0; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 8 | 0) >> 2] | 0) << 4 | 0) | 0) >> 2] | 0)) { + break label$4 + } + label$6 : { + if ($855(HEAP32[(((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 8 | 0) >> 2] | 0) << 4 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) | 0) { + break label$6 + } + HEAP32[($5_1 + 28 | 0) >> 2] = (HEAP32[($5_1 + 24 | 0) >> 2] | 0) + ((HEAP32[($5_1 + 8 | 0) >> 2] | 0) << 4 | 0) | 0; + break label$3; + } + HEAP32[($5_1 + 8 | 0) >> 2] = (((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 1 | 0) >>> 0) % ((HEAP32[($5_1 + 20 | 0) >> 2] | 0) >>> 0) | 0; + $35_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $35_1 + 1 | 0; + label$7 : { + if (!($35_1 >>> 0 > (HEAP32[($5_1 + 20 | 0) >> 2] | 0) >>> 0 & 1 | 0)) { + break label$7 + } + HEAP32[($5_1 + 28 | 0) >> 2] = 0; + break label$3; + } + continue label$5; + }; + } + HEAP32[($5_1 + 28 | 0) >> 2] = 0; + } + $46_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + label$8 : { + $50_1 = $5_1 + 32 | 0; + if ($50_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + return $46_1 | 0; + } + + function $724($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $7_1 = 0, $59_1 = 0, $58_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $58_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $58_1; + } + $7_1 = 0; + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $7_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($6_1 + 12 | 0) >> 2] | 0 | 0) < (HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$3 + } + label$5 : { + if (!((HEAP32[(((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 4 | 0) | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $722(HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 4 | 0) | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 4 | 0) | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 4 | 0) | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[(((HEAP32[($6_1 + 28 | 0) >> 2] | 0) + ((HEAP32[($6_1 + 12 | 0) >> 2] | 0) << 4 | 0) | 0) + 12 | 0) >> 2] | 0 | 0); + } + HEAP32[($6_1 + 12 | 0) >> 2] = (HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 1 | 0; + continue label$4; + }; + } + label$6 : { + $59_1 = $6_1 + 32 | 0; + if ($59_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $59_1; + } + return; + } + + function $725($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $6_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $6_1 = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + -1 | 0; + label$1 : { + label$2 : { + if ($6_1 >>> 0 > 8 >>> 0) { + break label$2 + } + label$3 : { + switch ($6_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 16919; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 16925; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 16930; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 16941; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 16951; + break label$1; + case 7: + HEAP32[($3_1 + 12 | 0) >> 2] = 16958; + break label$1; + case 6: + HEAP32[($3_1 + 12 | 0) >> 2] = 16969; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 16974; + break label$1; + case 8: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 16981; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 16986; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $726($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $22_1 = 0, $17_1 = 0, $19_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $17_1 = $720(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 16 | 0) >> 2] = $17_1; + $19_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $23_1 = $5_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $727($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $721(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $728($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $38_1 = 0, $37_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $37_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >>> 0 > (Math_imul(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0, 3) >>> 2 | 0) >>> 0 & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) << 1 | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $720(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $724(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + $721(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + } + label$4 : { + $38_1 = $3_1 + 16 | 0; + if ($38_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + return; + } + + function $729($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 1 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $730($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 2 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $731($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 3 | 0, HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $732($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 4 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $733($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $25_1 = 0, $33_1 = 0, $32_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 5 | 0, HEAP32[((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $25_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($25_1 + 8 | 0) >> 2] = (HEAP32[($25_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $33_1 = $5_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return; + } + + function $734($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 8 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $735($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 7 | 0, HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $736($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $23_1 = 0, $31_1 = 0, $30_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 6 | 0, HEAP32[(HEAP32[($5_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $23_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($23_1 + 8 | 0) >> 2] = (HEAP32[($23_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $31_1 = $5_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return; + } + + function $737($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $25_1 = 0, $33_1 = 0, $32_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $32_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $32_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + break label$3; + } + $722(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 9 | 0, HEAP32[(HEAP32[((HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0); + $25_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[($25_1 + 8 | 0) >> 2] = (HEAP32[($25_1 + 8 | 0) >> 2] | 0) + 1 | 0; + $728(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0); + } + label$5 : { + $33_1 = $5_1 + 16 | 0; + if ($33_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + return; + } + + function $738($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $54_1 = 0, $53_1 = 0, $50_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $53_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $53_1; + } + HEAP32[($5_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 12 | 0) >> 2] = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $723(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if ((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$5 + } + if (HEAP32[($5_1 + 16 | 0) >> 2] | 0) { + break label$4 + } + if (!((HEAP32[(HEAP32[($5_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + } + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5_1 + 28 | 0) >> 2] = $738(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) | 0; + break label$3; + } + HEAP32[($5_1 + 28 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + } + $50_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + label$6 : { + $54_1 = $5_1 + 32 | 0; + if ($54_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $54_1; + } + return $50_1 | 0; + } + + function $739($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(16 | 0) | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $16_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $20_1 = $5_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $740($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $48_1 = 0, $47_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $809(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $718(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $478(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $727(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + $48_1 = $3_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $741($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $9_1 = 0, $62_1 = 0, $61_1 = 0, $52_1 = 0, $58_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $61_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $61_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + $9_1 = HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + if ($9_1 >>> 0 > 16 >>> 0) { + break label$3 + } + label$4 : { + switch ($9_1 | 0) { + case 10: + HEAP32[(HEAP32[($6_1 + 24 | 0) >> 2] | 0) >> 2] = 0; + $577(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $733(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + case 11: + HEAP32[(HEAP32[($6_1 + 24 | 0) >> 2] | 0) >> 2] = 2; + $577(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $733(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + case 12: + HEAP32[(HEAP32[($6_1 + 24 | 0) >> 2] | 0) >> 2] = 1; + $577(HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $733(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + case 9: + HEAP32[(HEAP32[($6_1 + 24 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = 8; + $733(HEAP32[($6_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 20 | 0) >> 2] | 0 | 0); + break label$3; + case 6: + case 7: + break label$3; + default: + break label$4; + }; + } + $52_1 = HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$6_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[($6_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($52_1 | 0, 16994 | 0, $6_1 | 0); + } + $58_1 = 0; + label$9 : { + $62_1 = $6_1 + 32 | 0; + if ($62_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + return $58_1 | 0; + } + + function $742($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $77_1 = 0, $123_1 = 0, $122_1 = 0, $81_1 = 0, $100_1 = 0, $103_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $122_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $122_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (10 | 0) & 1 | 0)) { + break label$6 + } + if ((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$5 + } + } + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (11 | 0) & 1 | 0)) { + break label$7 + } + if ((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0) { + break label$5 + } + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (12 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + break label$3; + } + $77_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $77_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $77_1; + $81_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $528(HEAP32[((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($81_1 | 0, 17036 | 0, $7_1 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$8 + } + $100_1 = $726(8 | 0, 0 | 0, HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] = $100_1; + } + $103_1 = 0; + $741(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$9 : { + $123_1 = $7_1 + 32 | 0; + if ($123_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $123_1; + } + return $103_1 | 0; + } + + function $743($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $24_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $963(24 | 0) | 0; + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6_1 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = 0; + $21_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$3 : { + $25_1 = $6_1 + 32 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $744($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $25_1 = 0, $24_1 = 0, $21_1 = 0; + $6_1 = global$0 - 32 | 0; + label$1 : { + $24_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $963(24 | 0) | 0; + HEAP32[(HEAP32[($6_1 + 12 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($6_1 + 28 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($6_1 + 24 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($6_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] = 0; + $21_1 = HEAP32[($6_1 + 12 | 0) >> 2] | 0; + label$3 : { + $25_1 = $6_1 + 32 | 0; + if ($25_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $25_1; + } + return $21_1 | 0; + } + + function $745($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $7_1 = 0, $48_1 = 0, $47_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($7_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($7_1 | 0) { + default: + $531(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + break label$3; + case 1: + break label$4; + }; + } + $533(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$9 : { + $48_1 = $3_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $746($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $24_1 = 0, $23_1 = 0, $20_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $23_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $8_1 = (HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($8_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($8_1 | 0) { + default: + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $20_1 = 0; + label$7 : { + $24_1 = $4_1 + 16 | 0; + if ($24_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $24_1; + } + return $20_1 | 0; + } + + function $747($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $1020 = 0, $1068 = 0, $1478 = Math_fround(0), $1415 = 0, $1447 = 0, $1446 = 0, $154_1 = 0, $1443 = 0; + $4_1 = global$0 - 272 | 0; + label$1 : { + $1446 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $1446; + } + HEAP32[($4_1 + 264 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 260 | 0) >> 2] = $1_1; + $8_1 = (HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + label$4 : { + if ($8_1 >>> 0 > 45 >>> 0) { + break label$4 + } + label$5 : { + switch ($8_1 | 0) { + default: + break label$4; + case 7: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$42 : { + label$43 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$43 + } + HEAP32[($4_1 + 256 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = 0 - (HEAP32[((HEAP32[($4_1 + 256 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) | 0; + $520(HEAP32[($4_1 + 256 | 0) >> 2] | 0 | 0); + break label$42; + } + label$44 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$44 + } + HEAP32[($4_1 + 252 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(-Math_fround(HEAPF32[((HEAP32[($4_1 + 252 | 0) >> 2] | 0) + 36 | 0) >> 2])); + $520(HEAP32[($4_1 + 252 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 8: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$45 : { + label$46 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$46 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$46 + } + HEAP32[($4_1 + 248 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 244 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 248 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + (HEAP32[((HEAP32[($4_1 + 244 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) | 0; + $520(HEAP32[($4_1 + 248 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 244 | 0) >> 2] | 0 | 0); + break label$45; + } + label$47 : { + label$48 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$48 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$48 + } + HEAP32[($4_1 + 240 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 236 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($4_1 + 240 | 0) >> 2] | 0) + 36 | 0) >> 2]) + Math_fround(HEAPF32[((HEAP32[($4_1 + 236 | 0) >> 2] | 0) + 36 | 0) >> 2])); + $520(HEAP32[($4_1 + 240 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 236 | 0) >> 2] | 0 | 0); + break label$47; + } + label$49 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$49 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (5 | 0) & 1 | 0)) { + break label$49 + } + HEAP32[($4_1 + 232 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 228 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 5; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 9; + $154_1 = $669(HEAP32[((HEAP32[($4_1 + 232 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($4_1 + 228 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = $154_1; + $520(HEAP32[($4_1 + 232 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 228 | 0) >> 2] | 0 | 0); + } + } + } + break label$4; + case 9: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$50 : { + label$51 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$51 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$51 + } + HEAP32[($4_1 + 224 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 220 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 224 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) - (HEAP32[((HEAP32[($4_1 + 220 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) | 0; + $520(HEAP32[($4_1 + 224 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 220 | 0) >> 2] | 0 | 0); + break label$50; + } + label$52 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$52 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$52 + } + HEAP32[($4_1 + 216 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 212 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($4_1 + 216 | 0) >> 2] | 0) + 36 | 0) >> 2]) - Math_fround(HEAPF32[((HEAP32[($4_1 + 212 | 0) >> 2] | 0) + 36 | 0) >> 2])); + $520(HEAP32[($4_1 + 216 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 212 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 10: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$53 : { + label$54 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$54 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$54 + } + HEAP32[($4_1 + 208 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 204 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_imul(HEAP32[((HEAP32[($4_1 + 208 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0, HEAP32[((HEAP32[($4_1 + 204 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0); + $520(HEAP32[($4_1 + 208 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 204 | 0) >> 2] | 0 | 0); + break label$53; + } + label$55 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$55 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$55 + } + HEAP32[($4_1 + 200 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 196 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($4_1 + 200 | 0) >> 2] | 0) + 36 | 0) >> 2]) * Math_fround(HEAPF32[((HEAP32[($4_1 + 196 | 0) >> 2] | 0) + 36 | 0) >> 2])); + $520(HEAP32[($4_1 + 200 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 196 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 11: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$56 : { + label$57 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$57 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$57 + } + HEAP32[($4_1 + 192 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 188 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + label$58 : { + if (HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) { + break label$58 + } + HEAP32[(HEAP32[($4_1 + 260 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17114 | 0, 0 | 0); + HEAP32[($4_1 + 268 | 0) >> 2] = 0; + break label$3; + } + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 192 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) / (HEAP32[((HEAP32[($4_1 + 188 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $520(HEAP32[($4_1 + 192 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 188 | 0) >> 2] | 0 | 0); + break label$56; + } + label$59 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$59 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$59 + } + HEAP32[($4_1 + 184 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 180 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + label$60 : { + if (!(Math_fround(HEAPF32[((HEAP32[($4_1 + 180 | 0) >> 2] | 0) + 36 | 0) >> 2]) == Math_fround(0 | 0) & 1 | 0)) { + break label$60 + } + HEAP32[(HEAP32[($4_1 + 260 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17114 | 0, 0 | 0); + HEAP32[($4_1 + 268 | 0) >> 2] = 0; + break label$3; + } + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(Math_fround(HEAPF32[((HEAP32[($4_1 + 184 | 0) >> 2] | 0) + 36 | 0) >> 2]) / Math_fround(HEAPF32[((HEAP32[($4_1 + 180 | 0) >> 2] | 0) + 36 | 0) >> 2])); + $520(HEAP32[($4_1 + 184 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 180 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 12: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$61 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$61 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$61 + } + HEAP32[($4_1 + 176 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 172 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + label$62 : { + if (HEAP32[((HEAP32[($4_1 + 172 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) { + break label$62 + } + HEAP32[(HEAP32[($4_1 + 260 | 0) >> 2] | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17114 | 0, 0 | 0); + HEAP32[($4_1 + 268 | 0) >> 2] = 0; + break label$3; + } + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 176 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) % (HEAP32[((HEAP32[($4_1 + 172 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) | 0; + $520(HEAP32[($4_1 + 176 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 172 | 0) >> 2] | 0 | 0); + } + break label$4; + case 13: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$63 : { + label$64 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$64 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$64 + } + HEAP32[($4_1 + 168 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 164 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 168 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) < (HEAP32[((HEAP32[($4_1 + 164 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 168 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 164 | 0) >> 2] | 0 | 0); + break label$63; + } + label$65 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$65 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$65 + } + HEAP32[($4_1 + 160 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 156 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 160 | 0) >> 2] | 0) + 36 | 0) >> 2]) < Math_fround(HEAPF32[((HEAP32[($4_1 + 156 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 160 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 156 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 14: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$66 : { + label$67 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$67 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$67 + } + HEAP32[($4_1 + 152 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 148 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 152 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) > (HEAP32[((HEAP32[($4_1 + 148 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 152 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 148 | 0) >> 2] | 0 | 0); + break label$66; + } + label$68 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$68 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$68 + } + HEAP32[($4_1 + 144 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 140 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 144 | 0) >> 2] | 0) + 36 | 0) >> 2]) > Math_fround(HEAPF32[((HEAP32[($4_1 + 140 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 144 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 140 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 15: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$69 : { + label$70 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$70 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$70 + } + HEAP32[($4_1 + 136 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 132 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 136 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) <= (HEAP32[((HEAP32[($4_1 + 132 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 136 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 132 | 0) >> 2] | 0 | 0); + break label$69; + } + label$71 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$71 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$71 + } + HEAP32[($4_1 + 128 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 124 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 128 | 0) >> 2] | 0) + 36 | 0) >> 2]) <= Math_fround(HEAPF32[((HEAP32[($4_1 + 124 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 128 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 124 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 16: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$72 : { + label$73 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$73 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$73 + } + HEAP32[($4_1 + 120 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 116 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 120 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) >= (HEAP32[((HEAP32[($4_1 + 116 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 120 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 116 | 0) >> 2] | 0 | 0); + break label$72; + } + label$74 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$74 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$74 + } + HEAP32[($4_1 + 112 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 108 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 112 | 0) >> 2] | 0) + 36 | 0) >> 2]) >= Math_fround(HEAPF32[((HEAP32[($4_1 + 108 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 112 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 108 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 17: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$75 : { + label$76 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$76 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$76 + } + HEAP32[($4_1 + 104 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 100 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 104 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 100 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 104 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 100 | 0) >> 2] | 0 | 0); + break label$75; + } + label$77 : { + label$78 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$78 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$78 + } + HEAP32[($4_1 + 96 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 92 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 96 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) == (HEAP32[((HEAP32[($4_1 + 92 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 96 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 92 | 0) >> 2] | 0 | 0); + break label$77; + } + label$79 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$79 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$79 + } + HEAP32[($4_1 + 88 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 84 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 88 | 0) >> 2] | 0) + 36 | 0) >> 2]) == Math_fround(HEAPF32[((HEAP32[($4_1 + 84 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 88 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 84 | 0) >> 2] | 0 | 0); + } + } + } + break label$4; + case 18: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$80 : { + label$81 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$81 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$81 + } + HEAP32[($4_1 + 80 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 76 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 80 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4_1 + 76 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 80 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 76 | 0) >> 2] | 0 | 0); + break label$80; + } + label$82 : { + label$83 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$83 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$83 + } + HEAP32[($4_1 + 72 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 68 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = (HEAP32[((HEAP32[($4_1 + 72 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[($4_1 + 68 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 72 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 68 | 0) >> 2] | 0 | 0); + break label$82; + } + label$84 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$84 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$84 + } + HEAP32[($4_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 60 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 64 | 0) >> 2] | 0) + 36 | 0) >> 2]) != Math_fround(HEAPF32[((HEAP32[($4_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2]) & 1 | 0; + $520(HEAP32[($4_1 + 64 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 60 | 0) >> 2] | 0 | 0); + } + } + } + break label$4; + case 19: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$85 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$85 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$85 + } + HEAP32[($4_1 + 56 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + $1020 = 0; + label$86 : { + if (!(HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0)) { + break label$86 + } + $1020 = (HEAP32[((HEAP32[($4_1 + 52 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0); + } + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = $1020 & 1 | 0; + $520(HEAP32[($4_1 + 56 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 52 | 0) >> 2] | 0 | 0); + } + break label$4; + case 20: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$87 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$87 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$87 + } + HEAP32[($4_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 44 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + $1068 = 1; + label$88 : { + if (HEAP32[((HEAP32[($4_1 + 48 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) { + break label$88 + } + $1068 = (HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0); + } + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = $1068 & 1 | 0; + $520(HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0); + } + break label$4; + case 21: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$89 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$89 + } + HEAP32[($4_1 + 40 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = ((HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) ^ -1 | 0) & 1 | 0; + $520(HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0); + } + break label$4; + case 22: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$90 : { + label$91 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$91 + } + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $520(HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0); + break label$90; + } + label$92 : { + label$93 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$93 + } + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 4; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + $520(HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0); + break label$92; + } + label$94 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$94 + } + HEAP32[($4_1 + 28 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 4 | 0) >> 2] = 5; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAPF32[((HEAP32[($4_1 + 28 | 0) >> 2] | 0) + 36 | 0) >> 2]); + $520(HEAP32[($4_1 + 28 | 0) >> 2] | 0 | 0); + } + } + } + break label$4; + case 23: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$95 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$95 + } + HEAP32[($4_1 + 24 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0; + label$96 : { + label$97 : { + if (!(HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0)) { + break label$97 + } + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 23; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + $520(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0); + break label$96; + } + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 23; + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = HEAP32[($4_1 + 16 | 0) >> 2] | 0; + $520(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0); + } + } + break label$4; + case 24: + label$98 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$98 + } + $748(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 25: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 26: + case 27: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$99 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$99 + } + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 28: + label$100 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$100 + } + $750(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 29: + label$101 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$101 + } + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + label$102 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$102 + } + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 30: + label$103 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$103 + } + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 31: + label$104 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$104 + } + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + label$105 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$105 + } + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 32: + label$106 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$106 + } + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 33: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 34: + case 35: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 36: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 44 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 48 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 37: + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 38: + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 39: + $751(HEAP32[($4_1 + 264 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + break label$4; + case 40: + label$107 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$107 + } + $749(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 41: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$108 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$108 + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 3; + HEAPF32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = Math_fround(HEAP32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0); + $520(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0); + } + break label$4; + case 42: + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + label$109 : { + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$109 + } + HEAP32[($4_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 264 | 0) >> 2] | 0) >> 2] = 2; + $1478 = Math_fround(HEAPF32[((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 36 | 0) >> 2]); + label$110 : { + label$111 : { + if (!(Math_fround(Math_abs($1478)) < Math_fround(2147483648.0))) { + break label$111 + } + $1415 = ~~$1478; + break label$110; + } + $1415 = -2147483648; + } + HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] = $1415; + $520(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0); + } + break label$4; + case 43: + label$112 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$112 + } + $752(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + break label$4; + case 44: + break label$5; + }; + } + label$113 : { + if (!((HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$113 + } + $747(HEAP32[((HEAP32[($4_1 + 264 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 260 | 0) >> 2] | 0 | 0) | 0; + } + } + HEAP32[($4_1 + 268 | 0) >> 2] = 0; + } + $1443 = HEAP32[($4_1 + 268 | 0) >> 2] | 0; + label$114 : { + $1447 = $4_1 + 272 | 0; + if ($1447 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $1447; + } + return $1443 | 0; + } + + function $748($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $749(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $749(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $27_1 = 0; + label$5 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $749($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $747(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $750($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $17_1 = 0, $16_1 = 0, $13_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $16_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $6_1 = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($6_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($6_1 | 0) { + default: + break label$3; + case 1: + $754(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 2: + break label$4; + }; + } + $755(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $13_1 = 0; + label$7 : { + $17_1 = $4_1 + 16 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $13_1 | 0; + } + + function $751($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $23_1 = 0, $22_1 = 0, $19_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $22_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $753(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $19_1 = 0; + label$4 : { + $23_1 = $4_1 + 16 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 | 0; + } + + function $752($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $756(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $27_1 = 0; + label$5 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $753($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $746(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $754($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $114_1 = 0, $113_1 = 0, $110_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $113_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $113_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $759(HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $762(HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $747(HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $761(HEAP32[(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + label$7 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $760(HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $110_1 = 0; + label$8 : { + $114_1 = $4_1 + 16 | 0; + if ($114_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $114_1; + } + return $110_1 | 0; + } + + function $755($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + return 0 | 0; + } + + function $756($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $757(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $757($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $6_1 = 0, $35_1 = 0, $34_1 = 0, $31_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $34_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + $6_1 = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($6_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($6_1 | 0) { + default: + break label$3; + case 1: + label$7 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 2: + break label$4; + }; + } + label$8 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + } + $31_1 = 0; + label$9 : { + $35_1 = $4_1 + 16 | 0; + if ($35_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $35_1; + } + return $31_1 | 0; + } + + function $758($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $16_1 = 0; + label$4 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $759($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $758(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $760($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + label$3 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $747(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + $16_1 = 0; + label$4 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $761($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $760(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $762($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $31_1 = 0, $30_1 = 0, $27_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $30_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $750(HEAP32[$4_1 >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $27_1 = 0; + label$6 : { + $31_1 = $4_1 + 16 | 0; + if ($31_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $31_1; + } + return $27_1 | 0; + } + + function $763($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $34_1 = 0, $33_1 = 0, $30_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != ($4_1 | 0) & 1 | 0)) { + break label$3 + } + $759(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, $3_1 + 8 | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $762(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, $3_1 + 8 | 0 | 0) | 0; + } + $30_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$5 : { + $34_1 = $3_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return $30_1 | 0; + } + + function $764($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $19_1 = 0, $18_1 = 0, $15_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(24 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP8[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 0] = 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + $15_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $19_1 = $3_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $765($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $22_1 = 0, $21_1 = 0, $18_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $21_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(24 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP8[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 0] = 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = $5_1; + $18_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $22_1 = $4_1 + 16 | 0; + if ($22_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + return $18_1 | 0; + } + + function $766($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $17_1 = 0, $34_1 = 0, $33_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + $17_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$4 : { + if ($17_1 >>> 0 > 1 >>> 0) { + break label$4 + } + label$5 : { + switch ($17_1 | 0) { + default: + break label$4; + case 1: + break label$5; + }; + } + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $470(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$8 : { + $34_1 = $3_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return; + } + + function $767($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $768($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $766(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $769() { + var $2_1 = 0, $3_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $8_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $12_1 = $2_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $770($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $768(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $771($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $23_1 = 0, $37_1 = 0, $36_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $767(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $23_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $23_1; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = $23_1; + break label$3; + } + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $37_1 = $4_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return; + } + + function $772($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP8[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 0] = 0; + } + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $773($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $10_1 = 0, $64_1 = 0, $63_1 = 0, $26_1 = 0, $29_1 = 0, $48_1 = 0, $51_1 = 0, $60_1 = 0; + $4_1 = global$0 - 48 | 0; + label$1 : { + $63_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + HEAP32[($4_1 + 40 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 36 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $10_1 = (HEAP32[(HEAP32[($4_1 + 40 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + label$4 : { + if ($10_1 >>> 0 > 1 >>> 0) { + break label$4 + } + label$5 : { + switch ($10_1 | 0) { + default: + label$7 : { + if (!((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[(HEAP32[($4_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $26_1 = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + $29_1 = HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = $29_1; + $435($26_1 | 0, 17132 | 0, $4_1 | 0); + HEAP32[($4_1 + 44 | 0) >> 2] = 0; + break label$3; + } + break label$4; + case 1: + break label$5; + }; + } + label$8 : { + if (!((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(HEAP32[($4_1 + 36 | 0) >> 2] | 0) >> 2] = 1; + $48_1 = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + $51_1 = HEAP32[((HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $51_1; + $435($48_1 | 0, 17132 | 0, $4_1 + 16 | 0 | 0); + HEAP32[($4_1 + 44 | 0) >> 2] = 0; + break label$3; + } + } + HEAP32[($4_1 + 44 | 0) >> 2] = 0; + } + $60_1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + label$9 : { + $64_1 = $4_1 + 48 | 0; + if ($64_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $64_1; + } + return $60_1 | 0; + } + + function $774($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $20_1 = 0, $88_1 = 0, $87_1 = 0, $84_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $87_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $87_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $590(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $20_1 = (HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($20_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($20_1 | 0) { + default: + $813(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + break label$4; + }; + } + $814(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $576(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $812(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$6; + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$8 : { + if (HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] | 0) { + break label$8 + } + $773(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $84_1 = 0; + label$9 : { + $88_1 = $7_1 + 32 | 0; + if ($88_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $88_1; + } + return $84_1 | 0; + } + + function $775($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $44_1 = 0, $43_1 = 0, $40_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $43_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $774(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $591(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$4 : { + if (!((HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + } + } + $40_1 = 0; + label$5 : { + $44_1 = $7_1 + 32 | 0; + if ($44_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $44_1; + } + return $40_1 | 0; + } + + function $776($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $19_1 = 0, $18_1 = 0, $12_1 = 0, $15_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $12_1 = $506(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $12_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + $15_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $19_1 = $3_1 + 16 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $15_1 | 0; + } + + function $777($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $21_1 = 0, $20_1 = 0, $14_1 = 0, $17_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + $14_1 = $506(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $14_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $17_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $21_1 = $4_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return $17_1 | 0; + } + + function $778($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $28_1 = 0, $27_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $27_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $27_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $28_1 = $3_1 + 16 | 0; + if ($28_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $28_1; + } + return; + } + + function $779($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $780($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $778(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $781() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $782($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $780(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $783($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $779(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $784($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + $4_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if ($4_1 >>> 0 > 9 >>> 0) { + break label$2 + } + label$3 : { + switch ($4_1 | 0) { + default: + HEAP32[($3_1 + 12 | 0) >> 2] = 17163; + break label$1; + case 1: + HEAP32[($3_1 + 12 | 0) >> 2] = 17181; + break label$1; + case 2: + HEAP32[($3_1 + 12 | 0) >> 2] = 17198; + break label$1; + case 3: + HEAP32[($3_1 + 12 | 0) >> 2] = 17215; + break label$1; + case 4: + HEAP32[($3_1 + 12 | 0) >> 2] = 17235; + break label$1; + case 5: + HEAP32[($3_1 + 12 | 0) >> 2] = 17250; + break label$1; + case 6: + HEAP32[($3_1 + 12 | 0) >> 2] = 17259; + break label$1; + case 7: + HEAP32[($3_1 + 12 | 0) >> 2] = 17269; + break label$1; + case 8: + HEAP32[($3_1 + 12 | 0) >> 2] = 17277; + break label$1; + case 9: + break label$3; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 17289; + break label$1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = 17163; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $785($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(28 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = -1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 20 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] = $4_1; + $16_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $20_1 = $3_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $786($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $964(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $787($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $788($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $786(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $789() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $790($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $788(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $791($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $787(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $792($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0; + $4_1 = global$0 - 16 | 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[((HEAP32[$4_1 >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return; + } + + function $793($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $794($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $18_1 = 0, $17_1 = 0, $14_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(20 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 12 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 16 | 0) >> 2] = $4_1; + $14_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return $14_1 | 0; + } + + function $795($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $5_1 = 0, $52_1 = 0, $51_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $51_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $5_1 = HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if ($5_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($5_1 | 0) { + default: + break label$3; + case 1: + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$8 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + break label$3; + case 2: + break label$4; + }; + } + label$9 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $964(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$10 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$10 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$11 : { + $52_1 = $3_1 + 16 | 0; + if ($52_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $52_1; + } + return; + } + + function $796($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $797($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $795(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $798() { + var $2_1 = 0, $3_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $8_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $12_1 = $2_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $799($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $797(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $800($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $23_1 = 0, $37_1 = 0, $36_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $796(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $23_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $23_1; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = $23_1; + break label$3; + } + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $37_1 = $4_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return; + } + + function $801($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $963(24 | 0) | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[$5_1 >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + HEAP32[(HEAP32[$5_1 >> 2] | 0) >> 2] = 0; + $16_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + $20_1 = $5_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $802($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $48_1 = 0, $47_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $47_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $520(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + label$4 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $799(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + label$5 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $462(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0); + } + label$6 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $727(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$7 : { + $48_1 = $3_1 + 16 | 0; + if ($48_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $48_1; + } + return; + } + + function $803($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $804($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $14_1 = 0, $13_1 = 0, $10_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $13_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = 2; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $10_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $14_1 = $3_1 + 16 | 0; + if ($14_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + return $10_1 | 0; + } + + function $805($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $7_1 = 0, $34_1 = 0, $33_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $33_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $33_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $7_1 = (HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($7_1 >>> 0 > 1 >>> 0) { + break label$3 + } + label$4 : { + switch ($7_1 | 0) { + default: + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $545(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + break label$3; + case 1: + break label$4; + }; + } + label$7 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $470(HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0); + } + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$8 : { + $34_1 = $3_1 + 16 | 0; + if ($34_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $34_1; + } + return; + } + + function $806($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $807($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $805(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $808() { + var $2_1 = 0, $3_1 = 0, $12_1 = 0, $11_1 = 0, $8_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $11_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(8 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + $8_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $12_1 = $2_1 + 16 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + return $8_1 | 0; + } + + function $809($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $807(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $810($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $23_1 = 0, $37_1 = 0, $36_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $36_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $806(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $23_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $23_1; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = $23_1; + break label$3; + } + HEAP32[((HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $37_1 = $4_1 + 16 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return; + } + + function $811($0_1, $1_1, $2_1, $3_1, $4_1, $5_1, $6_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + $6_1 = $6_1 | 0; + var $9_1 = 0, $10_1 = 0, $39_1 = 0, $38_1 = 0, $35_1 = 0; + $9_1 = global$0 - 32 | 0; + label$1 : { + $38_1 = $9_1; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $38_1; + } + $10_1 = 0; + HEAP32[($9_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($9_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($9_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($9_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($9_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($9_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($9_1 + 4 | 0) >> 2] = $6_1; + HEAP32[$9_1 >> 2] = $738(HEAP32[($9_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($9_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0, $10_1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$9_1 >> 2] | 0 | 0) == ($10_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($9_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($9_1 + 20 | 0) >> 2] | 0; + HEAP32[((HEAP32[($9_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($9_1 + 16 | 0) >> 2] | 0; + HEAP32[((HEAP32[($9_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($9_1 + 12 | 0) >> 2] | 0; + $731(HEAP32[($9_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($9_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($9_1 + 8 | 0) >> 2] | 0 | 0); + break label$3; + } + HEAP32[(HEAP32[($9_1 + 4 | 0) >> 2] | 0) >> 2] = 1; + $592(HEAP32[$9_1 >> 2] | 0 | 0, HEAP32[((HEAP32[($9_1 + 24 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) | 0; + } + $35_1 = 0; + label$5 : { + $39_1 = $9_1 + 32 | 0; + if ($39_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $39_1; + } + return $35_1 | 0; + } + + function $812($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $148_1 = 0, $192_1 = 0, $191_1 = 0, $24_1 = 0, $96_1 = 0, $98_1 = 0, $100_1 = 0, $119_1 = 0, $121_1 = 0, $123_1 = 0, $127_1 = 0, $188_1 = 0; + $6_1 = global$0 - 80 | 0; + label$1 : { + $191_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $191_1; + } + HEAP32[($6_1 + 72 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 68 | 0) >> 2] = $1_1; + HEAP32[($6_1 + 64 | 0) >> 2] = $2_1; + HEAP32[($6_1 + 60 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 56 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($6_1 + 52 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($6_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[(HEAP32[($6_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$3 + } + $24_1 = $726(8 | 0, 0 | 0, HEAP32[($6_1 + 72 | 0) >> 2] | 0 | 0) | 0; + HEAP32[(HEAP32[($6_1 + 68 | 0) >> 2] | 0) >> 2] = $24_1; + } + label$4 : { + label$5 : { + label$6 : { + if ((HEAP32[($6_1 + 56 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$6 + } + if ((HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$6 + } + if (!((HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$5 + } + } + HEAP32[($6_1 + 76 | 0) >> 2] = 0; + break label$4; + } + label$7 : { + label$8 : { + if ((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$8 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$7 + } + } + if (HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0) { + break label$7 + } + HEAP32[($6_1 + 76 | 0) >> 2] = 0; + break label$4; + } + label$9 : { + label$10 : { + if ((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0) { + break label$10 + } + if (!((HEAP32[((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$9 + } + } + if (!((HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0) >>> 0 > 0 >>> 0 & 1 | 0)) { + break label$9 + } + HEAP32[(HEAP32[($6_1 + 60 | 0) >> 2] | 0) >> 2] = 1; + $96_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $98_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $100_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = $100_1; + HEAP32[$6_1 >> 2] = $98_1; + $435($96_1 | 0, 17298 | 0, $6_1 | 0); + HEAP32[($6_1 + 76 | 0) >> 2] = 0; + break label$4; + } + label$11 : { + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$11 + } + HEAP32[(HEAP32[($6_1 + 60 | 0) >> 2] | 0) >> 2] = 1; + $119_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $121_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $123_1 = HEAP32[((HEAP32[($6_1 + 68 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $127_1 = HEAP32[(HEAP32[((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6_1 + 28 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6_1 + 24 | 0) >> 2] = $127_1; + HEAP32[($6_1 + 20 | 0) >> 2] = $123_1; + HEAP32[($6_1 + 16 | 0) >> 2] = $121_1; + $435($119_1 | 0, 17352 | 0, $6_1 + 16 | 0 | 0); + HEAP32[($6_1 + 76 | 0) >> 2] = 0; + break label$4; + } + HEAP32[($6_1 + 44 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6_1 + 40 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[((HEAP32[($6_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$12 : while (1) { + $148_1 = 1; + label$13 : { + if ((HEAP32[($6_1 + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$13 + } + $148_1 = (HEAP32[($6_1 + 44 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$14 : { + if (!($148_1 & 1 | 0)) { + break label$14 + } + HEAP32[($6_1 + 36 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 40 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($6_1 + 32 | 0) >> 2] = HEAP32[(HEAP32[($6_1 + 44 | 0) >> 2] | 0) >> 2] | 0; + label$15 : { + label$16 : { + if ((HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0) { + break label$16 + } + if (!((HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$15 + } + } + $811(HEAP32[(HEAP32[($6_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 32 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 36 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 48 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 52 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 64 | 0) >> 2] | 0 | 0, HEAP32[($6_1 + 60 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($6_1 + 40 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 40 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = HEAP32[((HEAP32[($6_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$12; + } + break label$12; + }; + HEAP32[($6_1 + 76 | 0) >> 2] = 0; + } + $188_1 = HEAP32[($6_1 + 76 | 0) >> 2] | 0; + label$17 : { + $192_1 = $6_1 + 80 | 0; + if ($192_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $192_1; + } + return $188_1 | 0; + } + + function $813($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $85_1 = 0, $84_1 = 0, $54_1 = 0, $56_1 = 0, $63_1 = 0, $66_1 = 0, $75_1 = 0, $81_1 = 0; + $5_1 = global$0 - 64 | 0; + label$1 : { + $84_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + $6_1 = 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $738(HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($5_1 + 56 | 0) >> 2] | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5_1 + 44 | 0) >> 2] = $546(HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + label$8 : { + if (!((HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + break label$7; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $54_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $56_1 = HEAP32[(HEAP32[($5_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $56_1; + $435($54_1 | 0, 17406 | 0, $5_1 | 0); + } + break label$5; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $63_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + $66_1 = $725(HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $66_1; + $435($63_1 | 0, 17435 | 0, $5_1 + 16 | 0 | 0); + } + break label$3; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $75_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0; + HEAP32[($5_1 + 32 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 56 | 0) >> 2] | 0) >> 2] | 0; + $435($75_1 | 0, 17464 | 0, $5_1 + 32 | 0 | 0); + } + $81_1 = 0; + label$9 : { + $85_1 = $5_1 + 64 | 0; + if ($85_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $85_1; + } + return $81_1 | 0; + } + + function $814($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $85_1 = 0, $84_1 = 0, $54_1 = 0, $56_1 = 0, $63_1 = 0, $66_1 = 0, $75_1 = 0, $81_1 = 0; + $5_1 = global$0 - 64 | 0; + label$1 : { + $84_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $84_1; + } + $6_1 = 0; + HEAP32[($5_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 56 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 52 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $6_1; + HEAP32[($5_1 + 48 | 0) >> 2] = $738(HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, 1 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[($5_1 + 48 | 0) >> 2] | 0 | 0) != ($6_1 | 0) & 1 | 0)) { + break label$4 + } + label$5 : { + label$6 : { + if (!((HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) == (7 | 0) & 1 | 0)) { + break label$6 + } + if (!((HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($5_1 + 44 | 0) >> 2] = $546(HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + label$8 : { + if (!((HEAP32[($5_1 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 48 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 20 | 0) >> 2] = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + break label$7; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $54_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $56_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $56_1; + $435($54_1 | 0, 17406 | 0, $5_1 | 0); + } + break label$5; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $63_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + $66_1 = $725(HEAP32[(HEAP32[($5_1 + 48 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $66_1; + $435($63_1 | 0, 17435 | 0, $5_1 + 16 | 0 | 0); + } + break label$3; + } + HEAP32[(HEAP32[($5_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + $75_1 = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + HEAP32[($5_1 + 32 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 56 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $435($75_1 | 0, 17464 | 0, $5_1 + 32 | 0 | 0); + } + $81_1 = 0; + label$9 : { + $85_1 = $5_1 + 64 | 0; + if ($85_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $85_1; + } + return $81_1 | 0; + } + + function $815($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $11_1 = 0, $69_1 = 0, $68_1 = 0, $65_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $68_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $68_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $11_1 = (HEAP32[(HEAP32[($7_1 + 24 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($11_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($11_1 | 0) { + default: + $813(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$3; + case 1: + $814(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$7 : { + label$8 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$8 + } + $576(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0; + $812(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $610(HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + break label$7; + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + break label$3; + case 2: + break label$4; + }; + } + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $65_1 = 0; + label$9 : { + $69_1 = $7_1 + 32 | 0; + if ($69_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $69_1; + } + return $65_1 | 0; + } + + function $816($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $37_1 = 0, $36_1 = 0, $33_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $36_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $36_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($7_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($7_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($7_1 + 8 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $815(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($7_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($7_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $33_1 = 0; + label$6 : { + $37_1 = $7_1 + 32 | 0; + if ($37_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $37_1; + } + return $33_1 | 0; + } + + function $817($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $9_1 = 0, $63_1 = 0, $62_1 = 0, $25_1 = 0, $28_1 = 0, $47_1 = 0, $50_1 = 0, $59_1 = 0; + $5_1 = global$0 - 48 | 0; + label$1 : { + $62_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $62_1; + } + HEAP32[($5_1 + 40 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 36 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 32 | 0) >> 2] = $2_1; + $9_1 = (HEAP32[(HEAP32[($5_1 + 36 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + label$4 : { + if ($9_1 >>> 0 > 2 >>> 0) { + break label$4 + } + label$5 : { + switch ($9_1 | 0) { + default: + label$8 : { + if (!((HEAP32[((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(HEAP32[($5_1 + 32 | 0) >> 2] | 0) >> 2] = 1; + $25_1 = HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $28_1 = HEAP32[((HEAP32[((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $28_1; + $435($25_1 | 0, 17485 | 0, $5_1 | 0); + HEAP32[($5_1 + 44 | 0) >> 2] = 0; + break label$3; + } + break label$4; + case 1: + label$9 : { + if (!((HEAP32[((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0 | 0) != (HEAP32[((HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[(HEAP32[($5_1 + 32 | 0) >> 2] | 0) >> 2] = 1; + $47_1 = HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $50_1 = HEAP32[((HEAP32[((HEAP32[($5_1 + 40 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($5_1 + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $50_1; + $435($47_1 | 0, 17485 | 0, $5_1 + 16 | 0 | 0); + HEAP32[($5_1 + 44 | 0) >> 2] = 0; + break label$3; + } + break label$4; + case 2: + break label$5; + }; + } + } + HEAP32[($5_1 + 44 | 0) >> 2] = 0; + } + $59_1 = HEAP32[($5_1 + 44 | 0) >> 2] | 0; + label$10 : { + $63_1 = $5_1 + 48 | 0; + if ($63_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $63_1; + } + return $59_1 | 0; + } + + function $818($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $51_1 = 0, $50_1 = 0, $17_1 = 0, $47_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $50_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $50_1; + } + HEAP32[($5_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (14 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] = 1; + $17_1 = HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $528(HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($17_1 | 0, 17516 | 0, $5_1 | 0); + HEAP32[($5_1 + 28 | 0) >> 2] = 0; + break label$3; + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 20 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$5 : { + label$6 : while (1) { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($5_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $817(HEAP32[($5_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$6; + }; + } + HEAP32[($5_1 + 28 | 0) >> 2] = 0; + } + $47_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + label$8 : { + $51_1 = $5_1 + 32 | 0; + if ($51_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $51_1; + } + return $47_1 | 0; + } + + function $819($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = 0; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$1 : { + label$2 : while (1) { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$1 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[$3_1 >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 8 | 0) >> 2] = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$2; + }; + } + return HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0; + } + + function $820($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0; + $3_1 = global$0 - 16 | 0; + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$1 : { + label$2 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$2 + } + HEAP32[$3_1 >> 2] = HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[$3_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[(HEAP32[$3_1 >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 12 | 0) >> 2] = 0; + break label$1; + } + } + HEAP32[($3_1 + 12 | 0) >> 2] = 1; + } + return HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0; + } + + function $821($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $7_1 = 0, $23_1 = 0, $55_1 = 0, $80_1 = 0, $79_1 = 0, $32_1 = 0, $35_1 = 0, $64_1 = 0, $67_1 = 0, $76_1 = 0; + $3_1 = global$0 - 48 | 0; + label$1 : { + $79_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $79_1; + } + HEAP32[($3_1 + 44 | 0) >> 2] = $0_1; + $7_1 = (HEAP32[(HEAP32[($3_1 + 44 | 0) >> 2] | 0) >> 2] | 0) + -1 | 0; + label$3 : { + if ($7_1 >>> 0 > 2 >>> 0) { + break label$3 + } + label$4 : { + switch ($7_1 | 0) { + default: + HEAP32[($3_1 + 40 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[($3_1 + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + $23_1 = 24; + label$8 : { + if (!((((HEAPU8[((HEAP32[($3_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 0] | 0) << $23_1 | 0) >> $23_1 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + $32_1 = HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $35_1 = HEAP32[(HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[$3_1 >> 2] = $35_1; + $436($32_1 | 0, 17549 | 0, $3_1 | 0); + } + HEAP8[((HEAP32[($3_1 + 40 | 0) >> 2] | 0) + 12 | 0) >> 0] = 1; + } + break label$3; + case 1: + HEAP32[($3_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] | 0; + label$9 : { + if (!((HEAP32[($3_1 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $55_1 = 24; + label$10 : { + if (!((((HEAPU8[((HEAP32[($3_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 0] | 0) << $55_1 | 0) >> $55_1 | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$10 + } + $64_1 = HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + $67_1 = HEAP32[((HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($3_1 + 20 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($3_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = $67_1; + $436($64_1 | 0, 17549 | 0, $3_1 + 16 | 0 | 0); + } + HEAP8[((HEAP32[($3_1 + 36 | 0) >> 2] | 0) + 12 | 0) >> 0] = 1; + } + break label$3; + case 2: + break label$4; + }; + } + } + $76_1 = 0; + label$11 : { + $80_1 = $3_1 + 48 | 0; + if ($80_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $80_1; + } + return $76_1 | 0; + } + + function $822($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $30_1 = 0, $29_1 = 0, $26_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $29_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $29_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[$4_1 >> 2] = HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[$4_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + $821(HEAP32[$4_1 >> 2] | 0 | 0) | 0; + } + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $26_1 = 0; + label$6 : { + $30_1 = $4_1 + 16 | 0; + if ($30_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $30_1; + } + return $26_1 | 0; + } + + function $823($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $44_1 = 0, $43_1 = 0, $40_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $43_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $43_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + if (!((HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + label$4 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + $772(HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0); + } + } + $40_1 = 0; + label$5 : { + $44_1 = $3_1 + 16 | 0; + if ($44_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $44_1; + } + return $40_1 | 0; + } + + function $824($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $48_1 = 0, $70_1 = 0, $108_1 = 0, $107_1 = 0, $74_1 = 0, $76_1 = 0, $94_1 = 0, $104_1 = 0; + $4_1 = global$0 - 64 | 0; + label$1 : { + $107_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $107_1; + } + HEAP32[($4_1 + 56 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 52 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 48 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0; + label$3 : { + label$4 : { + label$5 : { + if (!((HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + if (!((HEAP32[((HEAP32[($4_1 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (14 | 0) & 1 | 0)) { + break label$5 + } + HEAP32[($4_1 + 44 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 48 | 0) >> 2] | 0) + 24 | 0) >> 2] | 0; + label$6 : { + label$7 : { + if (!((HEAP32[($4_1 + 44 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($4_1 + 40 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$8 : { + if (!((HEAP32[($4_1 + 40 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$8 + } + $48_1 = 0; + HEAP32[(HEAP32[($4_1 + 52 | 0) >> 2] | 0) >> 2] = $48_1; + HEAP32[($4_1 + 60 | 0) >> 2] = $48_1; + break label$3; + } + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 40 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$9 : { + label$10 : while (1) { + if (!((HEAP32[($4_1 + 36 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + HEAP32[($4_1 + 32 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 36 | 0) >> 2] | 0) >> 2] | 0; + label$11 : { + if (!((HEAP32[($4_1 + 32 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $70_1 = 24; + if (((HEAPU8[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 12 | 0) >> 0] | 0) << $70_1 | 0) >> $70_1 | 0) { + break label$11 + } + $74_1 = HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $76_1 = HEAP32[((HEAP32[($4_1 + 44 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 32 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[$4_1 >> 2] = $76_1; + $435($74_1 | 0, 17595 | 0, $4_1 | 0); + HEAP32[(HEAP32[($4_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + } + HEAP32[($4_1 + 36 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$10; + }; + } + break label$6; + } + HEAP32[(HEAP32[($4_1 + 52 | 0) >> 2] | 0) >> 2] = 0; + } + break label$4; + } + label$12 : { + if (!((HEAP32[($4_1 + 48 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$12 + } + $94_1 = HEAP32[((HEAP32[($4_1 + 56 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[($4_1 + 16 | 0) >> 2] = $528(HEAP32[((HEAP32[($4_1 + 48 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) | 0; + $435($94_1 | 0, 17639 | 0, $4_1 + 16 | 0 | 0); + HEAP32[(HEAP32[($4_1 + 52 | 0) >> 2] | 0) >> 2] = 1; + } + } + HEAP32[($4_1 + 60 | 0) >> 2] = 0; + } + $104_1 = HEAP32[($4_1 + 60 | 0) >> 2] | 0; + label$13 : { + $108_1 = $4_1 + 64 | 0; + if ($108_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $108_1; + } + return $104_1 | 0; + } + + function $825($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $6_1 = 0, $47_1 = 0, $46_1 = 0, $43_1 = 0; + $5_1 = global$0 - 16 | 0; + label$1 : { + $46_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $46_1; + } + $6_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $2_1; + HEAP32[$5_1 >> 2] = $6_1; + HEAP32[$5_1 >> 2] = $819(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + label$4 : { + if (!((HEAP32[$5_1 >> 2] | 0) >>> 0 > $6_1 >>> 0 & 1 | 0)) { + break label$4 + } + label$5 : { + if (!((HEAP32[$5_1 >> 2] | 0) >>> 0 > 1 >>> 0 & 1 | 0)) { + break label$5 + } + $436(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17671 | 0, 0 | 0); + } + label$6 : { + if (!(($820(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$6 + } + $436(HEAP32[((HEAP32[($5_1 + 12 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17723 | 0, 0 | 0); + } + break label$3; + } + $823(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $822(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $824(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + $43_1 = 0; + label$7 : { + $47_1 = $5_1 + 16 | 0; + if ($47_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $47_1; + } + return $43_1 | 0; + } + + function $826($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $28_1 = 0, $15_1 = 0, $31_1 = 0, $32_1 = 0, $36_1 = 0, $39_1 = 0, $52_1 = 0, $61_1 = 0, $89_1 = 0, $88_1 = 0, $165_1 = 0, $185_1 = 0, $195_1 = 0, $85_1 = 0; + $5_1 = global$0 - 32 | 0; + label$1 : { + $88_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $88_1; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $15_1 = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[($5_1 + 8 | 0) >> 2] = $15_1; + label$4 : { + if (!((HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) != ($15_1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($5_1 + 8 | 0) >> 2] = $538(HEAP32[($5_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $28_1 = (HEAP32[($5_1 + 28 | 0) >> 2] | 0) + 4 | 0; + $31_1 = (HEAP32[($5_1 + 8 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $31_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $165_1 = i64toi32_i32$0; + i64toi32_i32$0 = $28_1; + HEAP32[i64toi32_i32$0 >> 2] = $165_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $32_1 = 24; + HEAP32[(i64toi32_i32$0 + $32_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $32_1 | 0) >> 2] | 0; + $36_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $36_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $185_1 = i64toi32_i32$1; + i64toi32_i32$1 = $28_1 + $36_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $185_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $39_1 = 8; + i64toi32_i32$2 = $31_1 + $39_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $195_1 = i64toi32_i32$0; + i64toi32_i32$0 = $28_1 + $39_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $195_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$5 : while (1) { + $52_1 = 0; + label$6 : { + if (!((HEAP32[($5_1 + 16 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $52_1 = (HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0); + } + label$7 : { + if (!($52_1 & 1 | 0)) { + break label$7 + } + $61_1 = 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 16 | 0) >> 2] | 0) >> 2] | 0; + HEAP32[$5_1 >> 2] = $61_1; + label$8 : { + if (!((HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) != ($61_1 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[$5_1 >> 2] = $538(HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + label$9 : { + if (!((HEAP32[$5_1 >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$9 + } + $591(HEAP32[($5_1 + 8 | 0) >> 2] | 0 | 0, HEAP32[$5_1 >> 2] | 0 | 0, HEAP32[($5_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 20 | 0) >> 2] | 0 | 0) | 0; + } + HEAP32[($5_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 16 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$5; + } + break label$5; + }; + } + $85_1 = 0; + label$10 : { + $89_1 = $5_1 + 32 | 0; + if ($89_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $89_1; + } + return $85_1 | 0; + } + + function $827($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $20_1 = 0, $24_1 = 0, $25_1 = 0, $29_1 = 0, $32_1 = 0, $75_1 = 0, $74_1 = 0, $140_1 = 0, $160_1 = 0, $170_1 = 0, $71_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $74_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $74_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $610(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $590(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $20_1 = (HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0; + $24_1 = (HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0; + i64toi32_i32$2 = $24_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $140_1 = i64toi32_i32$0; + i64toi32_i32$0 = $20_1; + HEAP32[i64toi32_i32$0 >> 2] = $140_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + $25_1 = 24; + HEAP32[(i64toi32_i32$0 + $25_1 | 0) >> 2] = HEAP32[(i64toi32_i32$2 + $25_1 | 0) >> 2] | 0; + $29_1 = 16; + i64toi32_i32$2 = i64toi32_i32$2 + $29_1 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $160_1 = i64toi32_i32$1; + i64toi32_i32$1 = $20_1 + $29_1 | 0; + HEAP32[i64toi32_i32$1 >> 2] = $160_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $32_1 = 8; + i64toi32_i32$2 = $24_1 + $32_1 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $170_1 = i64toi32_i32$0; + i64toi32_i32$0 = $20_1 + $32_1 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $170_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + label$3 : { + if (!((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $816(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $818(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $825(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + $826(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 40 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$4 : { + if (!((HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + } + $71_1 = 0; + label$5 : { + $75_1 = $7_1 + 32 | 0; + if ($75_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $75_1; + } + return $71_1 | 0; + } + + function $828($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $5_1 = 0, $7_1 = 0, $13_1 = 0, $179_1 = 0, $178_1 = 0, $50_1 = 0, $53_1 = 0, $101_1 = 0, $104_1 = 0, $150_1 = 0, $153_1 = 0, $163_1 = 0, $166_1 = 0, $175_1 = 0; + $5_1 = global$0 - 96 | 0; + label$1 : { + $178_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $178_1; + } + $7_1 = -1; + HEAP32[($5_1 + 92 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 88 | 0) >> 2] = $1_1; + HEAP32[($5_1 + 84 | 0) >> 2] = $2_1; + HEAP32[($5_1 + 80 | 0) >> 2] = $7_1; + HEAP32[($5_1 + 76 | 0) >> 2] = $7_1; + HEAP32[($5_1 + 72 | 0) >> 2] = 0; + HEAP32[($5_1 + 68 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 92 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[($5_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 88 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + $13_1 = HEAP32[((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[($5_1 + 80 | 0) >> 2] = $13_1; + HEAP32[($5_1 + 76 | 0) >> 2] = $13_1; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($5_1 + 64 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($5_1 + 60 | 0) >> 2] = HEAP32[(HEAP32[($5_1 + 64 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + label$7 : { + if (!((HEAP32[((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (HEAP32[($5_1 + 80 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$7 + } + label$8 : { + if (!(($588(HEAP32[($5_1 + 68 | 0) >> 2] | 0 | 0, HEAP32[($5_1 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$8 + } + HEAP32[(HEAP32[($5_1 + 84 | 0) >> 2] | 0) >> 2] = 1; + $50_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $53_1 = $468(HEAP32[(HEAP32[($5_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = $527(HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[$5_1 >> 2] = $53_1; + $435($50_1 | 0, 17764 | 0, $5_1 | 0); + } + break label$6; + } + label$9 : { + label$10 : { + if (!((HEAP32[((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (HEAP32[($5_1 + 76 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$10 + } + HEAP32[($5_1 + 76 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$11 : { + label$12 : { + if (!((HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) == (25 | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + if ((HEAP32[(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$13 + } + if (!((HEAP32[(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$12 + } + } + HEAP32[($5_1 + 72 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + break label$11; + } + HEAP32[(HEAP32[($5_1 + 84 | 0) >> 2] | 0) >> 2] = 1; + $101_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $104_1 = $468(HEAP32[(HEAP32[($5_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 20 | 0) >> 2] = $527(HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 16 | 0) >> 2] = $104_1; + $435($101_1 | 0, 17764 | 0, $5_1 + 16 | 0 | 0); + } + break label$9; + } + label$14 : { + label$15 : { + if (!((HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) == (25 | 0) & 1 | 0)) { + break label$15 + } + label$16 : { + if ((HEAP32[(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0) { + break label$16 + } + if (!((HEAP32[(HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$15 + } + } + label$17 : { + if (!((HEAP32[(HEAP32[((HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) != (HEAP32[($5_1 + 72 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$17 + } + HEAP32[(HEAP32[($5_1 + 84 | 0) >> 2] | 0) >> 2] = 1; + $150_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $153_1 = $468(HEAP32[(HEAP32[($5_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 36 | 0) >> 2] = $527(HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 32 | 0) >> 2] = $153_1; + $435($150_1 | 0, 17796 | 0, $5_1 + 32 | 0 | 0); + } + break label$14; + } + HEAP32[(HEAP32[($5_1 + 84 | 0) >> 2] | 0) >> 2] = 1; + $163_1 = HEAP32[((HEAP32[($5_1 + 60 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + $166_1 = $468(HEAP32[(HEAP32[($5_1 + 68 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 52 | 0) >> 2] = $527(HEAP32[(HEAP32[($5_1 + 60 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + HEAP32[($5_1 + 48 | 0) >> 2] = $166_1; + $435($163_1 | 0, 17764 | 0, $5_1 + 48 | 0 | 0); + } + } + } + } + HEAP32[($5_1 + 64 | 0) >> 2] = HEAP32[((HEAP32[($5_1 + 64 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $175_1 = 0; + label$18 : { + $179_1 = $5_1 + 96 | 0; + if ($179_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $179_1; + } + return $175_1 | 0; + } + + function $829($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $82_1 = 0, $81_1 = 0, $64_1 = 0; + $3_1 = global$0 - 32 | 0; + label$1 : { + $81_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $81_1; + } + $4_1 = 0; + HEAP32[($3_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 24 | 0) >> 2] = -1; + HEAP32[($3_1 + 20 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 16 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $524() | 0; + HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$5 : { + if (!((HEAP32[($3_1 + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$5 + } + label$6 : { + if (!((HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (HEAP32[($3_1 + 16 | 0) >> 2] | 0 | 0) & 1 | 0)) { + break label$6 + } + HEAP32[($3_1 + 24 | 0) >> 2] = (HEAP32[($3_1 + 24 | 0) >> 2] | 0) + 1 | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + label$7 : { + if (!((HEAP32[(HEAP32[($3_1 + 4 | 0) >> 2] | 0) >> 2] | 0 | 0) == (25 | 0) & 1 | 0)) { + break label$7 + } + if (!((HEAP32[(HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$7 + } + HEAP32[($3_1 + 20 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($3_1 + 4 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + $525(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, $491(HEAP32[($3_1 + 20 | 0) >> 2] | 0 | 0) | 0 | 0); + } + } + } + HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$4; + }; + } + $64_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 28 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + HEAP32[($3_1 + 20 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) >> 2] | 0; + $525(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0, $491(HEAP32[($3_1 + 20 | 0) >> 2] | 0 | 0) | 0 | 0); + HEAP32[((HEAP32[((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$8 : { + $82_1 = $3_1 + 32 | 0; + if ($82_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $82_1; + } + return $64_1 | 0; + } + + function $830($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $20_1 = 0, $19_1 = 0, $15_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $659() | 0; + $691(HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + $828(HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + if (HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0) { + break label$3 + } + $829(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0) | 0; + } + $15_1 = 0; + $660(HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 0); + label$4 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $15_1 | 0; + } + + function $831($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $17_1 = 0, $64_1 = 0, $131_1 = 0, $171_1 = 0, $170_1 = 0, $135_1 = 0, $167_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $170_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $170_1; + } + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + label$3 : { + label$4 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$4 + } + $17_1 = 0; + HEAP32[($7_1 + 8 | 0) >> 2] = $17_1; + label$5 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != ($17_1 | 0) & 1 | 0)) { + break label$5 + } + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$6 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + $605(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + $830(HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, $7_1 + 8 | 0 | 0) | 0; + label$7 : { + label$8 : { + if (HEAP32[($7_1 + 8 | 0) >> 2] | 0) { + break label$8 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + break label$7; + } + $64_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $64_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $64_1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17832 | 0, 0 | 0); + } + break label$3; + } + label$9 : { + label$10 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (2 | 0) & 1 | 0)) { + break label$10 + } + label$11 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$11 + } + $624(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + break label$9; + } + label$12 : { + if (!((HEAP32[(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) >> 2] | 0 | 0) == (3 | 0) & 1 | 0)) { + break label$12 + } + label$13 : { + if (!((HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$13 + } + $628(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + } + label$14 : { + if (!(($584(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0) | 0 | 0) == (1 | 0) & 1 | 0)) { + break label$14 + } + $131_1 = 1; + HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] = $131_1; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = $131_1; + $135_1 = HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0; + HEAP32[$7_1 >> 2] = $468(HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $435($135_1 | 0, 17858 | 0, $7_1 | 0); + } + $605(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$15 : { + label$16 : { + if (HEAP32[(HEAP32[($7_1 + 12 | 0) >> 2] | 0) >> 2] | 0) { + break label$16 + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 10; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 12 | 0) >> 2] = HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 16 | 0) >> 2] = HEAP32[(HEAP32[((HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 36 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0) >> 2] | 0; + break label$15; + } + HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 4 | 0) >> 2] = 1; + $435(HEAP32[((HEAP32[($7_1 + 24 | 0) >> 2] | 0) + 32 | 0) >> 2] | 0 | 0, 17832 | 0, 0 | 0); + } + } + } + } + $167_1 = 0; + label$17 : { + $171_1 = $7_1 + 32 | 0; + if ($171_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $171_1; + } + return $167_1 | 0; + } + + function $832($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $7_1 = 0, $17_1 = 0, $16_1 = 0, $8_1 = 0; + $7_1 = global$0 - 32 | 0; + label$1 : { + $16_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $16_1; + } + $8_1 = 0; + HEAP32[($7_1 + 28 | 0) >> 2] = $0_1; + HEAP32[($7_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($7_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($7_1 + 12 | 0) >> 2] = $4_1; + $831(HEAP32[($7_1 + 28 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0, HEAP32[($7_1 + 12 | 0) >> 2] | 0 | 0) | 0; + label$3 : { + $17_1 = $7_1 + 32 | 0; + if ($17_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + return $8_1 | 0; + } + + function $833($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $5_1 = 0, $20_1 = 0, $19_1 = 0, $16_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $19_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $5_1 = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $963(24 | 0) | 0; + HEAP32[(HEAP32[($4_1 + 4 | 0) >> 2] | 0) >> 2] = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 12 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 16 | 0) >> 2] = $5_1; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 20 | 0) >> 2] = $5_1; + $16_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + label$3 : { + $20_1 = $4_1 + 16 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + return $16_1 | 0; + } + + function $834($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $8_1 = 0, $7_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$3 : { + $8_1 = $3_1 + 16 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return; + } + + function $835($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $4_1 = 0, $15_1 = 0, $14_1 = 0, $11_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $14_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + $4_1 = 0; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($3_1 + 8 | 0) >> 2] | 0) >> 2] = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 4 | 0) >> 2] = $4_1; + HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] = $4_1; + $11_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + label$3 : { + $15_1 = $3_1 + 16 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + return $11_1 | 0; + } + + function $836($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $18_1 = 0, $17_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $17_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $17_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + label$3 : { + if (!((HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + $834(HEAP32[(HEAP32[($3_1 + 12 | 0) >> 2] | 0) >> 2] | 0 | 0); + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$4 : { + $18_1 = $3_1 + 16 | 0; + if ($18_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + return; + } + + function $837() { + var $2_1 = 0, $3_1 = 0, $13_1 = 0, $12_1 = 0, $9_1 = 0; + $2_1 = global$0 - 16 | 0; + label$1 : { + $12_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + $3_1 = 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $963(12 | 0) | 0; + HEAP32[(HEAP32[($2_1 + 12 | 0) >> 2] | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $3_1; + HEAP32[((HEAP32[($2_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $3_1; + $9_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$3 : { + $13_1 = $2_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $9_1 | 0; + } + + function $838($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $21_1 = 0, $20_1 = 0; + $3_1 = global$0 - 16 | 0; + label$1 : { + $20_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : while (1) { + if (!((HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$3 + } + HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[((HEAP32[($3_1 + 8 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + $836(HEAP32[($3_1 + 8 | 0) >> 2] | 0 | 0); + HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + continue label$4; + }; + } + $964(HEAP32[($3_1 + 12 | 0) >> 2] | 0 | 0); + label$5 : { + $21_1 = $3_1 + 16 | 0; + if ($21_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $21_1; + } + return; + } + + function $839($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $42_1 = 0, $41_1 = 0, $38_1 = 0; + $4_1 = global$0 - 32 | 0; + label$1 : { + $41_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + HEAP32[($4_1 + 24 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 16 | 0) >> 2] = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 24 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + label$3 : { + label$4 : { + label$5 : while (1) { + if (!((HEAP32[($4_1 + 12 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$4 + } + HEAP32[($4_1 + 8 | 0) >> 2] = HEAP32[(HEAP32[($4_1 + 12 | 0) >> 2] | 0) >> 2] | 0; + label$6 : { + if (!((HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) != (0 | 0) & 1 | 0)) { + break label$6 + } + if ($855(HEAP32[(HEAP32[($4_1 + 8 | 0) >> 2] | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0) | 0) { + break label$6 + } + HEAP32[($4_1 + 28 | 0) >> 2] = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + break label$3; + } + HEAP32[($4_1 + 12 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0; + continue label$5; + }; + } + HEAP32[($4_1 + 16 | 0) >> 2] = $833(HEAP32[($4_1 + 20 | 0) >> 2] | 0 | 0, HEAP32[(HEAP32[($4_1 + 24 | 0) >> 2] | 0) >> 2] | 0 | 0) | 0; + $840(HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0, HEAP32[($4_1 + 16 | 0) >> 2] | 0 | 0); + HEAP32[($4_1 + 28 | 0) >> 2] = HEAP32[($4_1 + 16 | 0) >> 2] | 0; + } + $38_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + label$7 : { + $42_1 = $4_1 + 32 | 0; + if ($42_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $42_1; + } + return $38_1 | 0; + } + + function $840($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0, $27_1 = 0, $41_1 = 0, $40_1 = 0; + $4_1 = global$0 - 16 | 0; + label$1 : { + $40_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $40_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $835(HEAP32[($4_1 + 8 | 0) >> 2] | 0 | 0) | 0; + $8_1 = HEAP32[($4_1 + 12 | 0) >> 2] | 0; + HEAP32[$8_1 >> 2] = (HEAP32[$8_1 >> 2] | 0) + 1 | 0; + label$3 : { + label$4 : { + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + if (!((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] | 0 | 0) == (0 | 0) & 1 | 0)) { + break label$4 + } + $27_1 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 8 | 0) >> 2] = $27_1; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = $27_1; + break label$3; + } + HEAP32[((HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0) + 8 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 4 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] | 0; + HEAP32[((HEAP32[($4_1 + 12 | 0) >> 2] | 0) + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + } + label$5 : { + $41_1 = $4_1 + 16 | 0; + if ($41_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $41_1; + } + return; + } + + function $841($0_1) { + $0_1 = $0_1 | 0; + return 0 | 0; + } + + function $842() { + return 25892 | 0; + } + + function $843() { + return 25128 | 0; + } + + function $844($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, $3_1 = 0, $4_1 = 0; + $2_1 = 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : while (1) { + if ((HEAPU8[($2_1 + 17904 | 0) >> 0] | 0 | 0) == ($0_1 | 0)) { + break label$3 + } + $3_1 = 87; + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != (87 | 0)) { + continue label$4 + } + break label$2; + }; + } + $3_1 = $2_1; + if ($2_1) { + break label$2 + } + $4_1 = 18e3; + break label$1; + } + $2_1 = 18e3; + label$5 : while (1) { + $0_1 = HEAPU8[$2_1 >> 0] | 0; + $4_1 = $2_1 + 1 | 0; + $2_1 = $4_1; + if ($0_1) { + continue label$5 + } + $2_1 = $4_1; + $3_1 = $3_1 + -1 | 0; + if ($3_1) { + continue label$5 + } + break label$5; + }; + } + return $929($4_1 | 0, HEAP32[($1_1 + 20 | 0) >> 2] | 0 | 0) | 0 | 0; + } + + function $845($0_1) { + $0_1 = $0_1 | 0; + return $844($0_1 | 0, HEAP32[(($846() | 0) + 176 | 0) >> 2] | 0 | 0) | 0 | 0; + } + + function $846() { + return $843() | 0 | 0; + } + + function $847($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0, $4_1 = 0, $3_1 = 0; + label$1 : { + $1_1 = global$0 - 32 | 0; + $3_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $3_1; + } + label$3 : { + label$4 : { + $0_1 = fimport$2($0_1 | 0, $1_1 + 8 | 0 | 0) | 0; + if ($0_1) { + break label$4 + } + $0_1 = 59; + $2_1 = 1; + if ((HEAPU8[($1_1 + 8 | 0) >> 0] | 0 | 0) == (2 | 0)) { + break label$3 + } + } + HEAP32[($842() | 0) >> 2] = $0_1; + $2_1 = 0; + } + label$5 : { + $4_1 = $1_1 + 32 | 0; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + return $2_1 | 0; + } + + function $848($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0; + label$1 : { + $2_1 = $850($0_1 | 0, $1_1 | 0) | 0; + $1_1 = $963($2_1 + 1 | 0 | 0) | 0; + if (!$1_1) { + break label$1 + } + $972($1_1 | 0, $0_1 | 0, $2_1 | 0) | 0; + HEAP8[($1_1 + $2_1 | 0) >> 0] = 0; + } + return $1_1 | 0; + } + + function $849($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $4_1 = 0; + $3_1 = ($2_1 | 0) != (0 | 0); + label$1 : { + label$2 : { + label$3 : { + label$4 : { + if (!$2_1) { + break label$4 + } + if (!($0_1 & 3 | 0)) { + break label$4 + } + $4_1 = $1_1 & 255 | 0; + label$5 : while (1) { + if ((HEAPU8[$0_1 >> 0] | 0 | 0) == ($4_1 | 0)) { + break label$3 + } + $0_1 = $0_1 + 1 | 0; + $2_1 = $2_1 + -1 | 0; + $3_1 = ($2_1 | 0) != (0 | 0); + if (!$2_1) { + break label$4 + } + if ($0_1 & 3 | 0) { + continue label$5 + } + break label$5; + }; + } + if (!$3_1) { + break label$2 + } + } + if ((HEAPU8[$0_1 >> 0] | 0 | 0) == ($1_1 & 255 | 0 | 0)) { + break label$1 + } + label$6 : { + label$7 : { + if ($2_1 >>> 0 < 4 >>> 0) { + break label$7 + } + $4_1 = Math_imul($1_1 & 255 | 0, 16843009); + label$8 : while (1) { + $3_1 = (HEAP32[$0_1 >> 2] | 0) ^ $4_1 | 0; + if ((($3_1 ^ -1 | 0) & ($3_1 + -16843009 | 0) | 0) & -2139062144 | 0) { + break label$6 + } + $0_1 = $0_1 + 4 | 0; + $2_1 = $2_1 + -4 | 0; + if ($2_1 >>> 0 > 3 >>> 0) { + continue label$8 + } + break label$8; + }; + } + if (!$2_1) { + break label$2 + } + } + $3_1 = $1_1 & 255 | 0; + label$9 : while (1) { + if ((HEAPU8[$0_1 >> 0] | 0 | 0) == ($3_1 | 0)) { + break label$1 + } + $0_1 = $0_1 + 1 | 0; + $2_1 = $2_1 + -1 | 0; + if ($2_1) { + continue label$9 + } + break label$9; + }; + } + return 0 | 0; + } + return $0_1 | 0; + } + + function $850($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0; + $2_1 = $849($0_1 | 0, 0 | 0, $1_1 | 0) | 0; + return ($2_1 ? $2_1 - $0_1 | 0 : $1_1) | 0; + } + + function $851($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $3_1 = 0, $2_1 = 0; + label$1 : { + label$2 : { + $2_1 = $1_1 & 255 | 0; + if (!$2_1) { + break label$2 + } + label$3 : { + if (!($0_1 & 3 | 0)) { + break label$3 + } + label$4 : while (1) { + $3_1 = HEAPU8[$0_1 >> 0] | 0; + if (!$3_1) { + break label$1 + } + if (($3_1 | 0) == ($1_1 & 255 | 0 | 0)) { + break label$1 + } + $0_1 = $0_1 + 1 | 0; + if ($0_1 & 3 | 0) { + continue label$4 + } + break label$4; + }; + } + label$5 : { + $3_1 = HEAP32[$0_1 >> 2] | 0; + if ((($3_1 ^ -1 | 0) & ($3_1 + -16843009 | 0) | 0) & -2139062144 | 0) { + break label$5 + } + $2_1 = Math_imul($2_1, 16843009); + label$6 : while (1) { + $3_1 = $3_1 ^ $2_1 | 0; + if ((($3_1 ^ -1 | 0) & ($3_1 + -16843009 | 0) | 0) & -2139062144 | 0) { + break label$5 + } + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + $0_1 = $0_1 + 4 | 0; + if (!((($3_1 ^ -1 | 0) & ($3_1 + -16843009 | 0) | 0) & -2139062144 | 0)) { + continue label$6 + } + break label$6; + }; + } + label$7 : { + label$8 : while (1) { + $3_1 = $0_1; + $2_1 = HEAPU8[$3_1 >> 0] | 0; + if (!$2_1) { + break label$7 + } + $0_1 = $3_1 + 1 | 0; + if (($2_1 | 0) != ($1_1 & 255 | 0 | 0)) { + continue label$8 + } + break label$8; + }; + } + return $3_1 | 0; + } + return $0_1 + ($980($0_1 | 0) | 0) | 0 | 0; + } + return $0_1 | 0; + } + + function $852($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $0_1 = $851($0_1 | 0, $1_1 | 0) | 0; + return ((HEAPU8[$0_1 >> 0] | 0 | 0) == ($1_1 & 255 | 0 | 0) ? $0_1 : 0) | 0; + } + + function $853($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0; + label$1 : { + label$2 : { + if (($1_1 ^ $0_1 | 0) & 3 | 0) { + break label$2 + } + label$3 : { + if (!($1_1 & 3 | 0)) { + break label$3 + } + label$4 : while (1) { + $2_1 = HEAPU8[$1_1 >> 0] | 0; + HEAP8[$0_1 >> 0] = $2_1; + if (!$2_1) { + break label$1 + } + $0_1 = $0_1 + 1 | 0; + $1_1 = $1_1 + 1 | 0; + if ($1_1 & 3 | 0) { + continue label$4 + } + break label$4; + }; + } + $2_1 = HEAP32[$1_1 >> 2] | 0; + if ((($2_1 ^ -1 | 0) & ($2_1 + -16843009 | 0) | 0) & -2139062144 | 0) { + break label$2 + } + label$5 : while (1) { + HEAP32[$0_1 >> 2] = $2_1; + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + $0_1 = $0_1 + 4 | 0; + $1_1 = $1_1 + 4 | 0; + if (!((($2_1 ^ -1 | 0) & ($2_1 + -16843009 | 0) | 0) & -2139062144 | 0)) { + continue label$5 + } + break label$5; + }; + } + $2_1 = HEAPU8[$1_1 >> 0] | 0; + HEAP8[$0_1 >> 0] = $2_1; + if (!$2_1) { + break label$1 + } + label$6 : while (1) { + $2_1 = HEAPU8[($1_1 + 1 | 0) >> 0] | 0; + HEAP8[($0_1 + 1 | 0) >> 0] = $2_1; + $0_1 = $0_1 + 1 | 0; + $1_1 = $1_1 + 1 | 0; + if ($2_1) { + continue label$6 + } + break label$6; + }; + } + return $0_1 | 0; + } + + function $854($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $853($0_1 | 0, $1_1 | 0) | 0; + return $0_1 | 0; + } + + function $855($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $3_1 = 0, $2_1 = 0; + $2_1 = HEAPU8[$1_1 >> 0] | 0; + label$1 : { + $3_1 = HEAPU8[$0_1 >> 0] | 0; + if (!$3_1) { + break label$1 + } + if (($3_1 | 0) != ($2_1 & 255 | 0 | 0)) { + break label$1 + } + label$2 : while (1) { + $2_1 = HEAPU8[($1_1 + 1 | 0) >> 0] | 0; + $3_1 = HEAPU8[($0_1 + 1 | 0) >> 0] | 0; + if (!$3_1) { + break label$1 + } + $1_1 = $1_1 + 1 | 0; + $0_1 = $0_1 + 1 | 0; + if (($3_1 | 0) == ($2_1 & 255 | 0 | 0)) { + continue label$2 + } + break label$2; + }; + } + return $3_1 - ($2_1 & 255 | 0) | 0 | 0; + } + + function $856($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0; + label$1 : { + $1_1 = ($980($0_1 | 0) | 0) + 1 | 0; + $2_1 = $963($1_1 | 0) | 0; + if ($2_1) { + break label$1 + } + return 0 | 0; + } + return $972($2_1 | 0, $0_1 | 0, $1_1 | 0) | 0 | 0; + } + + function $857($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0; + label$1 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) > (-1 | 0)) { + break label$1 + } + return ((HEAP32[$0_1 >> 2] | 0) >>> 5 | 0) & 1 | 0 | 0; + } + $1_1 = $978($0_1 | 0) | 0; + $2_1 = ((HEAP32[$0_1 >> 2] | 0) >>> 5 | 0) & 1 | 0; + label$2 : { + if (!$1_1) { + break label$2 + } + $979($0_1 | 0); + } + return $2_1 | 0; + } + + function $858($0_1) { + $0_1 = $0_1 | 0; + } + + function $859($0_1) { + $0_1 = $0_1 | 0; + var $3_1 = 0, $5_1 = 0, $4_1 = 0, $1_1 = 0, $2_1 = 0; + $1_1 = 0; + label$1 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$1 + } + $1_1 = $978($0_1 | 0) | 0; + } + $858($0_1 | 0); + label$2 : { + $2_1 = (HEAP32[$0_1 >> 2] | 0) & 1 | 0; + if ($2_1) { + break label$2 + } + $3_1 = $923() | 0; + label$3 : { + $4_1 = HEAP32[($0_1 + 52 | 0) >> 2] | 0; + if (!$4_1) { + break label$3 + } + HEAP32[($4_1 + 56 | 0) >> 2] = HEAP32[($0_1 + 56 | 0) >> 2] | 0; + } + label$4 : { + $5_1 = HEAP32[($0_1 + 56 | 0) >> 2] | 0; + if (!$5_1) { + break label$4 + } + HEAP32[($5_1 + 52 | 0) >> 2] = $4_1; + } + label$5 : { + if ((HEAP32[$3_1 >> 2] | 0 | 0) != ($0_1 | 0)) { + break label$5 + } + HEAP32[$3_1 >> 2] = $5_1; + } + $924(); + } + $3_1 = $860($0_1 | 0) | 0; + $4_1 = FUNCTION_TABLE[HEAP32[($0_1 + 12 | 0) >> 2] | 0]($0_1) | 0; + label$6 : { + $5_1 = HEAP32[($0_1 + 96 | 0) >> 2] | 0; + if (!$5_1) { + break label$6 + } + $964($5_1 | 0); + } + $3_1 = $4_1 | $3_1 | 0; + label$7 : { + if ($2_1) { + break label$7 + } + $964($0_1 | 0); + return $3_1 | 0; + } + label$8 : { + if (!$1_1) { + break label$8 + } + $979($0_1 | 0); + } + return $3_1 | 0; + } + + function $860($0_1) { + $0_1 = $0_1 | 0; + var $2_1 = 0, $1_1 = 0; + label$1 : { + label$2 : { + if (!$0_1) { + break label$2 + } + label$3 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) > (-1 | 0)) { + break label$3 + } + return $861($0_1 | 0) | 0 | 0; + } + $1_1 = $978($0_1 | 0) | 0; + $2_1 = $861($0_1 | 0) | 0; + if (!$1_1) { + break label$1 + } + $979($0_1 | 0); + return $2_1 | 0; + } + $2_1 = 0; + label$4 : { + if (!(HEAP32[(0 + 25504 | 0) >> 2] | 0)) { + break label$4 + } + $2_1 = $860(HEAP32[(0 + 25504 | 0) >> 2] | 0 | 0) | 0; + } + label$5 : { + $0_1 = HEAP32[($923() | 0) >> 2] | 0; + if (!$0_1) { + break label$5 + } + label$6 : while (1) { + $1_1 = 0; + label$7 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$7 + } + $1_1 = $978($0_1 | 0) | 0; + } + label$8 : { + if ((HEAP32[($0_1 + 20 | 0) >> 2] | 0) >>> 0 <= (HEAP32[($0_1 + 28 | 0) >> 2] | 0) >>> 0) { + break label$8 + } + $2_1 = $861($0_1 | 0) | 0 | $2_1 | 0; + } + label$9 : { + if (!$1_1) { + break label$9 + } + $979($0_1 | 0); + } + $0_1 = HEAP32[($0_1 + 56 | 0) >> 2] | 0; + if ($0_1) { + continue label$6 + } + break label$6; + }; + } + $924(); + } + return $2_1 | 0; + } + + function $861($0_1) { + $0_1 = $0_1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $1_1 = 0, $2_1 = 0; + label$1 : { + if ((HEAP32[($0_1 + 20 | 0) >> 2] | 0) >>> 0 <= (HEAP32[($0_1 + 28 | 0) >> 2] | 0) >>> 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[($0_1 + 36 | 0) >> 2] | 0]($0_1, 0, 0) | 0; + if (HEAP32[($0_1 + 20 | 0) >> 2] | 0) { + break label$1 + } + return -1 | 0; + } + label$2 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + $2_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= $2_1 >>> 0) { + break label$2 + } + i64toi32_i32$1 = $1_1 - $2_1 | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + i64toi32_i32$0 = FUNCTION_TABLE[HEAP32[($0_1 + 40 | 0) >> 2] | 0]($0_1, i64toi32_i32$1, i64toi32_i32$0, 1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + } + HEAP32[($0_1 + 28 | 0) >> 2] = 0; + i64toi32_i32$0 = $0_1; + i64toi32_i32$1 = 0; + HEAP32[($0_1 + 16 | 0) >> 2] = 0; + HEAP32[($0_1 + 20 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$0 = $0_1; + i64toi32_i32$1 = 0; + HEAP32[($0_1 + 4 | 0) >> 2] = 0; + HEAP32[($0_1 + 8 | 0) >> 2] = i64toi32_i32$1; + return 0 | 0; + } + + function $862($0_1) { + $0_1 = $0_1 | 0; + label$1 : { + if ($0_1 >>> 0 < -4095 >>> 0) { + break label$1 + } + HEAP32[($842() | 0) >> 2] = 0 - $0_1 | 0; + $0_1 = -1; + } + return $0_1 | 0; + } + + function $863($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0, $8_1 = 0, $7_1 = 0; + label$1 : { + $3_1 = global$0 - 32 | 0; + $7_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + HEAP32[($3_1 + 16 | 0) >> 2] = $1_1; + $4_1 = HEAP32[($0_1 + 48 | 0) >> 2] | 0; + HEAP32[($3_1 + 20 | 0) >> 2] = $2_1 - (($4_1 | 0) != (0 | 0)) | 0; + $5_1 = HEAP32[($0_1 + 44 | 0) >> 2] | 0; + HEAP32[($3_1 + 28 | 0) >> 2] = $4_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $5_1; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + if (!($932(fimport$6(HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0, $3_1 + 16 | 0 | 0, 2 | 0, $3_1 + 12 | 0 | 0) | 0 | 0) | 0)) { + break label$6 + } + $2_1 = -1; + HEAP32[($3_1 + 12 | 0) >> 2] = -1; + break label$5; + } + $4_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + if (($4_1 | 0) > (0 | 0)) { + break label$4 + } + $2_1 = $4_1; + } + HEAP32[$0_1 >> 2] = ($2_1 & 48 | 0) ^ 16 | 0 | (HEAP32[$0_1 >> 2] | 0) | 0; + break label$3; + } + label$7 : { + $6_1 = HEAP32[($3_1 + 20 | 0) >> 2] | 0; + if ($4_1 >>> 0 > $6_1 >>> 0) { + break label$7 + } + $2_1 = $4_1; + break label$3; + } + $5_1 = HEAP32[($0_1 + 44 | 0) >> 2] | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $5_1 + ($4_1 - $6_1 | 0) | 0; + if (!(HEAP32[($0_1 + 48 | 0) >> 2] | 0)) { + break label$3 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + HEAP8[(($2_1 + $1_1 | 0) + -1 | 0) >> 0] = HEAPU8[$5_1 >> 0] | 0; + } + label$8 : { + $8_1 = $3_1 + 32 | 0; + if ($8_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + return $2_1 | 0; + } + + function $864($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $3_1 = 0, $2_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $2_1 = global$0 - 32 | 0; + $4_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + label$5 : { + label$6 : { + if ($852(19804 | 0, HEAP8[$1_1 >> 0] | 0 | 0) | 0) { + break label$6 + } + HEAP32[($842() | 0) >> 2] = 28; + break label$5; + } + $3_1 = $963(1176 | 0) | 0; + if ($3_1) { + break label$4 + } + } + $3_1 = 0; + break label$3; + } + $973($3_1 | 0, 0 | 0, 144 | 0) | 0; + label$7 : { + if ($852($1_1 | 0, 43 | 0) | 0) { + break label$7 + } + HEAP32[$3_1 >> 2] = (HEAPU8[$1_1 >> 0] | 0 | 0) == (114 | 0) ? 8 : 4; + } + label$8 : { + label$9 : { + if ((HEAPU8[$1_1 >> 0] | 0 | 0) == (97 | 0)) { + break label$9 + } + $1_1 = HEAP32[$3_1 >> 2] | 0; + break label$8; + } + label$10 : { + $1_1 = fimport$4($0_1 | 0, 3 | 0, 0 | 0) | 0; + if ($1_1 & 1024 | 0) { + break label$10 + } + HEAP32[($2_1 + 16 | 0) >> 2] = $1_1 | 1024 | 0; + fimport$4($0_1 | 0, 4 | 0, $2_1 + 16 | 0 | 0) | 0; + } + $1_1 = HEAP32[$3_1 >> 2] | 0 | 128 | 0; + HEAP32[$3_1 >> 2] = $1_1; + } + HEAP8[($3_1 + 75 | 0) >> 0] = 255; + HEAP32[($3_1 + 48 | 0) >> 2] = 1024; + HEAP32[($3_1 + 60 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 44 | 0) >> 2] = $3_1 + 152 | 0; + label$11 : { + if ($1_1 & 8 | 0) { + break label$11 + } + HEAP32[$2_1 >> 2] = $2_1 + 24 | 0; + if (fimport$5($0_1 | 0, 21523 | 0, $2_1 | 0) | 0) { + break label$11 + } + HEAP8[($3_1 + 75 | 0) >> 0] = 10; + } + HEAP32[($3_1 + 40 | 0) >> 2] = 144; + HEAP32[($3_1 + 36 | 0) >> 2] = 145; + HEAP32[($3_1 + 32 | 0) >> 2] = 146; + HEAP32[($3_1 + 12 | 0) >> 2] = 147; + label$12 : { + if (HEAP32[(0 + 25900 | 0) >> 2] | 0) { + break label$12 + } + HEAP32[($3_1 + 76 | 0) >> 2] = -1; + } + $3_1 = $915($3_1 | 0) | 0; + } + label$13 : { + $5_1 = $2_1 + 32 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return $3_1 | 0; + } + + function $865($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, $4_1 = 0, $6_1 = 0, $5_1 = 0, $3_1 = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $5_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + label$3 : { + label$4 : { + label$5 : { + if ($852(19808 | 0, HEAP8[$1_1 >> 0] | 0 | 0) | 0) { + break label$5 + } + HEAP32[($842() | 0) >> 2] = 28; + break label$4; + } + $3_1 = $927($1_1 | 0) | 0; + HEAP32[$2_1 >> 2] = 438; + $4_1 = 0; + $0_1 = $862(fimport$3($0_1 | 0, $3_1 | 32768 | 0 | 0, $2_1 | 0) | 0 | 0) | 0; + if (($0_1 | 0) < (0 | 0)) { + break label$3 + } + $4_1 = $864($0_1 | 0, $1_1 | 0) | 0; + if ($4_1) { + break label$3 + } + fimport$7($0_1 | 0) | 0; + } + $4_1 = 0; + } + label$6 : { + $6_1 = $2_1 + 16 | 0; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + return $4_1 | 0; + } + + function $866($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, $4_1 = 0, $3_1 = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $3_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $3_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $1_1; + $1_1 = $913($0_1 | 0, $1_1 | 0) | 0; + label$3 : { + $4_1 = $2_1 + 16 | 0; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + return $1_1 | 0; + } + + function $867($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $8_1 = 0, $5_1 = 0, $4_1 = 0, $7_1 = 0; + $4_1 = 0; + label$1 : { + if ((HEAP32[($3_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$1 + } + $4_1 = $978($3_1 | 0) | 0; + } + $5_1 = Math_imul($2_1, $1_1); + $6_1 = HEAPU8[($3_1 + 74 | 0) >> 0] | 0; + HEAP8[($3_1 + 74 | 0) >> 0] = $6_1 + -1 | 0 | $6_1 | 0; + label$2 : { + label$3 : { + $7_1 = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + $6_1 = (HEAP32[($3_1 + 8 | 0) >> 2] | 0) - $7_1 | 0; + if (($6_1 | 0) >= (1 | 0)) { + break label$3 + } + $6_1 = $5_1; + break label$2; + } + $8_1 = $6_1 >>> 0 < $5_1 >>> 0 ? $6_1 : $5_1; + $972($0_1 | 0, $7_1 | 0, $8_1 | 0) | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = (HEAP32[($3_1 + 4 | 0) >> 2] | 0) + $8_1 | 0; + $6_1 = $5_1 - $8_1 | 0; + $0_1 = $0_1 + $8_1 | 0; + } + label$4 : { + if (!$6_1) { + break label$4 + } + label$5 : while (1) { + label$6 : { + label$7 : { + if ($874($3_1 | 0) | 0) { + break label$7 + } + $8_1 = FUNCTION_TABLE[HEAP32[($3_1 + 32 | 0) >> 2] | 0]($3_1, $0_1, $6_1) | 0; + if (($8_1 + 1 | 0) >>> 0 > 1 >>> 0) { + break label$6 + } + } + label$8 : { + if (!$4_1) { + break label$8 + } + $979($3_1 | 0); + } + return (($5_1 - $6_1 | 0) >>> 0) / ($1_1 >>> 0) | 0 | 0; + } + $0_1 = $0_1 + $8_1 | 0; + $6_1 = $6_1 - $8_1 | 0; + if ($6_1) { + continue label$5 + } + break label$5; + }; + } + $0_1 = $1_1 ? $2_1 : 0; + label$9 : { + if (!$4_1) { + break label$9 + } + $979($3_1 | 0); + } + return $0_1 | 0; + } + + function $868($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0; + label$1 : { + label$2 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$2 + } + $1_1 = $978($0_1 | 0) | 0; + HEAP32[$0_1 >> 2] = (HEAP32[$0_1 >> 2] | 0) & -49 | 0; + if (!$1_1) { + break label$1 + } + $979($0_1 | 0); + return; + } + HEAP32[$0_1 >> 2] = (HEAP32[$0_1 >> 2] | 0) & -49 | 0; + } + } + + function $869($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $4_1 = 0, $5_1 = 0, $7_1 = 0, $6_1 = 0; + label$1 : { + $4_1 = global$0 - 160 | 0; + $6_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + $972($4_1 + 8 | 0 | 0, 19816 | 0, 144 | 0) | 0; + label$3 : { + label$4 : { + label$5 : { + if (($1_1 + -1 | 0) >>> 0 < 2147483647 >>> 0) { + break label$5 + } + if ($1_1) { + break label$4 + } + $0_1 = $4_1 + 159 | 0; + $1_1 = 1; + } + HEAP32[($4_1 + 52 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + $5_1 = -2 - $0_1 | 0; + $1_1 = $1_1 >>> 0 > $5_1 >>> 0 ? $5_1 : $1_1; + HEAP32[($4_1 + 56 | 0) >> 2] = $1_1; + $0_1 = $0_1 + $1_1 | 0; + HEAP32[($4_1 + 36 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $0_1; + $0_1 = $889($4_1 + 8 | 0 | 0, $2_1 | 0, $3_1 | 0) | 0; + if (!$1_1) { + break label$3 + } + $1_1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + HEAP8[($1_1 - (($1_1 | 0) == (HEAP32[($4_1 + 24 | 0) >> 2] | 0 | 0)) | 0) >> 0] = 0; + break label$3; + } + HEAP32[($842() | 0) >> 2] = 61; + $0_1 = -1; + } + label$6 : { + $7_1 = $4_1 + 160 | 0; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + return $0_1 | 0; + } + + function $870($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $6_1 = 0; + $3_1 = HEAP32[($0_1 + 20 | 0) >> 2] | 0; + $6_1 = $3_1; + $3_1 = (HEAP32[($0_1 + 16 | 0) >> 2] | 0) - $3_1 | 0; + $3_1 = $3_1 >>> 0 > $2_1 >>> 0 ? $2_1 : $3_1; + $972($6_1 | 0, $1_1 | 0, $3_1 | 0) | 0; + HEAP32[($0_1 + 20 | 0) >> 2] = (HEAP32[($0_1 + 20 | 0) >> 2] | 0) + $3_1 | 0; + return $2_1 | 0; + } + + function $871($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + return $869($0_1 | 0, 2147483647 | 0, $1_1 | 0, $2_1 | 0) | 0 | 0; + } + + function $872($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $3_1 = global$0 - 16 | 0; + $4_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $2_1; + $2_1 = $871($0_1 | 0, $1_1 | 0, $2_1 | 0) | 0; + label$3 : { + $5_1 = $3_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return $2_1 | 0; + } + + function $873($0_1, $1_1, $1$hi, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $3_1 = global$0 - 16 | 0; + $4_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + i64toi32_i32$0 = $1$hi; + $932($993(HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0, $1_1 | 0, i64toi32_i32$0 | 0, $2_1 & 255 | 0 | 0, $3_1 + 8 | 0 | 0) | 0 | 0) | 0; + i64toi32_i32$0 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$0; + $1$hi = i64toi32_i32$1; + label$3 : { + $5_1 = $3_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $874($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0; + $1_1 = HEAPU8[($0_1 + 74 | 0) >> 0] | 0; + HEAP8[($0_1 + 74 | 0) >> 0] = $1_1 + -1 | 0 | $1_1 | 0; + label$1 : { + if ((HEAP32[($0_1 + 20 | 0) >> 2] | 0) >>> 0 <= (HEAP32[($0_1 + 28 | 0) >> 2] | 0) >>> 0) { + break label$1 + } + FUNCTION_TABLE[HEAP32[($0_1 + 36 | 0) >> 2] | 0]($0_1, 0, 0) | 0; + } + HEAP32[($0_1 + 28 | 0) >> 2] = 0; + HEAP32[($0_1 + 16 | 0) >> 2] = 0; + HEAP32[($0_1 + 20 | 0) >> 2] = 0; + label$2 : { + $1_1 = HEAP32[$0_1 >> 2] | 0; + if (!($1_1 & 4 | 0)) { + break label$2 + } + HEAP32[$0_1 >> 2] = $1_1 | 32 | 0; + return -1 | 0; + } + $2_1 = (HEAP32[($0_1 + 44 | 0) >> 2] | 0) + (HEAP32[($0_1 + 48 | 0) >> 2] | 0) | 0; + HEAP32[($0_1 + 8 | 0) >> 2] = $2_1; + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1; + return ($1_1 << 27 | 0) >> 31 | 0 | 0; + } + + function $875($0_1) { + $0_1 = $0_1 | 0; + return ($0_1 + -48 | 0) >>> 0 < 10 >>> 0 | 0; + } + + function $876($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0; + $3_1 = 1; + label$1 : { + label$2 : { + if (!$0_1) { + break label$2 + } + if ($1_1 >>> 0 <= 127 >>> 0) { + break label$1 + } + label$3 : { + label$4 : { + if (HEAP32[(HEAP32[(($877() | 0) + 176 | 0) >> 2] | 0) >> 2] | 0) { + break label$4 + } + if (($1_1 & -128 | 0 | 0) == (57216 | 0)) { + break label$1 + } + HEAP32[($842() | 0) >> 2] = 25; + break label$3; + } + label$5 : { + if ($1_1 >>> 0 > 2047 >>> 0) { + break label$5 + } + HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 & 63 | 0 | 128 | 0; + HEAP8[$0_1 >> 0] = $1_1 >>> 6 | 0 | 192 | 0; + return 2 | 0; + } + label$6 : { + label$7 : { + if ($1_1 >>> 0 < 55296 >>> 0) { + break label$7 + } + if (($1_1 & -8192 | 0 | 0) != (57344 | 0)) { + break label$6 + } + } + HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 & 63 | 0 | 128 | 0; + HEAP8[$0_1 >> 0] = $1_1 >>> 12 | 0 | 224 | 0; + HEAP8[($0_1 + 1 | 0) >> 0] = ($1_1 >>> 6 | 0) & 63 | 0 | 128 | 0; + return 3 | 0; + } + label$8 : { + if (($1_1 + -65536 | 0) >>> 0 > 1048575 >>> 0) { + break label$8 + } + HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 & 63 | 0 | 128 | 0; + HEAP8[$0_1 >> 0] = $1_1 >>> 18 | 0 | 240 | 0; + HEAP8[($0_1 + 2 | 0) >> 0] = ($1_1 >>> 6 | 0) & 63 | 0 | 128 | 0; + HEAP8[($0_1 + 1 | 0) >> 0] = ($1_1 >>> 12 | 0) & 63 | 0 | 128 | 0; + return 4 | 0; + } + HEAP32[($842() | 0) >> 2] = 25; + } + $3_1 = -1; + } + return $3_1 | 0; + } + HEAP8[$0_1 >> 0] = $1_1; + return 1 | 0; + } + + function $877() { + return $843() | 0 | 0; + } + + function $878($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + label$1 : { + if ($0_1) { + break label$1 + } + return 0 | 0; + } + return $876($0_1 | 0, $1_1 | 0, 0 | 0) | 0 | 0; + } + + function $879($0_1, $1_1) { + $0_1 = +$0_1; + $1_1 = $1_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $2_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, $3_1 = 0, $10_1 = 0, $3$hi = 0; + label$1 : { + wasm2js_scratch_store_f64(+$0_1); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + $3_1 = wasm2js_scratch_load_i32(0 | 0) | 0; + $3$hi = i64toi32_i32$0; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 52; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $10_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $10_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $2_1 = $10_1 & 2047 | 0; + if (($2_1 | 0) == (2047 | 0)) { + break label$1 + } + label$2 : { + if ($2_1) { + break label$2 + } + label$3 : { + label$4 : { + if ($0_1 != 0.0) { + break label$4 + } + $2_1 = 0; + break label$3; + } + $0_1 = +$879(+($0_1 * 18446744073709551615.0), $1_1 | 0); + $2_1 = (HEAP32[$1_1 >> 2] | 0) + -64 | 0; + } + HEAP32[$1_1 >> 2] = $2_1; + return +$0_1; + } + HEAP32[$1_1 >> 2] = $2_1 + -1022 | 0; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = -2146435073; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + i64toi32_i32$0 = 1071644672; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$1 | i64toi32_i32$3 | 0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + $0_1 = +wasm2js_scratch_load_f64(); + } + return +$0_1; + } + + function $880($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $5_1 = 0, $6_1 = 0, $7_1 = 0, $9_1 = 0, $8_1 = 0; + label$1 : { + $5_1 = global$0 - 208 | 0; + $8_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $8_1; + } + HEAP32[($5_1 + 204 | 0) >> 2] = $2_1; + $2_1 = 0; + $973($5_1 + 160 | 0 | 0, 0 | 0, 40 | 0) | 0; + HEAP32[($5_1 + 200 | 0) >> 2] = HEAP32[($5_1 + 204 | 0) >> 2] | 0; + label$3 : { + label$4 : { + if (($881(0 | 0, $1_1 | 0, $5_1 + 200 | 0 | 0, $5_1 + 80 | 0 | 0, $5_1 + 160 | 0 | 0, $3_1 | 0, $4_1 | 0) | 0 | 0) >= (0 | 0)) { + break label$4 + } + $1_1 = -1; + break label$3; + } + label$5 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$5 + } + $2_1 = $978($0_1 | 0) | 0; + } + $6_1 = HEAP32[$0_1 >> 2] | 0; + label$6 : { + if ((HEAP8[($0_1 + 74 | 0) >> 0] | 0 | 0) > (0 | 0)) { + break label$6 + } + HEAP32[$0_1 >> 2] = $6_1 & -33 | 0; + } + $6_1 = $6_1 & 32 | 0; + label$7 : { + label$8 : { + if (!(HEAP32[($0_1 + 48 | 0) >> 2] | 0)) { + break label$8 + } + $1_1 = $881($0_1 | 0, $1_1 | 0, $5_1 + 200 | 0 | 0, $5_1 + 80 | 0 | 0, $5_1 + 160 | 0 | 0, $3_1 | 0, $4_1 | 0) | 0; + break label$7; + } + HEAP32[($0_1 + 48 | 0) >> 2] = 80; + HEAP32[($0_1 + 16 | 0) >> 2] = $5_1 + 80 | 0; + HEAP32[($0_1 + 28 | 0) >> 2] = $5_1; + HEAP32[($0_1 + 20 | 0) >> 2] = $5_1; + $7_1 = HEAP32[($0_1 + 44 | 0) >> 2] | 0; + HEAP32[($0_1 + 44 | 0) >> 2] = $5_1; + $1_1 = $881($0_1 | 0, $1_1 | 0, $5_1 + 200 | 0 | 0, $5_1 + 80 | 0 | 0, $5_1 + 160 | 0 | 0, $3_1 | 0, $4_1 | 0) | 0; + if (!$7_1) { + break label$7 + } + FUNCTION_TABLE[HEAP32[($0_1 + 36 | 0) >> 2] | 0]($0_1, 0, 0) | 0; + HEAP32[($0_1 + 48 | 0) >> 2] = 0; + HEAP32[($0_1 + 44 | 0) >> 2] = $7_1; + HEAP32[($0_1 + 28 | 0) >> 2] = 0; + HEAP32[($0_1 + 16 | 0) >> 2] = 0; + $3_1 = HEAP32[($0_1 + 20 | 0) >> 2] | 0; + HEAP32[($0_1 + 20 | 0) >> 2] = 0; + $1_1 = $3_1 ? $1_1 : -1; + } + $3_1 = HEAP32[$0_1 >> 2] | 0; + HEAP32[$0_1 >> 2] = $3_1 | $6_1 | 0; + $1_1 = $3_1 & 32 | 0 ? -1 : $1_1; + if (!$2_1) { + break label$3 + } + $979($0_1 | 0); + } + label$9 : { + $9_1 = $5_1 + 208 | 0; + if ($9_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + return $1_1 | 0; + } + + function $881($0_1, $1_1, $2_1, $3_1, $4_1, $5_1, $6_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + $6_1 = $6_1 | 0; + var $7_1 = 0, $13_1 = 0, $14_1 = 0, $15_1 = 0, $19_1 = 0, i64toi32_i32$5 = 0, $12_1 = 0, i64toi32_i32$3 = 0, $20_1 = 0, $11_1 = 0, $17_1 = 0, $18_1 = 0, i64toi32_i32$2 = 0, $16_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $9_1 = 0, $24_1 = 0, $24$hi = 0, $10_1 = 0, $21_1 = 0, $32_1 = 0, $33_1 = 0, $34_1 = 0, $23_1 = 0, $22_1 = 0, $8_1 = 0, $282_1 = 0; + label$1 : { + $7_1 = global$0 - 80 | 0; + $22_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1; + $8_1 = $7_1 + 55 | 0; + $9_1 = $7_1 + 56 | 0; + $10_1 = 0; + $11_1 = 0; + $1_1 = 0; + label$3 : { + label$4 : { + label$5 : while (1) { + label$6 : { + if (($11_1 | 0) < (0 | 0)) { + break label$6 + } + label$7 : { + if (($1_1 | 0) <= (2147483647 - $11_1 | 0 | 0)) { + break label$7 + } + HEAP32[($842() | 0) >> 2] = 61; + $11_1 = -1; + break label$6; + } + $11_1 = $1_1 + $11_1 | 0; + } + $12_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + $1_1 = $12_1; + label$8 : { + label$9 : { + label$10 : { + label$11 : { + label$12 : { + label$13 : { + label$14 : { + label$15 : { + label$16 : { + label$17 : { + label$18 : { + label$19 : { + label$20 : { + label$21 : { + $13_1 = HEAPU8[$1_1 >> 0] | 0; + if (!$13_1) { + break label$21 + } + label$22 : { + label$23 : while (1) { + label$24 : { + label$25 : { + label$26 : { + $13_1 = $13_1 & 255 | 0; + if ($13_1) { + break label$26 + } + $13_1 = $1_1; + break label$25; + } + if (($13_1 | 0) != (37 | 0)) { + break label$24 + } + $13_1 = $1_1; + label$27 : while (1) { + if ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | 0) != (37 | 0)) { + break label$25 + } + $14_1 = $1_1 + 2 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $14_1; + $13_1 = $13_1 + 1 | 0; + $15_1 = HEAPU8[($1_1 + 2 | 0) >> 0] | 0; + $1_1 = $14_1; + if (($15_1 | 0) == (37 | 0)) { + continue label$27 + } + break label$27; + }; + } + $1_1 = $13_1 - $12_1 | 0; + label$28 : { + if (!$0_1) { + break label$28 + } + $882($0_1 | 0, $12_1 | 0, $1_1 | 0); + } + if ($1_1) { + continue label$5 + } + $16_1 = -1; + $13_1 = 1; + $14_1 = $875(HEAP8[((HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 1 | 0) >> 0] | 0 | 0) | 0; + $1_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + label$29 : { + if (!$14_1) { + break label$29 + } + if ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$29 + } + $16_1 = (HEAP8[($1_1 + 1 | 0) >> 0] | 0) + -48 | 0; + $10_1 = 1; + $13_1 = 3; + } + $1_1 = $1_1 + $13_1 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1; + $13_1 = 0; + label$30 : { + label$31 : { + $17_1 = HEAP8[$1_1 >> 0] | 0; + $15_1 = $17_1 + -32 | 0; + if ($15_1 >>> 0 <= 31 >>> 0) { + break label$31 + } + $14_1 = $1_1; + break label$30; + } + $14_1 = $1_1; + $15_1 = 1 << $15_1 | 0; + if (!($15_1 & 75913 | 0)) { + break label$30 + } + label$32 : while (1) { + $14_1 = $1_1 + 1 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $14_1; + $13_1 = $15_1 | $13_1 | 0; + $17_1 = HEAP8[($1_1 + 1 | 0) >> 0] | 0; + $15_1 = $17_1 + -32 | 0; + if ($15_1 >>> 0 > 31 >>> 0) { + break label$30 + } + $1_1 = $14_1; + $15_1 = 1 << $15_1 | 0; + if ($15_1 & 75913 | 0) { + continue label$32 + } + break label$32; + }; + } + label$33 : { + label$34 : { + if (($17_1 | 0) != (42 | 0)) { + break label$34 + } + label$35 : { + label$36 : { + if (!($875(HEAP8[($14_1 + 1 | 0) >> 0] | 0 | 0) | 0)) { + break label$36 + } + $14_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + if ((HEAPU8[($14_1 + 2 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$36 + } + HEAP32[((((HEAP8[($14_1 + 1 | 0) >> 0] | 0) << 2 | 0) + $4_1 | 0) + -192 | 0) >> 2] = 10; + $1_1 = $14_1 + 3 | 0; + $18_1 = HEAP32[((((HEAP8[($14_1 + 1 | 0) >> 0] | 0) << 3 | 0) + $3_1 | 0) + -384 | 0) >> 2] | 0; + $10_1 = 1; + break label$35; + } + if ($10_1) { + break label$4 + } + $10_1 = 0; + $18_1 = 0; + label$37 : { + if (!$0_1) { + break label$37 + } + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + $18_1 = HEAP32[$1_1 >> 2] | 0; + } + $1_1 = (HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 1 | 0; + } + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1; + if (($18_1 | 0) > (-1 | 0)) { + break label$33 + } + $18_1 = 0 - $18_1 | 0; + $13_1 = $13_1 | 8192 | 0; + break label$33; + } + $18_1 = $883($7_1 + 76 | 0 | 0) | 0; + if (($18_1 | 0) < (0 | 0)) { + break label$4 + } + $1_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + } + $19_1 = -1; + label$38 : { + if ((HEAPU8[$1_1 >> 0] | 0 | 0) != (46 | 0)) { + break label$38 + } + label$39 : { + if ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0 | 0) != (42 | 0)) { + break label$39 + } + label$40 : { + if (!($875(HEAP8[($1_1 + 2 | 0) >> 0] | 0 | 0) | 0)) { + break label$40 + } + $1_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + if ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$40 + } + HEAP32[((((HEAP8[($1_1 + 2 | 0) >> 0] | 0) << 2 | 0) + $4_1 | 0) + -192 | 0) >> 2] = 10; + $19_1 = HEAP32[((((HEAP8[($1_1 + 2 | 0) >> 0] | 0) << 3 | 0) + $3_1 | 0) + -384 | 0) >> 2] | 0; + $1_1 = $1_1 + 4 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1; + break label$38; + } + if ($10_1) { + break label$4 + } + label$41 : { + label$42 : { + if ($0_1) { + break label$42 + } + $19_1 = 0; + break label$41; + } + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + $19_1 = HEAP32[$1_1 >> 2] | 0; + } + $1_1 = (HEAP32[($7_1 + 76 | 0) >> 2] | 0) + 2 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1; + break label$38; + } + HEAP32[($7_1 + 76 | 0) >> 2] = $1_1 + 1 | 0; + $19_1 = $883($7_1 + 76 | 0 | 0) | 0; + $1_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + } + $14_1 = 0; + label$43 : while (1) { + $15_1 = $14_1; + $20_1 = -1; + if (((HEAP8[$1_1 >> 0] | 0) + -65 | 0) >>> 0 > 57 >>> 0) { + break label$3 + } + $17_1 = $1_1 + 1 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $17_1; + $14_1 = HEAP8[$1_1 >> 0] | 0; + $1_1 = $17_1; + $14_1 = HEAPU8[(($14_1 + Math_imul($15_1, 58) | 0) + 19919 | 0) >> 0] | 0; + if (($14_1 + -1 | 0) >>> 0 < 8 >>> 0) { + continue label$43 + } + break label$43; + }; + if (!$14_1) { + break label$3 + } + label$44 : { + label$45 : { + label$46 : { + label$47 : { + if (($14_1 | 0) != (19 | 0)) { + break label$47 + } + $20_1 = -1; + if (($16_1 | 0) <= (-1 | 0)) { + break label$46 + } + break label$3; + } + if (($16_1 | 0) < (0 | 0)) { + break label$45 + } + HEAP32[($4_1 + ($16_1 << 2 | 0) | 0) >> 2] = $14_1; + i64toi32_i32$2 = $3_1 + ($16_1 << 3 | 0) | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $282_1 = i64toi32_i32$0; + i64toi32_i32$0 = $7_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $282_1; + HEAP32[($7_1 + 68 | 0) >> 2] = i64toi32_i32$1; + } + $1_1 = 0; + if (!$0_1) { + continue label$5 + } + break label$44; + } + if (!$0_1) { + break label$8 + } + $884($7_1 + 64 | 0 | 0, $14_1 | 0, $2_1 | 0, $6_1 | 0); + $17_1 = HEAP32[($7_1 + 76 | 0) >> 2] | 0; + } + $21_1 = $13_1 & -65537 | 0; + $13_1 = $13_1 & 8192 | 0 ? $21_1 : $13_1; + $20_1 = 0; + $16_1 = 19960; + $14_1 = $9_1; + $1_1 = HEAP8[($17_1 + -1 | 0) >> 0] | 0; + $1_1 = $15_1 ? (($1_1 & 15 | 0 | 0) == (3 | 0) ? $1_1 & -33 | 0 : $1_1) : $1_1; + $17_1 = $1_1 + -88 | 0; + if ($17_1 >>> 0 <= 32 >>> 0) { + break label$22 + } + label$48 : { + label$49 : { + label$50 : { + label$51 : { + label$52 : { + $15_1 = $1_1 + -65 | 0; + if ($15_1 >>> 0 <= 6 >>> 0) { + break label$52 + } + if (($1_1 | 0) != (83 | 0)) { + break label$9 + } + if (!$19_1) { + break label$51 + } + $14_1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + break label$49; + } + switch ($15_1 | 0) { + case 2: + break label$50; + case 1: + case 3: + break label$9; + default: + break label$20; + }; + } + $1_1 = 0; + $885($0_1 | 0, 32 | 0, $18_1 | 0, 0 | 0, $13_1 | 0); + break label$48; + } + HEAP32[($7_1 + 12 | 0) >> 2] = 0; + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + HEAP32[($7_1 + 8 | 0) >> 2] = i64toi32_i32$1; + HEAP32[($7_1 + 64 | 0) >> 2] = $7_1 + 8 | 0; + $19_1 = -1; + $14_1 = $7_1 + 8 | 0; + } + $1_1 = 0; + label$53 : { + label$54 : while (1) { + $15_1 = HEAP32[$14_1 >> 2] | 0; + if (!$15_1) { + break label$53 + } + label$55 : { + $15_1 = $878($7_1 + 4 | 0 | 0, $15_1 | 0) | 0; + $12_1 = ($15_1 | 0) < (0 | 0); + if ($12_1) { + break label$55 + } + if ($15_1 >>> 0 > ($19_1 - $1_1 | 0) >>> 0) { + break label$55 + } + $14_1 = $14_1 + 4 | 0; + $1_1 = $15_1 + $1_1 | 0; + if ($19_1 >>> 0 > $1_1 >>> 0) { + continue label$54 + } + break label$53; + } + break label$54; + }; + $20_1 = -1; + if ($12_1) { + break label$3 + } + } + $885($0_1 | 0, 32 | 0, $18_1 | 0, $1_1 | 0, $13_1 | 0); + label$56 : { + if ($1_1) { + break label$56 + } + $1_1 = 0; + break label$48; + } + $15_1 = 0; + $14_1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + label$57 : while (1) { + $12_1 = HEAP32[$14_1 >> 2] | 0; + if (!$12_1) { + break label$48 + } + $12_1 = $878($7_1 + 4 | 0 | 0, $12_1 | 0) | 0; + $15_1 = $12_1 + $15_1 | 0; + if (($15_1 | 0) > ($1_1 | 0)) { + break label$48 + } + $882($0_1 | 0, $7_1 + 4 | 0 | 0, $12_1 | 0); + $14_1 = $14_1 + 4 | 0; + if ($15_1 >>> 0 < $1_1 >>> 0) { + continue label$57 + } + break label$57; + }; + } + $885($0_1 | 0, 32 | 0, $18_1 | 0, $1_1 | 0, $13_1 ^ 8192 | 0 | 0); + $1_1 = ($18_1 | 0) > ($1_1 | 0) ? $18_1 : $1_1; + continue label$5; + } + $14_1 = $1_1 + 1 | 0; + HEAP32[($7_1 + 76 | 0) >> 2] = $14_1; + $13_1 = HEAPU8[($1_1 + 1 | 0) >> 0] | 0; + $1_1 = $14_1; + continue label$23; + }; + } + switch ($17_1 | 0) { + case 29: + break label$12; + case 22: + break label$13; + case 24: + break label$15; + case 23: + break label$16; + case 12: + case 17: + break label$17; + case 11: + break label$18; + case 27: + break label$19; + case 9: + case 13: + case 14: + case 15: + break label$20; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 10: + case 16: + case 18: + case 19: + case 20: + case 21: + case 25: + case 26: + case 28: + case 30: + case 31: + break label$9; + default: + break label$14; + }; + } + $20_1 = $11_1; + if ($0_1) { + break label$3 + } + if (!$10_1) { + break label$8 + } + $1_1 = 1; + label$58 : { + label$59 : while (1) { + $13_1 = HEAP32[($4_1 + ($1_1 << 2 | 0) | 0) >> 2] | 0; + if (!$13_1) { + break label$58 + } + $884($3_1 + ($1_1 << 3 | 0) | 0 | 0, $13_1 | 0, $2_1 | 0, $6_1 | 0); + $20_1 = 1; + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) != (10 | 0)) { + continue label$59 + } + break label$3; + }; + } + $20_1 = 1; + if ($1_1 >>> 0 > 9 >>> 0) { + break label$3 + } + label$60 : { + label$61 : while (1) { + $13_1 = $1_1; + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) == (10 | 0)) { + break label$60 + } + if (!(HEAP32[($4_1 + ($1_1 << 2 | 0) | 0) >> 2] | 0)) { + continue label$61 + } + break label$61; + }; + } + $20_1 = $13_1 >>> 0 < 9 >>> 0 ? -1 : 1; + break label$3; + } + $1_1 = FUNCTION_TABLE[$5_1]($0_1, +HEAPF64[($7_1 + 64 | 0) >> 3], $18_1, $19_1, $13_1, $1_1) | 0; + continue label$5; + } + $20_1 = 0; + $1_1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + $12_1 = $1_1 ? $1_1 : 19970; + $1_1 = $849($12_1 | 0, 0 | 0, $19_1 | 0) | 0; + $14_1 = $1_1 ? $1_1 : $12_1 + $19_1 | 0; + $13_1 = $21_1; + $19_1 = $1_1 ? $1_1 - $12_1 | 0 : $19_1; + break label$9; + } + i64toi32_i32$2 = $7_1; + i64toi32_i32$0 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + HEAP8[($7_1 + 55 | 0) >> 0] = i64toi32_i32$0; + $19_1 = 1; + $12_1 = $8_1; + $14_1 = $9_1; + $13_1 = $21_1; + break label$9; + } + label$62 : { + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$1; + $24$hi = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$1 | 0)) { + $32_1 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $33_1 = 0 + } else { + $33_1 = 1 + } + $34_1 = $33_1; + } else { + $34_1 = 0 + } + $32_1 = $34_1; + } + if ($32_1) { + break label$62 + } + i64toi32_i32$2 = $24$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = $24$hi; + i64toi32_i32$1 = $24_1; + i64toi32_i32$5 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + $24_1 = i64toi32_i32$3 - i64toi32_i32$1 | 0; + $24$hi = i64toi32_i32$5; + i64toi32_i32$3 = $7_1; + HEAP32[($7_1 + 64 | 0) >> 2] = $24_1; + HEAP32[($7_1 + 68 | 0) >> 2] = i64toi32_i32$5; + $20_1 = 1; + $16_1 = 19960; + break label$11; + } + label$63 : { + if (!($13_1 & 2048 | 0)) { + break label$63 + } + $20_1 = 1; + $16_1 = 19961; + break label$11; + } + $20_1 = $13_1 & 1 | 0; + $16_1 = $20_1 ? 19962 : 19960; + break label$11; + } + $20_1 = 0; + $16_1 = 19960; + i64toi32_i32$2 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $12_1 = $886(i64toi32_i32$5 | 0, i64toi32_i32$3 | 0, $9_1 | 0) | 0; + if (!($13_1 & 8 | 0)) { + break label$10 + } + $1_1 = $9_1 - $12_1 | 0; + $19_1 = ($19_1 | 0) > ($1_1 | 0) ? $19_1 : $1_1 + 1 | 0; + break label$10; + } + $19_1 = $19_1 >>> 0 > 8 >>> 0 ? $19_1 : 8; + $13_1 = $13_1 | 8 | 0; + $1_1 = 120; + } + $20_1 = 0; + $16_1 = 19960; + i64toi32_i32$2 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $12_1 = $887(i64toi32_i32$3 | 0, i64toi32_i32$5 | 0, $9_1 | 0, $1_1 & 32 | 0 | 0) | 0; + if (!($13_1 & 8 | 0)) { + break label$10 + } + i64toi32_i32$2 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + if (!(i64toi32_i32$5 | i64toi32_i32$3 | 0)) { + break label$10 + } + $16_1 = ($1_1 >>> 4 | 0) + 19960 | 0; + $20_1 = 2; + break label$10; + } + $1_1 = 0; + $13_1 = $15_1 & 255 | 0; + if ($13_1 >>> 0 > 7 >>> 0) { + continue label$5 + } + label$64 : { + switch ($13_1 | 0) { + default: + HEAP32[(HEAP32[($7_1 + 64 | 0) >> 2] | 0) >> 2] = $11_1; + continue label$5; + case 1: + HEAP32[(HEAP32[($7_1 + 64 | 0) >> 2] | 0) >> 2] = $11_1; + continue label$5; + case 2: + i64toi32_i32$5 = $11_1; + i64toi32_i32$3 = i64toi32_i32$5 >> 31 | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$5 >> 2] = $11_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$3; + continue label$5; + case 3: + HEAP16[(HEAP32[($7_1 + 64 | 0) >> 2] | 0) >> 1] = $11_1; + continue label$5; + case 4: + HEAP8[(HEAP32[($7_1 + 64 | 0) >> 2] | 0) >> 0] = $11_1; + continue label$5; + case 6: + HEAP32[(HEAP32[($7_1 + 64 | 0) >> 2] | 0) >> 2] = $11_1; + continue label$5; + case 5: + continue label$5; + case 7: + break label$64; + }; + } + i64toi32_i32$5 = $11_1; + i64toi32_i32$3 = i64toi32_i32$5 >> 31 | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + HEAP32[i64toi32_i32$5 >> 2] = $11_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$3; + continue label$5; + } + $20_1 = 0; + $16_1 = 19960; + i64toi32_i32$2 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$3; + $24$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $24$hi; + $12_1 = $888($24_1 | 0, i64toi32_i32$5 | 0, $9_1 | 0) | 0; + } + $13_1 = ($19_1 | 0) > (-1 | 0) ? $13_1 & -65537 | 0 : $13_1; + i64toi32_i32$2 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$5; + $24$hi = i64toi32_i32$3; + label$71 : { + label$72 : { + if ($19_1) { + break label$72 + } + i64toi32_i32$3 = $24$hi; + if (!!($24_1 | i64toi32_i32$3 | 0)) { + break label$72 + } + $19_1 = 0; + $12_1 = $9_1; + break label$71; + } + i64toi32_i32$3 = $24$hi; + $1_1 = ($9_1 - $12_1 | 0) + !($24_1 | i64toi32_i32$3 | 0) | 0; + $19_1 = ($19_1 | 0) > ($1_1 | 0) ? $19_1 : $1_1; + } + $14_1 = $9_1; + } + $15_1 = $14_1 - $12_1 | 0; + $17_1 = ($19_1 | 0) < ($15_1 | 0) ? $15_1 : $19_1; + $14_1 = $20_1 + $17_1 | 0; + $1_1 = ($18_1 | 0) < ($14_1 | 0) ? $14_1 : $18_1; + $885($0_1 | 0, 32 | 0, $1_1 | 0, $14_1 | 0, $13_1 | 0); + $882($0_1 | 0, $16_1 | 0, $20_1 | 0); + $885($0_1 | 0, 48 | 0, $1_1 | 0, $14_1 | 0, $13_1 ^ 65536 | 0 | 0); + $885($0_1 | 0, 48 | 0, $17_1 | 0, $15_1 | 0, 0 | 0); + $882($0_1 | 0, $12_1 | 0, $15_1 | 0); + $885($0_1 | 0, 32 | 0, $1_1 | 0, $14_1 | 0, $13_1 ^ 8192 | 0 | 0); + continue label$5; + } + break label$5; + }; + $20_1 = 0; + break label$3; + } + $20_1 = -1; + } + label$73 : { + $23_1 = $7_1 + 80 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $20_1 | 0; + } + + function $882($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + label$1 : { + if ((HEAPU8[$0_1 >> 0] | 0) & 32 | 0) { + break label$1 + } + $975($1_1 | 0, $2_1 | 0, $0_1 | 0) | 0; + } + } + + function $883($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0, $3_1 = 0; + $1_1 = 0; + label$1 : { + if (!($875(HEAP8[(HEAP32[$0_1 >> 2] | 0) >> 0] | 0 | 0) | 0)) { + break label$1 + } + label$2 : while (1) { + $2_1 = HEAP32[$0_1 >> 2] | 0; + $3_1 = HEAP8[$2_1 >> 0] | 0; + HEAP32[$0_1 >> 2] = $2_1 + 1 | 0; + $1_1 = ($3_1 + Math_imul($1_1, 10) | 0) + -48 | 0; + if ($875(HEAP8[($2_1 + 1 | 0) >> 0] | 0 | 0) | 0) { + continue label$2 + } + break label$2; + }; + } + return $1_1 | 0; + } + + function $884($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $26_1 = 0, $34_1 = 0, $44_1 = 0, $52_1 = 0, $60_1 = 0, $68_1 = 0, $76_1 = 0, $86_1 = 0; + label$1 : { + if ($1_1 >>> 0 > 20 >>> 0) { + break label$1 + } + $1_1 = $1_1 + -9 | 0; + if ($1_1 >>> 0 > 9 >>> 0) { + break label$1 + } + label$2 : { + switch ($1_1 | 0) { + default: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + HEAP32[$0_1 >> 2] = HEAP32[$1_1 >> 2] | 0; + return; + case 1: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$0 = HEAP32[$1_1 >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + $26_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $26_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 2: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$1 = HEAP32[$1_1 >> 2] | 0; + i64toi32_i32$0 = 0; + $34_1 = i64toi32_i32$1; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $34_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 3: + $1_1 = ((HEAP32[$2_1 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2_1 >> 2] = $1_1 + 8 | 0; + i64toi32_i32$0 = HEAP32[$1_1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + $44_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $44_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 4: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$1 = HEAP16[$1_1 >> 1] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $52_1 = i64toi32_i32$1; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $52_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 5: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$0 = HEAPU16[$1_1 >> 1] | 0; + i64toi32_i32$1 = 0; + $60_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $60_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 6: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$1 = HEAP8[$1_1 >> 0] | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $68_1 = i64toi32_i32$1; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $68_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 7: + $1_1 = HEAP32[$2_1 >> 2] | 0; + HEAP32[$2_1 >> 2] = $1_1 + 4 | 0; + i64toi32_i32$0 = HEAPU8[$1_1 >> 0] | 0; + i64toi32_i32$1 = 0; + $76_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $76_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + return; + case 8: + $1_1 = ((HEAP32[$2_1 >> 2] | 0) + 7 | 0) & -8 | 0; + HEAP32[$2_1 >> 2] = $1_1 + 8 | 0; + i64toi32_i32$1 = HEAP32[$1_1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + $86_1 = i64toi32_i32$1; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $86_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + return; + case 9: + break label$2; + }; + } + FUNCTION_TABLE[$3_1]($0_1, $2_1); + } + } + + function $885($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $5_1 = 0, $7_1 = 0, $6_1 = 0; + label$1 : { + $5_1 = global$0 - 256 | 0; + $6_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + label$3 : { + if (($2_1 | 0) <= ($3_1 | 0)) { + break label$3 + } + if ($4_1 & 73728 | 0) { + break label$3 + } + $2_1 = $2_1 - $3_1 | 0; + $3_1 = $2_1 >>> 0 < 256 >>> 0; + $973($5_1 | 0, $1_1 | 0, ($3_1 ? $2_1 : 256) | 0) | 0; + label$4 : { + if ($3_1) { + break label$4 + } + label$5 : while (1) { + $882($0_1 | 0, $5_1 | 0, 256 | 0); + $2_1 = $2_1 + -256 | 0; + if ($2_1 >>> 0 > 255 >>> 0) { + continue label$5 + } + break label$5; + }; + } + $882($0_1 | 0, $5_1 | 0, $2_1 | 0); + } + label$6 : { + $7_1 = $5_1 + 256 | 0; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + } + + function $886($0_1, $0$hi, $1_1) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $8_1 = 0; + label$1 : { + i64toi32_i32$0 = $0$hi; + if (!($0_1 | i64toi32_i32$0 | 0)) { + break label$1 + } + label$2 : while (1) { + $1_1 = $1_1 + -1 | 0; + i64toi32_i32$0 = $0$hi; + HEAP8[$1_1 >> 0] = $0_1 & 7 | 0 | 48 | 0; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 3; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $8_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $0_1 = $8_1; + $0$hi = i64toi32_i32$1; + i64toi32_i32$0 = $0_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0) { + continue label$2 + } + break label$2; + }; + } + return $1_1 | 0; + } + + function $887($0_1, $0$hi, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $9_1 = 0; + label$1 : { + i64toi32_i32$0 = $0$hi; + if (!($0_1 | i64toi32_i32$0 | 0)) { + break label$1 + } + label$2 : while (1) { + $1_1 = $1_1 + -1 | 0; + i64toi32_i32$0 = $0$hi; + HEAP8[$1_1 >> 0] = HEAPU8[(($0_1 & 15 | 0) + 20448 | 0) >> 0] | 0 | $2_1 | 0; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 4; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $9_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $9_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $0_1 = $9_1; + $0$hi = i64toi32_i32$1; + i64toi32_i32$0 = $0_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0) { + continue label$2 + } + break label$2; + }; + } + return $1_1 | 0; + } + + function $888($0_1, $0$hi, $1_1) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, $2_1 = 0, i64toi32_i32$3 = 0, $5_1 = 0, i64toi32_i32$5 = 0, $5$hi = 0, $3_1 = 0, $16_1 = 0, $16$hi = 0, $4_1 = 0; + label$1 : { + label$2 : { + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$2 = $0$hi; + $5_1 = $0_1; + $5$hi = i64toi32_i32$2; + break label$1; + } + label$3 : while (1) { + $1_1 = $1_1 + -1 | 0; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_udiv($0_1 | 0, i64toi32_i32$2 | 0, 10 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $5_1 = i64toi32_i32$0; + $5$hi = i64toi32_i32$2; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_mul($5_1 | 0, i64toi32_i32$2 | 0, 10 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $16_1 = i64toi32_i32$0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$1 = $16_1; + i64toi32_i32$5 = ($0_1 >>> 0 < i64toi32_i32$1 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + HEAP8[$1_1 >> 0] = $0_1 - i64toi32_i32$1 | 0 | 48 | 0; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $0_1; + i64toi32_i32$3 = 9; + i64toi32_i32$1 = -1; + $2_1 = $0$hi >>> 0 > i64toi32_i32$3 >>> 0 | (($0$hi | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = $5$hi; + $0_1 = $5_1; + $0$hi = i64toi32_i32$2; + if ($2_1) { + continue label$3 + } + break label$3; + }; + } + label$4 : { + i64toi32_i32$2 = $5$hi; + $2_1 = $5_1; + if (!$2_1) { + break label$4 + } + label$5 : while (1) { + $1_1 = $1_1 + -1 | 0; + $3_1 = ($2_1 >>> 0) / (10 >>> 0) | 0; + HEAP8[$1_1 >> 0] = $2_1 - Math_imul($3_1, 10) | 0 | 48 | 0; + $4_1 = $2_1 >>> 0 > 9 >>> 0; + $2_1 = $3_1; + if ($4_1) { + continue label$5 + } + break label$5; + }; + } + return $1_1 | 0; + } + + function $889($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + return $880($0_1 | 0, $1_1 | 0, $2_1 | 0, 149 | 0, 150 | 0) | 0 | 0; + } + + function $890($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = +$1_1; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var $10_1 = 0, $17_1 = 0, $16_1 = 0, $14_1 = 0, $6_1 = 0, i64toi32_i32$1 = 0, $9_1 = 0, $13_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, $20_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, $15_1 = 0, $21_1 = 0, $11_1 = 0, $12_1 = 0, $18_1 = 0, $26_1 = 0.0, $7_1 = 0, $24_1 = 0, $19_1 = 0, $24$hi = 0, $8_1 = 0, $44_1 = 0, $45_1 = 0, $46_1 = 0, $25$hi = 0, $47_1 = 0, $23_1 = 0, $22_1 = 0, $25_1 = 0, $163_1 = 0, $165$hi = 0, $167$hi = 0, $169_1 = 0, $169$hi = 0, $171$hi = 0, $175_1 = 0, $175$hi = 0, $811_1 = 0; + label$1 : { + $6_1 = global$0 - 560 | 0; + $22_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + HEAP32[($6_1 + 44 | 0) >> 2] = 0; + label$3 : { + label$4 : { + i64toi32_i32$0 = $892(+$1_1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $24_1 = i64toi32_i32$0; + $24$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$0 | 0)) { + $44_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$3 >>> 0) { + $45_1 = 0 + } else { + $45_1 = 1 + } + $46_1 = $45_1; + } else { + $46_1 = 0 + } + $44_1 = $46_1; + } + if ($44_1) { + break label$4 + } + $7_1 = 1; + $8_1 = 20464; + $1_1 = -$1_1; + i64toi32_i32$2 = $892(+$1_1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $24_1 = i64toi32_i32$2; + $24$hi = i64toi32_i32$1; + break label$3; + } + label$5 : { + if (!($4_1 & 2048 | 0)) { + break label$5 + } + $7_1 = 1; + $8_1 = 20467; + break label$3; + } + $7_1 = $4_1 & 1 | 0; + $8_1 = $7_1 ? 20470 : 20465; + } + label$6 : { + label$7 : { + i64toi32_i32$1 = $24$hi; + i64toi32_i32$3 = $24_1; + i64toi32_i32$2 = 2146435072; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + i64toi32_i32$3 = 2146435072; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$7 + } + $9_1 = $7_1 + 3 | 0; + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 & -65537 | 0 | 0); + $882($0_1 | 0, $8_1 | 0, $7_1 | 0); + $10_1 = ($5_1 >>> 5 | 0) & 1 | 0; + $882($0_1 | 0, ($1_1 != $1_1 ? ($10_1 ? 20491 : 20495) : $10_1 ? 20483 : 20487) | 0, 3 | 0); + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 ^ 8192 | 0 | 0); + break label$6; + } + $11_1 = $6_1 + 16 | 0; + label$8 : { + label$9 : { + label$10 : { + label$11 : { + $1_1 = +$879(+$1_1, $6_1 + 44 | 0 | 0); + $1_1 = $1_1 + $1_1; + if ($1_1 == 0.0) { + break label$11 + } + $10_1 = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $10_1 + -1 | 0; + $12_1 = $5_1 | 32 | 0; + if (($12_1 | 0) != (97 | 0)) { + break label$10 + } + break label$8; + } + $12_1 = $5_1 | 32 | 0; + if (($12_1 | 0) == (97 | 0)) { + break label$8 + } + $13_1 = ($3_1 | 0) < (0 | 0) ? 6 : $3_1; + $14_1 = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + break label$9; + } + $14_1 = $10_1 + -29 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $14_1; + $13_1 = ($3_1 | 0) < (0 | 0) ? 6 : $3_1; + $1_1 = $1_1 * 268435456.0; + } + $15_1 = ($14_1 | 0) < (0 | 0) ? $6_1 + 48 | 0 : $6_1 + 336 | 0; + $16_1 = $15_1; + label$12 : while (1) { + label$13 : { + label$14 : { + if (!($1_1 < 4294967296.0 & $1_1 >= 0.0 | 0)) { + break label$14 + } + $10_1 = ~~$1_1 >>> 0; + break label$13; + } + $10_1 = 0; + } + HEAP32[$16_1 >> 2] = $10_1; + $16_1 = $16_1 + 4 | 0; + $1_1 = ($1_1 - +($10_1 >>> 0)) * 1.0e9; + if ($1_1 != 0.0) { + continue label$12 + } + break label$12; + }; + label$15 : { + label$16 : { + if (($14_1 | 0) >= (1 | 0)) { + break label$16 + } + $10_1 = $16_1; + $17_1 = $15_1; + break label$15; + } + $17_1 = $15_1; + label$17 : while (1) { + $14_1 = ($14_1 | 0) < (29 | 0) ? $14_1 : 29; + label$18 : { + $10_1 = $16_1 + -4 | 0; + if ($10_1 >>> 0 < $17_1 >>> 0) { + break label$18 + } + i64toi32_i32$1 = 0; + $25_1 = $14_1; + $25$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $24_1 = 0; + $24$hi = i64toi32_i32$1; + label$19 : while (1) { + $163_1 = $10_1; + i64toi32_i32$0 = $10_1; + i64toi32_i32$1 = HEAP32[$10_1 >> 2] | 0; + i64toi32_i32$2 = 0; + $165$hi = i64toi32_i32$2; + i64toi32_i32$2 = $25$hi; + i64toi32_i32$2 = $165$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$1 = $25$hi; + i64toi32_i32$3 = $25_1; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $47_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $47_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $167$hi = i64toi32_i32$1; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$2 = $24_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $169_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $169$hi = i64toi32_i32$0; + i64toi32_i32$0 = $167$hi; + i64toi32_i32$1 = $47_1; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$3 = $169_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $24_1 = i64toi32_i32$4; + $24$hi = i64toi32_i32$5; + $171$hi = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_udiv(i64toi32_i32$4 | 0, i64toi32_i32$5 | 0, 1e9 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $24_1 = i64toi32_i32$1; + $24$hi = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_mul($24_1 | 0, i64toi32_i32$5 | 0, 1e9 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $175_1 = i64toi32_i32$1; + $175$hi = i64toi32_i32$5; + i64toi32_i32$5 = $171$hi; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$1 = $175$hi; + i64toi32_i32$3 = $175_1; + i64toi32_i32$2 = i64toi32_i32$0 - i64toi32_i32$3 | 0; + i64toi32_i32$4 = (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + HEAP32[$163_1 >> 2] = i64toi32_i32$2; + $10_1 = $10_1 + -4 | 0; + if ($10_1 >>> 0 >= $17_1 >>> 0) { + continue label$19 + } + break label$19; + }; + i64toi32_i32$4 = $24$hi; + $10_1 = $24_1; + if (!$10_1) { + break label$18 + } + $17_1 = $17_1 + -4 | 0; + HEAP32[$17_1 >> 2] = $10_1; + } + label$20 : { + label$21 : while (1) { + $10_1 = $16_1; + if ($10_1 >>> 0 <= $17_1 >>> 0) { + break label$20 + } + $16_1 = $10_1 + -4 | 0; + if (!(HEAP32[$16_1 >> 2] | 0)) { + continue label$21 + } + break label$21; + }; + } + $14_1 = (HEAP32[($6_1 + 44 | 0) >> 2] | 0) - $14_1 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $14_1; + $16_1 = $10_1; + if (($14_1 | 0) > (0 | 0)) { + continue label$17 + } + break label$17; + }; + } + label$22 : { + if (($14_1 | 0) > (-1 | 0)) { + break label$22 + } + $18_1 = (($13_1 + 25 | 0 | 0) / (9 | 0) | 0) + 1 | 0; + $19_1 = ($12_1 | 0) == (102 | 0); + label$23 : while (1) { + $9_1 = ($14_1 | 0) < (-9 | 0) ? 9 : 0 - $14_1 | 0; + label$24 : { + label$25 : { + if ($17_1 >>> 0 < $10_1 >>> 0) { + break label$25 + } + $17_1 = HEAP32[$17_1 >> 2] | 0 ? $17_1 : $17_1 + 4 | 0; + break label$24; + } + $20_1 = 1e9 >>> $9_1 | 0; + $21_1 = (-1 << $9_1 | 0) ^ -1 | 0; + $14_1 = 0; + $16_1 = $17_1; + label$26 : while (1) { + $3_1 = HEAP32[$16_1 >> 2] | 0; + HEAP32[$16_1 >> 2] = ($3_1 >>> $9_1 | 0) + $14_1 | 0; + $14_1 = Math_imul($3_1 & $21_1 | 0, $20_1); + $16_1 = $16_1 + 4 | 0; + if ($16_1 >>> 0 < $10_1 >>> 0) { + continue label$26 + } + break label$26; + }; + $17_1 = HEAP32[$17_1 >> 2] | 0 ? $17_1 : $17_1 + 4 | 0; + if (!$14_1) { + break label$24 + } + HEAP32[$10_1 >> 2] = $14_1; + $10_1 = $10_1 + 4 | 0; + } + $14_1 = (HEAP32[($6_1 + 44 | 0) >> 2] | 0) + $9_1 | 0; + HEAP32[($6_1 + 44 | 0) >> 2] = $14_1; + $16_1 = $19_1 ? $15_1 : $17_1; + $10_1 = (($10_1 - $16_1 | 0) >> 2 | 0 | 0) > ($18_1 | 0) ? $16_1 + ($18_1 << 2 | 0) | 0 : $10_1; + if (($14_1 | 0) < (0 | 0)) { + continue label$23 + } + break label$23; + }; + } + $16_1 = 0; + label$27 : { + if ($17_1 >>> 0 >= $10_1 >>> 0) { + break label$27 + } + $16_1 = Math_imul(($15_1 - $17_1 | 0) >> 2 | 0, 9); + $14_1 = 10; + $3_1 = HEAP32[$17_1 >> 2] | 0; + if ($3_1 >>> 0 < 10 >>> 0) { + break label$27 + } + label$28 : while (1) { + $16_1 = $16_1 + 1 | 0; + $14_1 = Math_imul($14_1, 10); + if ($3_1 >>> 0 >= $14_1 >>> 0) { + continue label$28 + } + break label$28; + }; + } + label$29 : { + $14_1 = ($13_1 - (($12_1 | 0) == (102 | 0) ? 0 : $16_1) | 0) - (($13_1 | 0) != (0 | 0) & ($12_1 | 0) == (103 | 0) | 0) | 0; + if (($14_1 | 0) >= (Math_imul(($10_1 - $15_1 | 0) >> 2 | 0, 9) + -9 | 0 | 0)) { + break label$29 + } + $3_1 = $14_1 + 9216 | 0; + $20_1 = ($3_1 | 0) / (9 | 0) | 0; + $9_1 = (($20_1 << 2 | 0) + $15_1 | 0) + -4092 | 0; + $14_1 = 10; + label$30 : { + $3_1 = $3_1 - Math_imul($20_1, 9) | 0; + if (($3_1 | 0) > (7 | 0)) { + break label$30 + } + label$31 : while (1) { + $14_1 = Math_imul($14_1, 10); + $3_1 = $3_1 + 1 | 0; + if (($3_1 | 0) != (8 | 0)) { + continue label$31 + } + break label$31; + }; + } + $20_1 = HEAP32[$9_1 >> 2] | 0; + $21_1 = ($20_1 >>> 0) / ($14_1 >>> 0) | 0; + $3_1 = $20_1 - Math_imul($21_1, $14_1) | 0; + label$32 : { + label$33 : { + $18_1 = $9_1 + 4 | 0; + if (($18_1 | 0) != ($10_1 | 0)) { + break label$33 + } + if (!$3_1) { + break label$32 + } + } + $19_1 = $14_1 >>> 1 | 0; + $26_1 = $3_1 >>> 0 < $19_1 >>> 0 ? .5 : ($18_1 | 0) == ($10_1 | 0) ? (($3_1 | 0) == ($19_1 | 0) ? 1.0 : 1.5) : 1.5; + $1_1 = $21_1 & 1 | 0 ? 9007199254740994.0 : 9007199254740992.0; + label$34 : { + if (!$7_1) { + break label$34 + } + if ((HEAPU8[$8_1 >> 0] | 0 | 0) != (45 | 0)) { + break label$34 + } + $26_1 = -$26_1; + $1_1 = -$1_1; + } + $3_1 = $20_1 - $3_1 | 0; + HEAP32[$9_1 >> 2] = $3_1; + if ($1_1 + $26_1 == $1_1) { + break label$32 + } + $16_1 = $3_1 + $14_1 | 0; + HEAP32[$9_1 >> 2] = $16_1; + label$35 : { + if ($16_1 >>> 0 < 1e9 >>> 0) { + break label$35 + } + label$36 : while (1) { + HEAP32[$9_1 >> 2] = 0; + label$37 : { + $9_1 = $9_1 + -4 | 0; + if ($9_1 >>> 0 >= $17_1 >>> 0) { + break label$37 + } + $17_1 = $17_1 + -4 | 0; + HEAP32[$17_1 >> 2] = 0; + } + $16_1 = (HEAP32[$9_1 >> 2] | 0) + 1 | 0; + HEAP32[$9_1 >> 2] = $16_1; + if ($16_1 >>> 0 > 999999999 >>> 0) { + continue label$36 + } + break label$36; + }; + } + $16_1 = Math_imul(($15_1 - $17_1 | 0) >> 2 | 0, 9); + $14_1 = 10; + $3_1 = HEAP32[$17_1 >> 2] | 0; + if ($3_1 >>> 0 < 10 >>> 0) { + break label$32 + } + label$38 : while (1) { + $16_1 = $16_1 + 1 | 0; + $14_1 = Math_imul($14_1, 10); + if ($3_1 >>> 0 >= $14_1 >>> 0) { + continue label$38 + } + break label$38; + }; + } + $14_1 = $9_1 + 4 | 0; + $10_1 = $10_1 >>> 0 > $14_1 >>> 0 ? $14_1 : $10_1; + } + label$39 : { + label$40 : while (1) { + label$41 : { + $14_1 = $10_1; + if ($10_1 >>> 0 > $17_1 >>> 0) { + break label$41 + } + $19_1 = 0; + break label$39; + } + $10_1 = $14_1 + -4 | 0; + if (!(HEAP32[$10_1 >> 2] | 0)) { + continue label$40 + } + break label$40; + }; + $19_1 = 1; + } + label$42 : { + label$43 : { + if (($12_1 | 0) == (103 | 0)) { + break label$43 + } + $21_1 = $4_1 & 8 | 0; + break label$42; + } + $10_1 = $13_1 ? $13_1 : 1; + $3_1 = ($10_1 | 0) > ($16_1 | 0) & ($16_1 | 0) > (-5 | 0) | 0; + $13_1 = ($3_1 ? $16_1 ^ -1 | 0 : -1) + $10_1 | 0; + $5_1 = ($3_1 ? -1 : -2) + $5_1 | 0; + $21_1 = $4_1 & 8 | 0; + if ($21_1) { + break label$42 + } + $10_1 = 9; + label$44 : { + if (!$19_1) { + break label$44 + } + $10_1 = 9; + $9_1 = HEAP32[($14_1 + -4 | 0) >> 2] | 0; + if (!$9_1) { + break label$44 + } + $3_1 = 10; + $10_1 = 0; + if (($9_1 >>> 0) % (10 >>> 0) | 0) { + break label$44 + } + label$45 : while (1) { + $10_1 = $10_1 + 1 | 0; + $3_1 = Math_imul($3_1, 10); + if (!(($9_1 >>> 0) % ($3_1 >>> 0) | 0)) { + continue label$45 + } + break label$45; + }; + } + $3_1 = Math_imul(($14_1 - $15_1 | 0) >> 2 | 0, 9) + -9 | 0; + label$46 : { + if (($5_1 & -33 | 0 | 0) != (70 | 0)) { + break label$46 + } + $21_1 = 0; + $10_1 = $3_1 - $10_1 | 0; + $10_1 = ($10_1 | 0) > (0 | 0) ? $10_1 : 0; + $13_1 = ($13_1 | 0) < ($10_1 | 0) ? $13_1 : $10_1; + break label$42; + } + $21_1 = 0; + $10_1 = ($3_1 + $16_1 | 0) - $10_1 | 0; + $10_1 = ($10_1 | 0) > (0 | 0) ? $10_1 : 0; + $13_1 = ($13_1 | 0) < ($10_1 | 0) ? $13_1 : $10_1; + } + $12_1 = $13_1 | $21_1 | 0; + $3_1 = ($12_1 | 0) != (0 | 0); + label$47 : { + label$48 : { + $20_1 = $5_1 & -33 | 0; + if (($20_1 | 0) != (70 | 0)) { + break label$48 + } + $10_1 = ($16_1 | 0) > (0 | 0) ? $16_1 : 0; + break label$47; + } + label$49 : { + $10_1 = $16_1 >> 31 | 0; + i64toi32_i32$4 = 0; + $10_1 = $888(($16_1 + $10_1 | 0) ^ $10_1 | 0 | 0, i64toi32_i32$4 | 0, $11_1 | 0) | 0; + if (($11_1 - $10_1 | 0 | 0) > (1 | 0)) { + break label$49 + } + label$50 : while (1) { + $10_1 = $10_1 + -1 | 0; + HEAP8[$10_1 >> 0] = 48; + if (($11_1 - $10_1 | 0 | 0) < (2 | 0)) { + continue label$50 + } + break label$50; + }; + } + $18_1 = $10_1 + -2 | 0; + HEAP8[$18_1 >> 0] = $5_1; + HEAP8[($10_1 + -1 | 0) >> 0] = ($16_1 | 0) < (0 | 0) ? 45 : 43; + $10_1 = $11_1 - $18_1 | 0; + } + $9_1 = ((($7_1 + $13_1 | 0) + $3_1 | 0) + $10_1 | 0) + 1 | 0; + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 | 0); + $882($0_1 | 0, $8_1 | 0, $7_1 | 0); + $885($0_1 | 0, 48 | 0, $2_1 | 0, $9_1 | 0, $4_1 ^ 65536 | 0 | 0); + label$51 : { + label$52 : { + label$53 : { + label$54 : { + if (($20_1 | 0) != (70 | 0)) { + break label$54 + } + $20_1 = $6_1 + 16 | 0 | 8 | 0; + $16_1 = $6_1 + 16 | 0 | 9 | 0; + $3_1 = $17_1 >>> 0 > $15_1 >>> 0 ? $15_1 : $17_1; + $17_1 = $3_1; + label$55 : while (1) { + i64toi32_i32$5 = $17_1; + i64toi32_i32$4 = HEAP32[$17_1 >> 2] | 0; + i64toi32_i32$0 = 0; + $10_1 = $888(i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, $16_1 | 0) | 0; + label$56 : { + label$57 : { + if (($17_1 | 0) == ($3_1 | 0)) { + break label$57 + } + if ($10_1 >>> 0 <= ($6_1 + 16 | 0) >>> 0) { + break label$56 + } + label$58 : while (1) { + $10_1 = $10_1 + -1 | 0; + HEAP8[$10_1 >> 0] = 48; + if ($10_1 >>> 0 > ($6_1 + 16 | 0) >>> 0) { + continue label$58 + } + break label$56; + }; + } + if (($10_1 | 0) != ($16_1 | 0)) { + break label$56 + } + HEAP8[($6_1 + 24 | 0) >> 0] = 48; + $10_1 = $20_1; + } + $882($0_1 | 0, $10_1 | 0, $16_1 - $10_1 | 0 | 0); + $17_1 = $17_1 + 4 | 0; + if ($17_1 >>> 0 <= $15_1 >>> 0) { + continue label$55 + } + break label$55; + }; + label$59 : { + if (!$12_1) { + break label$59 + } + $882($0_1 | 0, 20499 | 0, 1 | 0); + } + if ($17_1 >>> 0 >= $14_1 >>> 0) { + break label$53 + } + if (($13_1 | 0) < (1 | 0)) { + break label$53 + } + label$60 : while (1) { + label$61 : { + i64toi32_i32$5 = $17_1; + i64toi32_i32$0 = HEAP32[$17_1 >> 2] | 0; + i64toi32_i32$4 = 0; + $10_1 = $888(i64toi32_i32$0 | 0, i64toi32_i32$4 | 0, $16_1 | 0) | 0; + if ($10_1 >>> 0 <= ($6_1 + 16 | 0) >>> 0) { + break label$61 + } + label$62 : while (1) { + $10_1 = $10_1 + -1 | 0; + HEAP8[$10_1 >> 0] = 48; + if ($10_1 >>> 0 > ($6_1 + 16 | 0) >>> 0) { + continue label$62 + } + break label$62; + }; + } + $882($0_1 | 0, $10_1 | 0, (($13_1 | 0) < (9 | 0) ? $13_1 : 9) | 0); + $10_1 = $13_1 + -9 | 0; + $17_1 = $17_1 + 4 | 0; + if ($17_1 >>> 0 >= $14_1 >>> 0) { + break label$52 + } + $3_1 = ($13_1 | 0) > (9 | 0); + $13_1 = $10_1; + if ($3_1) { + continue label$60 + } + break label$52; + }; + } + label$63 : { + if (($13_1 | 0) < (0 | 0)) { + break label$63 + } + $20_1 = $19_1 ? $14_1 : $17_1 + 4 | 0; + $15_1 = $6_1 + 16 | 0 | 8 | 0; + $14_1 = $6_1 + 16 | 0 | 9 | 0; + $16_1 = $17_1; + label$64 : while (1) { + label$65 : { + i64toi32_i32$5 = $16_1; + i64toi32_i32$4 = HEAP32[$16_1 >> 2] | 0; + i64toi32_i32$0 = 0; + $10_1 = $888(i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, $14_1 | 0) | 0; + if (($10_1 | 0) != ($14_1 | 0)) { + break label$65 + } + HEAP8[($6_1 + 24 | 0) >> 0] = 48; + $10_1 = $15_1; + } + label$66 : { + label$67 : { + if (($16_1 | 0) == ($17_1 | 0)) { + break label$67 + } + if ($10_1 >>> 0 <= ($6_1 + 16 | 0) >>> 0) { + break label$66 + } + label$68 : while (1) { + $10_1 = $10_1 + -1 | 0; + HEAP8[$10_1 >> 0] = 48; + if ($10_1 >>> 0 > ($6_1 + 16 | 0) >>> 0) { + continue label$68 + } + break label$66; + }; + } + $882($0_1 | 0, $10_1 | 0, 1 | 0); + $10_1 = $10_1 + 1 | 0; + label$69 : { + if ($21_1) { + break label$69 + } + if (($13_1 | 0) < (1 | 0)) { + break label$66 + } + } + $882($0_1 | 0, 20499 | 0, 1 | 0); + } + $3_1 = $14_1 - $10_1 | 0; + $882($0_1 | 0, $10_1 | 0, (($13_1 | 0) > ($3_1 | 0) ? $3_1 : $13_1) | 0); + $13_1 = $13_1 - $3_1 | 0; + $16_1 = $16_1 + 4 | 0; + if ($16_1 >>> 0 >= $20_1 >>> 0) { + break label$63 + } + if (($13_1 | 0) > (-1 | 0)) { + continue label$64 + } + break label$64; + }; + } + $885($0_1 | 0, 48 | 0, $13_1 + 18 | 0 | 0, 18 | 0, 0 | 0); + $882($0_1 | 0, $18_1 | 0, $11_1 - $18_1 | 0 | 0); + break label$51; + } + $10_1 = $13_1; + } + $885($0_1 | 0, 48 | 0, $10_1 + 9 | 0 | 0, 9 | 0, 0 | 0); + } + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 ^ 8192 | 0 | 0); + break label$6; + } + $16_1 = $5_1 & 32 | 0; + $13_1 = $16_1 ? $8_1 + 9 | 0 : $8_1; + label$70 : { + if ($3_1 >>> 0 > 11 >>> 0) { + break label$70 + } + $10_1 = 12 - $3_1 | 0; + if (!$10_1) { + break label$70 + } + $26_1 = 8.0; + label$71 : while (1) { + $26_1 = $26_1 * 16.0; + $10_1 = $10_1 + -1 | 0; + if ($10_1) { + continue label$71 + } + break label$71; + }; + label$72 : { + if ((HEAPU8[$13_1 >> 0] | 0 | 0) != (45 | 0)) { + break label$72 + } + $1_1 = -($26_1 + (-$1_1 - $26_1)); + break label$70; + } + $1_1 = $1_1 + $26_1 - $26_1; + } + label$73 : { + $10_1 = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + $811_1 = $10_1; + $10_1 = $10_1 >> 31 | 0; + i64toi32_i32$0 = 0; + $10_1 = $888(($811_1 + $10_1 | 0) ^ $10_1 | 0 | 0, i64toi32_i32$0 | 0, $11_1 | 0) | 0; + if (($10_1 | 0) != ($11_1 | 0)) { + break label$73 + } + HEAP8[($6_1 + 15 | 0) >> 0] = 48; + $10_1 = $6_1 + 15 | 0; + } + $21_1 = $7_1 | 2 | 0; + $17_1 = HEAP32[($6_1 + 44 | 0) >> 2] | 0; + $20_1 = $10_1 + -2 | 0; + HEAP8[$20_1 >> 0] = $5_1 + 15 | 0; + HEAP8[($10_1 + -1 | 0) >> 0] = ($17_1 | 0) < (0 | 0) ? 45 : 43; + $14_1 = $4_1 & 8 | 0; + $17_1 = $6_1 + 16 | 0; + label$74 : while (1) { + $10_1 = $17_1; + label$75 : { + label$76 : { + if (!(Math_abs($1_1) < 2147483648.0)) { + break label$76 + } + $17_1 = ~~$1_1; + break label$75; + } + $17_1 = -2147483648; + } + HEAP8[$10_1 >> 0] = HEAPU8[($17_1 + 20448 | 0) >> 0] | 0 | $16_1 | 0; + $1_1 = ($1_1 - +($17_1 | 0)) * 16.0; + label$77 : { + $17_1 = $10_1 + 1 | 0; + if (($17_1 - ($6_1 + 16 | 0) | 0 | 0) != (1 | 0)) { + break label$77 + } + label$78 : { + if ($14_1) { + break label$78 + } + if (($3_1 | 0) > (0 | 0)) { + break label$78 + } + if ($1_1 == 0.0) { + break label$77 + } + } + HEAP8[($10_1 + 1 | 0) >> 0] = 46; + $17_1 = $10_1 + 2 | 0; + } + if ($1_1 != 0.0) { + continue label$74 + } + break label$74; + }; + label$79 : { + label$80 : { + if (!$3_1) { + break label$80 + } + if ((($17_1 - ($6_1 + 16 | 0) | 0) + -2 | 0 | 0) >= ($3_1 | 0)) { + break label$80 + } + $10_1 = (($3_1 + $11_1 | 0) - $20_1 | 0) + 2 | 0; + break label$79; + } + $10_1 = (($11_1 - ($6_1 + 16 | 0) | 0) - $20_1 | 0) + $17_1 | 0; + } + $9_1 = $10_1 + $21_1 | 0; + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 | 0); + $882($0_1 | 0, $13_1 | 0, $21_1 | 0); + $885($0_1 | 0, 48 | 0, $2_1 | 0, $9_1 | 0, $4_1 ^ 65536 | 0 | 0); + $17_1 = $17_1 - ($6_1 + 16 | 0) | 0; + $882($0_1 | 0, $6_1 + 16 | 0 | 0, $17_1 | 0); + $16_1 = $11_1 - $20_1 | 0; + $885($0_1 | 0, 48 | 0, $10_1 - ($17_1 + $16_1 | 0) | 0 | 0, 0 | 0, 0 | 0); + $882($0_1 | 0, $20_1 | 0, $16_1 | 0); + $885($0_1 | 0, 32 | 0, $2_1 | 0, $9_1 | 0, $4_1 ^ 8192 | 0 | 0); + } + label$81 : { + $23_1 = $6_1 + 560 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return (($9_1 | 0) < ($2_1 | 0) ? $2_1 : $9_1) | 0; + } + + function $891($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $2_1 = 0, $12_1 = 0, $12$hi = 0, $14_1 = 0, $14$hi = 0; + $2_1 = ((HEAP32[$1_1 >> 2] | 0) + 15 | 0) & -16 | 0; + HEAP32[$1_1 >> 2] = $2_1 + 16 | 0; + i64toi32_i32$2 = $2_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $12_1 = i64toi32_i32$0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] | 0; + $14_1 = i64toi32_i32$1; + $14$hi = i64toi32_i32$0; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$1 = $14$hi; + HEAPF64[$0_1 >> 3] = +$946($12_1 | 0, i64toi32_i32$0 | 0, $14_1 | 0, i64toi32_i32$1 | 0); + } + + function $892($0_1) { + $0_1 = +$0_1; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + wasm2js_scratch_store_f64(+$0_1); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + i64toi32_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function $893($0_1) { + $0_1 = $0_1 | 0; + return $0_1 | 0; + } + + function $894($0_1) { + $0_1 = $0_1 | 0; + return fimport$7($893(HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0) | 0 | 0) | 0 | 0; + } + + function $895($0_1) { + $0_1 = $0_1 | 0; + return ($0_1 | 0) == (32 | 0) | ($0_1 + -9 | 0) >>> 0 < 5 >>> 0 | 0 | 0; + } + + function $896($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0, $4_1 = 0, $3_1 = 0; + label$1 : { + $1_1 = global$0 - 16 | 0; + $3_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $3_1; + } + $2_1 = -1; + label$3 : { + if ($874($0_1 | 0) | 0) { + break label$3 + } + if ((FUNCTION_TABLE[HEAP32[($0_1 + 32 | 0) >> 2] | 0]($0_1, $1_1 + 15 | 0, 1) | 0 | 0) != (1 | 0)) { + break label$3 + } + $2_1 = HEAPU8[($1_1 + 15 | 0) >> 0] | 0; + } + label$4 : { + $4_1 = $1_1 + 16 | 0; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + return $2_1 | 0; + } + + function $897($0_1, $1_1, $1$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, $2_1 = 0, $3_1 = 0, $4_1 = 0, $4$hi = 0, i64toi32_i32$2 = 0, $11_1 = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$3 = 0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $0_1; + HEAP32[(i64toi32_i32$1 + 112 | 0) >> 2] = $1_1; + HEAP32[(i64toi32_i32$1 + 116 | 0) >> 2] = $1$hi; + $2_1 = HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] | 0; + $3_1 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + i64toi32_i32$1 = $2_1 - $3_1 | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $4_1 = i64toi32_i32$1; + $4$hi = i64toi32_i32$0; + i64toi32_i32$1 = $0_1; + HEAP32[(i64toi32_i32$1 + 120 | 0) >> 2] = $4_1; + HEAP32[(i64toi32_i32$1 + 124 | 0) >> 2] = i64toi32_i32$0; + label$1 : { + i64toi32_i32$0 = $1$hi; + if (!($1_1 | $1$hi | 0)) { + break label$1 + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$3 = $1_1; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$1 | 0)) { + $11_1 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0) { + $12_1 = 0 + } else { + $12_1 = 1 + } + $13_1 = $12_1; + } else { + $13_1 = 0 + } + $11_1 = $13_1; + } + if ($11_1) { + break label$1 + } + i64toi32_i32$2 = $1$hi; + HEAP32[($0_1 + 104 | 0) >> 2] = $3_1 + $1_1 | 0; + return; + } + HEAP32[($0_1 + 104 | 0) >> 2] = $2_1; + } + + function $898($0_1) { + $0_1 = $0_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, $4$hi = 0, i64toi32_i32$4 = 0, $3_1 = 0, $4_1 = 0, $1_1 = 0, $2_1 = 0, $22_1 = 0, $23_1 = 0, $24_1 = 0, $25_1 = 0, $26_1 = 0, $28_1 = 0, $10$hi = 0, $27_1 = 0, $27$hi = 0, $35_1 = 0, $35$hi = 0, $47_1 = 0, $49_1 = 0, $49$hi = 0, $56_1 = 0, $56$hi = 0; + label$1 : { + label$2 : { + label$3 : { + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = HEAP32[($0_1 + 112 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($0_1 + 116 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$0; + $4$hi = i64toi32_i32$1; + if (!(i64toi32_i32$0 | i64toi32_i32$1 | 0)) { + break label$3 + } + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $10$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $10$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$3 = $4_1; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$1 | 0)) { + $22_1 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + $23_1 = 0 + } else { + $23_1 = 1 + } + $24_1 = $23_1; + } else { + $24_1 = 0 + } + $22_1 = $24_1; + } + if ($22_1) { + break label$2 + } + } + $1_1 = $896($0_1 | 0) | 0; + if (($1_1 | 0) > (-1 | 0)) { + break label$1 + } + } + HEAP32[($0_1 + 104 | 0) >> 2] = 0; + return -1 | 0; + } + $2_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + label$4 : { + label$5 : { + i64toi32_i32$3 = $0_1; + i64toi32_i32$2 = HEAP32[($0_1 + 112 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($0_1 + 116 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$2; + $4$hi = i64toi32_i32$0; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) | 0) { + break label$5 + } + i64toi32_i32$3 = $4$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0; + $27_1 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0; + $27$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$1 = $27$hi; + i64toi32_i32$2 = $27_1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $4_1 = i64toi32_i32$4; + $4$hi = i64toi32_i32$5; + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = $2_1 - $3_1 | 0; + i64toi32_i32$5 = i64toi32_i32$0 >> 31 | 0; + $35_1 = i64toi32_i32$0; + $35$hi = i64toi32_i32$5; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$0 = $35$hi; + i64toi32_i32$2 = $35_1; + if ((i64toi32_i32$5 | 0) > (i64toi32_i32$0 | 0)) { + $25_1 = 1 + } else { + if ((i64toi32_i32$5 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0) { + $26_1 = 0 + } else { + $26_1 = 1 + } + $28_1 = $26_1; + } else { + $28_1 = 0 + } + $25_1 = $28_1; + } + if ($25_1) { + break label$5 + } + i64toi32_i32$3 = $4$hi; + HEAP32[($0_1 + 104 | 0) >> 2] = $3_1 + $4_1 | 0; + break label$4; + } + HEAP32[($0_1 + 104 | 0) >> 2] = $2_1; + } + label$6 : { + label$7 : { + if ($2_1) { + break label$7 + } + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + break label$6; + } + $47_1 = $0_1; + i64toi32_i32$2 = $0_1; + i64toi32_i32$3 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $49_1 = i64toi32_i32$3; + $49$hi = i64toi32_i32$5; + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + i64toi32_i32$3 = ($2_1 - $3_1 | 0) + 1 | 0; + i64toi32_i32$5 = i64toi32_i32$3 >> 31 | 0; + $56_1 = i64toi32_i32$3; + $56$hi = i64toi32_i32$5; + i64toi32_i32$5 = $49$hi; + i64toi32_i32$2 = $49_1; + i64toi32_i32$3 = $56$hi; + i64toi32_i32$0 = $56_1; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$2 = $47_1; + HEAP32[(i64toi32_i32$2 + 120 | 0) >> 2] = i64toi32_i32$1; + HEAP32[(i64toi32_i32$2 + 124 | 0) >> 2] = i64toi32_i32$4; + } + label$8 : { + $0_1 = $3_1 + -1 | 0; + if (($1_1 | 0) == (HEAPU8[$0_1 >> 0] | 0 | 0)) { + break label$8 + } + HEAP8[$0_1 >> 0] = $1_1; + } + return $1_1 | 0; + } + + function $899($0_1, $1_1, $2_1, $3_1, $3$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + var i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, $11$hi = 0, i64toi32_i32$1 = 0, $11_1 = 0, $12$hi = 0, $7_1 = 0, $13$hi = 0, $12_1 = 0, $13_1 = 0, $4_1 = 0, $6_1 = 0, $14_1 = 0, $14$hi = 0, $8_1 = 0, $34_1 = 0, $35_1 = 0, $10_1 = 0, $9_1 = 0, $194_1 = 0, $194$hi = 0, $251_1 = 0, $251$hi = 0, $333$hi = 0, $336_1 = 0, $336$hi = 0, $415$hi = 0; + label$1 : { + $4_1 = global$0 - 16 | 0; + $9_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + label$9 : { + if ($1_1 >>> 0 > 36 >>> 0) { + break label$9 + } + label$10 : while (1) { + label$11 : { + label$12 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$12 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$11; + } + $5_1 = $898($0_1 | 0) | 0; + } + if ($895($5_1 | 0) | 0) { + continue label$10 + } + break label$10; + }; + $6_1 = 0; + label$13 : { + $7_1 = $5_1 + -43 | 0; + if ($7_1 >>> 0 > 2 >>> 0) { + break label$13 + } + label$14 : { + switch ($7_1 | 0) { + case 1: + break label$13; + default: + break label$14; + }; + } + $6_1 = ($5_1 | 0) == (45 | 0) ? -1 : 0; + label$15 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$15 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$13; + } + $5_1 = $898($0_1 | 0) | 0; + } + label$16 : { + label$17 : { + if ($1_1 & -17 | 0) { + break label$17 + } + if (($5_1 | 0) != (48 | 0)) { + break label$17 + } + label$18 : { + label$19 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$19 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$18; + } + $5_1 = $898($0_1 | 0) | 0; + } + label$20 : { + if (($5_1 & -33 | 0 | 0) != (88 | 0)) { + break label$20 + } + label$21 : { + label$22 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$22 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$21; + } + $5_1 = $898($0_1 | 0) | 0; + } + $1_1 = 16; + if ((HEAPU8[($5_1 + 20513 | 0) >> 0] | 0) >>> 0 < 16 >>> 0) { + break label$7 + } + label$23 : { + if (HEAP32[($0_1 + 104 | 0) >> 2] | 0) { + break label$23 + } + i64toi32_i32$0 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$0; + if ($2_1) { + break label$3 + } + break label$4; + } + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + -1 | 0; + if (!$2_1) { + break label$4 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + -2 | 0; + i64toi32_i32$0 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$0; + break label$3; + } + if ($1_1) { + break label$16 + } + $1_1 = 8; + break label$7; + } + $1_1 = $1_1 ? $1_1 : 10; + if ($1_1 >>> 0 > (HEAPU8[($5_1 + 20513 | 0) >> 0] | 0) >>> 0) { + break label$16 + } + label$24 : { + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$24 + } + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + i64toi32_i32$0 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $897($0_1 | 0, 0 | 0, i64toi32_i32$0 | 0); + HEAP32[($842() | 0) >> 2] = 28; + break label$3; + } + if (($1_1 | 0) != (10 | 0)) { + break label$7 + } + i64toi32_i32$0 = 0; + $11_1 = 0; + $11$hi = i64toi32_i32$0; + label$25 : { + $2_1 = $5_1 + -48 | 0; + if ($2_1 >>> 0 > 9 >>> 0) { + break label$25 + } + $1_1 = 0; + label$26 : while (1) { + $1_1 = Math_imul($1_1, 10); + label$27 : { + label$28 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$28 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$27; + } + $5_1 = $898($0_1 | 0) | 0; + } + $1_1 = $1_1 + $2_1 | 0; + label$29 : { + $2_1 = $5_1 + -48 | 0; + if ($2_1 >>> 0 > 9 >>> 0) { + break label$29 + } + if ($1_1 >>> 0 < 429496729 >>> 0) { + continue label$26 + } + } + break label$26; + }; + i64toi32_i32$0 = 0; + $11_1 = $1_1; + $11$hi = i64toi32_i32$0; + } + if ($2_1 >>> 0 > 9 >>> 0) { + break label$8 + } + i64toi32_i32$0 = $11$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_mul($11_1 | 0, i64toi32_i32$0 | 0, 10 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $13_1 = $2_1; + $13$hi = i64toi32_i32$0; + label$30 : while (1) { + label$31 : { + label$32 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$32 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$31; + } + $5_1 = $898($0_1 | 0) | 0; + } + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$2 = $12_1; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$3 = $13_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $11_1 = i64toi32_i32$4; + $11$hi = i64toi32_i32$5; + $2_1 = $5_1 + -48 | 0; + if ($2_1 >>> 0 > 9 >>> 0) { + break label$8 + } + i64toi32_i32$5 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$2 = 429496729; + i64toi32_i32$3 = -1717986918; + if (i64toi32_i32$5 >>> 0 > i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$8 + } + i64toi32_i32$0 = $11$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$5 = __wasm_i64_mul($11_1 | 0, i64toi32_i32$0 | 0, 10 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $12_1 = i64toi32_i32$5; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $13_1 = $2_1; + $13$hi = i64toi32_i32$0; + i64toi32_i32$3 = $2_1; + i64toi32_i32$5 = -1; + i64toi32_i32$2 = -1; + i64toi32_i32$5 = i64toi32_i32$0 ^ i64toi32_i32$5 | 0; + $194_1 = i64toi32_i32$3 ^ i64toi32_i32$2 | 0; + $194$hi = i64toi32_i32$5; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$0 = $12_1; + i64toi32_i32$3 = $194$hi; + i64toi32_i32$2 = $194_1; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 <= i64toi32_i32$2 >>> 0 | 0) | 0) { + continue label$30 + } + break label$30; + }; + $1_1 = 10; + break label$6; + } + HEAP32[($842() | 0) >> 2] = 28; + i64toi32_i32$0 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$0; + break label$3; + } + $1_1 = 10; + if ($2_1 >>> 0 <= 9 >>> 0) { + break label$6 + } + break label$5; + } + label$33 : { + if (!($1_1 & ($1_1 + -1 | 0) | 0)) { + break label$33 + } + i64toi32_i32$0 = 0; + $11_1 = 0; + $11$hi = i64toi32_i32$0; + label$34 : { + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + if ($1_1 >>> 0 <= $2_1 >>> 0) { + break label$34 + } + $7_1 = 0; + label$35 : while (1) { + $7_1 = $2_1 + Math_imul($7_1, $1_1) | 0; + label$36 : { + label$37 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$37 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$36; + } + $5_1 = $898($0_1 | 0) | 0; + } + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + label$38 : { + if ($7_1 >>> 0 > 119304646 >>> 0) { + break label$38 + } + if ($1_1 >>> 0 > $2_1 >>> 0) { + continue label$35 + } + } + break label$35; + }; + i64toi32_i32$0 = 0; + $11_1 = $7_1; + $11$hi = i64toi32_i32$0; + } + if ($1_1 >>> 0 <= $2_1 >>> 0) { + break label$6 + } + i64toi32_i32$0 = 0; + $12_1 = $1_1; + $12$hi = i64toi32_i32$0; + label$39 : while (1) { + i64toi32_i32$0 = $11$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$5 = __wasm_i64_mul($11_1 | 0, i64toi32_i32$0 | 0, $12_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $13_1 = i64toi32_i32$5; + $13$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 255; + i64toi32_i32$5 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + $14_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $14$hi = i64toi32_i32$5; + i64toi32_i32$0 = $14_1; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$5 ^ i64toi32_i32$2 | 0; + $251_1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0; + $251$hi = i64toi32_i32$2; + i64toi32_i32$2 = $13$hi; + i64toi32_i32$5 = $13_1; + i64toi32_i32$0 = $251$hi; + i64toi32_i32$3 = $251_1; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$6 + } + label$40 : { + label$41 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$41 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$40; + } + $5_1 = $898($0_1 | 0) | 0; + } + i64toi32_i32$5 = $13$hi; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$3 = $13_1; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$0 = $14_1; + i64toi32_i32$1 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $11_1 = i64toi32_i32$1; + $11$hi = i64toi32_i32$4; + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + if ($1_1 >>> 0 <= $2_1 >>> 0) { + break label$6 + } + i64toi32_i32$4 = $12$hi; + i64toi32_i32$4 = $11$hi; + i64toi32_i32$4 = $12$hi; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$0 = 0; + $944($4_1 | 0, $12_1 | 0, i64toi32_i32$4 | 0, 0 | 0, i64toi32_i32$3 | 0, $11_1 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$3 = $4_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] | 0; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 0; + if ((i64toi32_i32$3 | 0) != (i64toi32_i32$4 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$0 | 0) | 0) { + break label$6 + } + continue label$39; + }; + } + $8_1 = HEAP8[(((Math_imul($1_1, 23) >>> 5 | 0) & 7 | 0) + 20769 | 0) >> 0] | 0; + i64toi32_i32$3 = 0; + $11_1 = 0; + $11$hi = i64toi32_i32$3; + label$42 : { + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + if ($1_1 >>> 0 <= $2_1 >>> 0) { + break label$42 + } + $7_1 = 0; + label$43 : while (1) { + $7_1 = $2_1 | ($7_1 << $8_1 | 0) | 0; + label$44 : { + label$45 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$45 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$44; + } + $5_1 = $898($0_1 | 0) | 0; + } + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + label$46 : { + if ($7_1 >>> 0 > 134217727 >>> 0) { + break label$46 + } + if ($1_1 >>> 0 > $2_1 >>> 0) { + continue label$43 + } + } + break label$43; + }; + i64toi32_i32$3 = 0; + $11_1 = $7_1; + $11$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = 0; + $12_1 = $8_1; + $12$hi = i64toi32_i32$3; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = -1; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$0 = $12_1; + i64toi32_i32$2 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $34_1 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + $34_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$2 | 0) | 0; + } + $13_1 = $34_1; + $13$hi = i64toi32_i32$5; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$3 = $13_1; + i64toi32_i32$4 = $11$hi; + i64toi32_i32$0 = $11_1; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0) { + break label$6 + } + if ($1_1 >>> 0 <= $2_1 >>> 0) { + break label$6 + } + label$47 : while (1) { + i64toi32_i32$3 = $11$hi; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$3 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$4 = $12_1; + i64toi32_i32$2 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $35_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$2 | 0) | 0; + $35_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $333$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = $2_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 255; + i64toi32_i32$0 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + $336_1 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $336$hi = i64toi32_i32$0; + i64toi32_i32$0 = $333$hi; + i64toi32_i32$5 = $35_1; + i64toi32_i32$3 = $336$hi; + i64toi32_i32$4 = $336_1; + i64toi32_i32$3 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $11_1 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $11$hi = i64toi32_i32$3; + label$48 : { + label$49 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$49 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$48; + } + $5_1 = $898($0_1 | 0) | 0; + } + i64toi32_i32$3 = $11$hi; + i64toi32_i32$3 = $13$hi; + i64toi32_i32$3 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$4 = $13_1; + if (i64toi32_i32$3 >>> 0 > i64toi32_i32$5 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$6 + } + $2_1 = HEAPU8[($5_1 + 20513 | 0) >> 0] | 0; + if ($1_1 >>> 0 > $2_1 >>> 0) { + continue label$47 + } + break label$47; + }; + } + if ($1_1 >>> 0 <= (HEAPU8[($5_1 + 20513 | 0) >> 0] | 0) >>> 0) { + break label$5 + } + label$50 : while (1) { + label$51 : { + label$52 : { + $5_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$52 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $5_1 + 1 | 0; + $5_1 = HEAPU8[$5_1 >> 0] | 0; + break label$51; + } + $5_1 = $898($0_1 | 0) | 0; + } + if ($1_1 >>> 0 > (HEAPU8[($5_1 + 20513 | 0) >> 0] | 0) >>> 0) { + continue label$50 + } + break label$50; + }; + HEAP32[($842() | 0) >> 2] = 68; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$3 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $6_1 = !(i64toi32_i32$4 & i64toi32_i32$5 | 0 | i64toi32_i32$3 | 0) ? $6_1 : 0; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$3 = i64toi32_i32$0; + $11_1 = i64toi32_i32$4; + $11$hi = i64toi32_i32$0; + } + label$53 : { + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$53 + } + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + label$54 : { + i64toi32_i32$3 = $11$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$5 = $3_1; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0) { + break label$54 + } + label$55 : { + i64toi32_i32$0 = $3$hi; + if ($3_1 & 1 | 0) { + break label$55 + } + if ($6_1) { + break label$55 + } + HEAP32[($842() | 0) >> 2] = 68; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = -1; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $3_1 = i64toi32_i32$2; + $3$hi = i64toi32_i32$1; + break label$3; + } + i64toi32_i32$1 = $11$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$4 = $3_1; + if ($11$hi >>> 0 < i64toi32_i32$5 >>> 0 | (($11$hi | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 <= i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$54 + } + HEAP32[($842() | 0) >> 2] = 68; + break label$3; + } + i64toi32_i32$0 = $11$hi; + i64toi32_i32$1 = $6_1; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $3_1 = i64toi32_i32$1; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$4 = $11_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$1 | 0; + $415$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $415$hi; + i64toi32_i32$0 = i64toi32_i32$4 ^ i64toi32_i32$5 | 0; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$3 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + i64toi32_i32$2 = (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$1 - i64toi32_i32$2 | 0; + $3_1 = i64toi32_i32$3; + $3$hi = i64toi32_i32$2; + break label$3; + } + i64toi32_i32$2 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $897($0_1 | 0, 0 | 0, i64toi32_i32$2 | 0); + } + label$56 : { + $10_1 = $4_1 + 16 | 0; + if ($10_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$2; + return i64toi32_i32$0 | 0; + } + + function $900($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $6_1 = 0, $4_1 = 0, $5_1 = 0, $8_1 = 0, $7_1 = 0, $9_1 = 0, $11_1 = 0, $10_1 = 0; + label$1 : { + $4_1 = global$0 - 16 | 0; + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + $5_1 = $3_1 ? $3_1 : 25960; + $3_1 = HEAP32[$5_1 >> 2] | 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + if ($1_1) { + break label$6 + } + if ($3_1) { + break label$5 + } + $6_1 = 0; + break label$3; + } + $6_1 = -2; + if (!$2_1) { + break label$3 + } + $7_1 = $0_1 ? $0_1 : $4_1 + 12 | 0; + label$7 : { + label$8 : { + if (!$3_1) { + break label$8 + } + $0_1 = $2_1; + break label$7; + } + label$9 : { + $3_1 = HEAPU8[$1_1 >> 0] | 0; + $0_1 = ($3_1 << 24 | 0) >> 24 | 0; + if (($0_1 | 0) < (0 | 0)) { + break label$9 + } + HEAP32[$7_1 >> 2] = $3_1; + $6_1 = ($0_1 | 0) != (0 | 0); + break label$3; + } + $3_1 = HEAP32[(HEAP32[(($901() | 0) + 176 | 0) >> 2] | 0) >> 2] | 0; + $0_1 = HEAP8[$1_1 >> 0] | 0; + label$10 : { + if ($3_1) { + break label$10 + } + HEAP32[$7_1 >> 2] = $0_1 & 57343 | 0; + $6_1 = 1; + break label$3; + } + $3_1 = ($0_1 & 255 | 0) + -194 | 0; + if ($3_1 >>> 0 > 50 >>> 0) { + break label$5 + } + $3_1 = HEAP32[(($3_1 << 2 | 0) + 20784 | 0) >> 2] | 0; + $0_1 = $2_1 + -1 | 0; + if (!$0_1) { + break label$4 + } + $1_1 = $1_1 + 1 | 0; + } + $8_1 = HEAPU8[$1_1 >> 0] | 0; + $9_1 = $8_1 >>> 3 | 0; + if (($9_1 + -16 | 0 | (($3_1 >> 26 | 0) + $9_1 | 0) | 0) >>> 0 > 7 >>> 0) { + break label$5 + } + label$11 : while (1) { + $0_1 = $0_1 + -1 | 0; + label$12 : { + $3_1 = ($8_1 & 255 | 0) + -128 | 0 | ($3_1 << 6 | 0) | 0; + if (($3_1 | 0) < (0 | 0)) { + break label$12 + } + HEAP32[$5_1 >> 2] = 0; + HEAP32[$7_1 >> 2] = $3_1; + $6_1 = $2_1 - $0_1 | 0; + break label$3; + } + if (!$0_1) { + break label$4 + } + $1_1 = $1_1 + 1 | 0; + $8_1 = HEAPU8[$1_1 >> 0] | 0; + if (($8_1 & 192 | 0 | 0) == (128 | 0)) { + continue label$11 + } + break label$11; + }; + } + HEAP32[$5_1 >> 2] = 0; + HEAP32[($842() | 0) >> 2] = 25; + $6_1 = -1; + break label$3; + } + HEAP32[$5_1 >> 2] = $3_1; + } + label$13 : { + $11_1 = $4_1 + 16 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return $6_1 | 0; + } + + function $901() { + return $843() | 0 | 0; + } + + function $902($0_1) { + $0_1 = $0_1 | 0; + label$1 : { + if ($0_1) { + break label$1 + } + return 1 | 0; + } + return !(HEAP32[$0_1 >> 2] | 0) | 0; + } + + function $903($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $22_1 = 0, $23_1 = 0, $24_1 = 0, $7_1 = 0, $11_1 = 0, $18$hi = 0, $20_1 = 0, $20$hi = 0, $21_1 = 0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $1_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + $7_1 = i64toi32_i32$1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $22_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $22_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $11_1 = $22_1 & 32768 | 0; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $23_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $23_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $11_1 | ($23_1 & 32767 | 0) | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $24_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $24_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $18$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $20_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $20$hi = i64toi32_i32$1; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$0 = $24_1; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $21_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + i64toi32_i32$0 = $7_1; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $21_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + } + + function $904($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4_1 = 0, i64toi32_i32$4 = 0, $22_1 = 0, $6_1 = 0, $5_1 = 0, $76_1 = 0, $77_1 = 0, $77$hi = 0, $78_1 = 0, $78$hi = 0, $82$hi = 0, $86_1 = 0, $89_1 = 0; + label$1 : { + $4_1 = global$0 - 80 | 0; + $5_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + label$3 : { + label$4 : { + if (($3_1 | 0) < (16384 | 0)) { + break label$4 + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 2147352576; + $943($4_1 + 32 | 0 | 0, $1_1 | 0, i64toi32_i32$0 | 0, $2_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($4_1 + 32 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$2; + i64toi32_i32$1 = $4_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 36 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$2; + $1$hi = i64toi32_i32$3; + label$5 : { + if (($3_1 | 0) >= (32767 | 0)) { + break label$5 + } + $3_1 = $3_1 + -16383 | 0; + break label$3; + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 2147352576; + $943($4_1 + 16 | 0 | 0, $1_1 | 0, i64toi32_i32$3 | 0, $2_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$0 | 0); + $3_1 = (($3_1 | 0) < (49149 | 0) ? $3_1 : 49149) + -32766 | 0; + i64toi32_i32$2 = ($4_1 + 16 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$0; + $2$hi = i64toi32_i32$1; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 20 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$1; + $1$hi = i64toi32_i32$0; + break label$3; + } + if (($3_1 | 0) > (-16383 | 0)) { + break label$3 + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 65536; + $943($4_1 + 64 | 0 | 0, $1_1 | 0, i64toi32_i32$0 | 0, $2_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($4_1 + 64 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$2; + i64toi32_i32$1 = $4_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$2; + $1$hi = i64toi32_i32$3; + label$6 : { + if (($3_1 | 0) <= (-32765 | 0)) { + break label$6 + } + $3_1 = $3_1 + 16382 | 0; + break label$3; + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 65536; + $943($4_1 + 48 | 0 | 0, $1_1 | 0, i64toi32_i32$3 | 0, $2_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$0 | 0); + $3_1 = (($3_1 | 0) > (-49146 | 0) ? $3_1 : -49146) + 32764 | 0; + i64toi32_i32$2 = ($4_1 + 48 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$0; + $2$hi = i64toi32_i32$1; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 52 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$1; + $1$hi = i64toi32_i32$0; + } + $76_1 = $4_1; + i64toi32_i32$0 = $1$hi; + $77_1 = $1_1; + $77$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + $78_1 = $2_1; + $78$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $3_1 + 16383 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $22_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $22_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $82$hi = i64toi32_i32$1; + i64toi32_i32$1 = $77$hi; + i64toi32_i32$2 = $78$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = $82$hi; + $943($76_1 | 0, $77_1 | 0, i64toi32_i32$1 | 0, $78_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0, $22_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$2 = $4_1 + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $86_1 = i64toi32_i32$3; + i64toi32_i32$3 = $0_1; + HEAP32[(i64toi32_i32$3 + 8 | 0) >> 2] = $86_1; + HEAP32[(i64toi32_i32$3 + 12 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $4_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $89_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $89_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$3; + label$7 : { + $6_1 = i64toi32_i32$2 + 80 | 0; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + } + + function $905($0_1) { + $0_1 = +$0_1; + return +Math_abs($0_1); + } + + function $906($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $8_1 = 0, i64toi32_i32$0 = 0, $4_1 = 0, $5_1 = 0, i64toi32_i32$1 = 0, $9_1 = 0, i64toi32_i32$2 = 0, $13_1 = 0, $13$hi = 0, $12_1 = 0, $12$hi = 0, $6_1 = 0, $7_1 = 0, $11_1 = 0, $10_1 = 0; + label$1 : { + $4_1 = global$0 - 48 | 0; + $10_1 = $4_1; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + i64toi32_i32$0 = 0; + $12_1 = 0; + $12$hi = i64toi32_i32$0; + label$3 : { + label$4 : { + if ($2_1 >>> 0 > 2 >>> 0) { + break label$4 + } + $5_1 = $1_1 + 4 | 0; + $2_1 = $2_1 << 2 | 0; + $6_1 = HEAP32[($2_1 + 21068 | 0) >> 2] | 0; + $7_1 = HEAP32[($2_1 + 21056 | 0) >> 2] | 0; + label$5 : while (1) { + label$6 : { + label$7 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$7 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$6; + } + $2_1 = $898($1_1 | 0) | 0; + } + if ($895($2_1 | 0) | 0) { + continue label$5 + } + break label$5; + }; + label$8 : { + label$9 : { + $8_1 = $2_1 + -43 | 0; + if ($8_1 >>> 0 <= 2 >>> 0) { + break label$9 + } + $9_1 = 1; + break label$8; + } + $9_1 = 1; + label$10 : { + switch ($8_1 | 0) { + case 1: + break label$8; + default: + break label$10; + }; + } + $9_1 = ($2_1 | 0) == (45 | 0) ? -1 : 1; + label$11 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$11 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$8; + } + $2_1 = $898($1_1 | 0) | 0; + } + $8_1 = 0; + label$12 : { + label$13 : { + label$14 : { + label$15 : while (1) { + if (($2_1 | 32 | 0 | 0) != (HEAP8[($8_1 + 20988 | 0) >> 0] | 0 | 0)) { + break label$14 + } + label$16 : { + if ($8_1 >>> 0 > 6 >>> 0) { + break label$16 + } + label$17 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$17 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$16; + } + $2_1 = $898($1_1 | 0) | 0; + } + $8_1 = $8_1 + 1 | 0; + if (($8_1 | 0) != (8 | 0)) { + continue label$15 + } + break label$13; + }; + } + label$18 : { + if (($8_1 | 0) == (3 | 0)) { + break label$18 + } + if (($8_1 | 0) == (8 | 0)) { + break label$13 + } + if (!$3_1) { + break label$12 + } + if ($8_1 >>> 0 < 4 >>> 0) { + break label$12 + } + if (($8_1 | 0) == (8 | 0)) { + break label$13 + } + } + label$19 : { + $1_1 = HEAP32[($1_1 + 104 | 0) >> 2] | 0; + if (!$1_1) { + break label$19 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + if (!$3_1) { + break label$13 + } + if ($8_1 >>> 0 < 4 >>> 0) { + break label$13 + } + label$20 : while (1) { + label$21 : { + if (!$1_1) { + break label$21 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + $8_1 = $8_1 + -1 | 0; + if ($8_1 >>> 0 > 3 >>> 0) { + continue label$20 + } + break label$20; + }; + } + $939($4_1 | 0, Math_fround(Math_fround(Math_fround($9_1 | 0) * Math_fround(infinity)))); + i64toi32_i32$2 = $4_1 + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $13_1 = i64toi32_i32$0; + $13$hi = i64toi32_i32$1; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = HEAP32[$4_1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4_1 + 4 | 0) >> 2] | 0; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$0; + break label$3; + } + label$22 : { + label$23 : { + label$24 : { + if ($8_1) { + break label$24 + } + $8_1 = 0; + label$25 : while (1) { + if (($2_1 | 32 | 0 | 0) != (HEAP8[($8_1 + 20997 | 0) >> 0] | 0 | 0)) { + break label$24 + } + label$26 : { + if ($8_1 >>> 0 > 1 >>> 0) { + break label$26 + } + label$27 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$27 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$26; + } + $2_1 = $898($1_1 | 0) | 0; + } + $8_1 = $8_1 + 1 | 0; + if (($8_1 | 0) != (3 | 0)) { + continue label$25 + } + break label$23; + }; + } + label$28 : { + label$29 : { + if ($8_1 >>> 0 > 3 >>> 0) { + break label$29 + } + switch ($8_1 | 0) { + case 3: + break label$23; + case 1: + case 2: + break label$29; + default: + break label$28; + }; + } + label$30 : { + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$30 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + HEAP32[($842() | 0) >> 2] = 28; + break label$22; + } + label$31 : { + if (($2_1 | 0) != (48 | 0)) { + break label$31 + } + label$32 : { + label$33 : { + $8_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($8_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$33 + } + HEAP32[$5_1 >> 2] = $8_1 + 1 | 0; + $8_1 = HEAPU8[$8_1 >> 0] | 0; + break label$32; + } + $8_1 = $898($1_1 | 0) | 0; + } + label$34 : { + if (($8_1 & -33 | 0 | 0) != (88 | 0)) { + break label$34 + } + $907($4_1 + 16 | 0 | 0, $1_1 | 0, $7_1 | 0, $6_1 | 0, $9_1 | 0, $3_1 | 0); + i64toi32_i32$2 = $4_1; + i64toi32_i32$0 = HEAP32[($4_1 + 24 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4_1 + 28 | 0) >> 2] | 0; + $13_1 = i64toi32_i32$0; + $13$hi = i64toi32_i32$1; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = HEAP32[($4_1 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$0; + break label$3; + } + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$31 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + $908($4_1 + 32 | 0 | 0, $1_1 | 0, $2_1 | 0, $7_1 | 0, $6_1 | 0, $9_1 | 0, $3_1 | 0); + i64toi32_i32$2 = $4_1; + i64toi32_i32$0 = HEAP32[($4_1 + 40 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($4_1 + 44 | 0) >> 2] | 0; + $13_1 = i64toi32_i32$0; + $13$hi = i64toi32_i32$1; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = HEAP32[($4_1 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($4_1 + 36 | 0) >> 2] | 0; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$0; + break label$3; + } + label$35 : { + label$36 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$36 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$35; + } + $2_1 = $898($1_1 | 0) | 0; + } + label$37 : { + label$38 : { + if (($2_1 | 0) != (40 | 0)) { + break label$38 + } + $8_1 = 1; + break label$37; + } + i64toi32_i32$0 = 2147450880; + $13_1 = 0; + $13$hi = i64toi32_i32$0; + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$3 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + break label$3; + } + label$39 : while (1) { + label$40 : { + label$41 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$41 + } + HEAP32[$5_1 >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$40; + } + $2_1 = $898($1_1 | 0) | 0; + } + $9_1 = $2_1 + -65 | 0; + label$42 : { + label$43 : { + if (($2_1 + -48 | 0) >>> 0 < 10 >>> 0) { + break label$43 + } + if ($9_1 >>> 0 < 26 >>> 0) { + break label$43 + } + $9_1 = $2_1 + -97 | 0; + if (($2_1 | 0) == (95 | 0)) { + break label$43 + } + if ($9_1 >>> 0 >= 26 >>> 0) { + break label$42 + } + } + $8_1 = $8_1 + 1 | 0; + continue label$39; + } + break label$39; + }; + i64toi32_i32$0 = 2147450880; + $13_1 = 0; + $13$hi = i64toi32_i32$0; + if (($2_1 | 0) == (41 | 0)) { + break label$3 + } + label$44 : { + $2_1 = HEAP32[($1_1 + 104 | 0) >> 2] | 0; + if (!$2_1) { + break label$44 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + label$45 : { + if (!$3_1) { + break label$45 + } + if (!$8_1) { + break label$3 + } + label$46 : while (1) { + $8_1 = $8_1 + -1 | 0; + label$47 : { + if (!$2_1) { + break label$47 + } + HEAP32[$5_1 >> 2] = (HEAP32[$5_1 >> 2] | 0) + -1 | 0; + } + if ($8_1) { + continue label$46 + } + break label$3; + }; + } + HEAP32[($842() | 0) >> 2] = 28; + } + i64toi32_i32$0 = 0; + $12_1 = 0; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $897($1_1 | 0, 0 | 0, i64toi32_i32$0 | 0); + } + i64toi32_i32$0 = 0; + $13_1 = 0; + $13$hi = i64toi32_i32$0; + } + i64toi32_i32$0 = $12$hi; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $12_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = $13$hi; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $13_1; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$0; + label$48 : { + $11_1 = $4_1 + 48 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + } + + function $907($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $6_1 = 0, i64toi32_i32$4 = 0, $7_1 = 0, $18$hi = 0, $21$hi = 0, $18_1 = 0, $21_1 = 0, $17$hi = 0, $19$hi = 0, $16$hi = 0, $17_1 = 0, $19_1 = 0, $20$hi = 0, $16_1 = 0, $10_1 = 0, $20_1 = 0, $8_1 = 0, $9_1 = 0, $22$hi = 0, $22_1 = 0, $11_1 = 0, $12_1 = 0, $13_1 = 0, $109_1 = 0, $110_1 = 0, $111_1 = 0, $112_1 = 0, $113_1 = 0, $114_1 = 0, $115_1 = 0, $116_1 = 0, $117_1 = 0, $118_1 = 0, $119_1 = 0, $120_1 = 0, $121_1 = 0, $122_1 = 0, $123_1 = 0, $124_1 = 0, $125_1 = 0, $126_1 = 0, $127_1 = 0, $15_1 = 0, $14_1 = 0, $139_1 = 0, $139$hi = 0, $143_1 = 0, $143$hi = 0, $148_1 = 0, $148$hi = 0, $152_1 = 0, $152$hi = 0, $170_1 = 0, $170$hi = 0, $174_1 = 0, $174$hi = 0, $264$hi = 0, $271_1 = 0, $271$hi = 0, $280_1 = 0, $280$hi = 0, $284_1 = 0, $284$hi = 0, $288_1 = 0, $288$hi = 0, $292_1 = 0, $292$hi = 0, $302_1 = 0, $302$hi = 0, $319_1 = 0, $319$hi = 0, $323_1 = 0, $323$hi = 0, $328_1 = 0, $328$hi = 0, $330_1 = 0, $330$hi = 0, $348$hi = 0, $356_1 = 0, $357_1 = 0, $360$hi = 0, $384_1 = 0, $384$hi = 0, $388_1 = 0, $388$hi = 0, $422_1 = 0, $422$hi = 0, $426_1 = 0, $426$hi = 0, $430_1 = 0, $430$hi = 0, $434_1 = 0, $434$hi = 0, $441_1 = 0, $441$hi = 0, $444_1 = 0, $444$hi = 0, $450_1 = 0, $450$hi = 0, $454_1 = 0, $454$hi = 0, $456_1 = 0, $456$hi = 0, $460_1 = 0, $460$hi = 0, $464_1 = 0, $464$hi = 0, $468_1 = 0, $468$hi = 0, $498_1 = 0, $498$hi = 0, $502_1 = 0, $502$hi = 0, $506_1 = 0, $506$hi = 0, $510_1 = 0, $510$hi = 0; + label$1 : { + $6_1 = global$0 - 432 | 0; + $14_1 = $6_1; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $14_1; + } + label$3 : { + label$4 : { + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($7_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$4 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + 1 | 0; + $7_1 = HEAPU8[$7_1 >> 0] | 0; + break label$3; + } + $7_1 = $898($1_1 | 0) | 0; + } + $8_1 = 0; + i64toi32_i32$0 = 0; + $16_1 = 0; + $16$hi = i64toi32_i32$0; + $9_1 = 0; + label$5 : { + label$6 : { + label$7 : { + label$8 : while (1) { + label$9 : { + if (($7_1 | 0) == (48 | 0)) { + break label$9 + } + if (($7_1 | 0) != (46 | 0)) { + break label$5 + } + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($7_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$7 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + 1 | 0; + $7_1 = HEAPU8[$7_1 >> 0] | 0; + break label$6; + } + label$10 : { + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($7_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$10 + } + $9_1 = 1; + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + 1 | 0; + $7_1 = HEAPU8[$7_1 >> 0] | 0; + continue label$8; + } + $9_1 = 1; + $7_1 = $898($1_1 | 0) | 0; + continue label$8; + }; + } + $7_1 = $898($1_1 | 0) | 0; + } + $8_1 = 1; + i64toi32_i32$0 = 0; + $16_1 = 0; + $16$hi = i64toi32_i32$0; + if (($7_1 | 0) != (48 | 0)) { + break label$5 + } + label$11 : while (1) { + label$12 : { + label$13 : { + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($7_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$13 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + 1 | 0; + $7_1 = HEAPU8[$7_1 >> 0] | 0; + break label$12; + } + $7_1 = $898($1_1 | 0) | 0; + } + i64toi32_i32$0 = $16$hi; + i64toi32_i32$2 = $16_1; + i64toi32_i32$1 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $16_1 = i64toi32_i32$4; + $16$hi = i64toi32_i32$5; + if (($7_1 | 0) == (48 | 0)) { + continue label$11 + } + break label$11; + }; + $8_1 = 1; + $9_1 = 1; + } + i64toi32_i32$5 = 1073676288; + $17_1 = 0; + $17$hi = i64toi32_i32$5; + $10_1 = 0; + i64toi32_i32$5 = 0; + $18_1 = 0; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $19_1 = 0; + $19$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $20_1 = 0; + $20$hi = i64toi32_i32$5; + $11_1 = 0; + i64toi32_i32$5 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$5; + label$14 : { + label$15 : while (1) { + $12_1 = $7_1 | 32 | 0; + label$16 : { + label$17 : { + $13_1 = $7_1 + -48 | 0; + if ($13_1 >>> 0 < 10 >>> 0) { + break label$17 + } + label$18 : { + if (($7_1 | 0) == (46 | 0)) { + break label$18 + } + if (($12_1 + -97 | 0) >>> 0 > 5 >>> 0) { + break label$14 + } + } + if (($7_1 | 0) != (46 | 0)) { + break label$17 + } + if ($8_1) { + break label$14 + } + $8_1 = 1; + i64toi32_i32$5 = $21$hi; + $16_1 = $21_1; + $16$hi = i64toi32_i32$5; + break label$16; + } + $7_1 = ($7_1 | 0) > (57 | 0) ? $12_1 + -87 | 0 : $13_1; + label$19 : { + label$20 : { + i64toi32_i32$5 = $21$hi; + i64toi32_i32$0 = $21_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 7; + if ((i64toi32_i32$5 | 0) > (i64toi32_i32$2 | 0)) { + $109_1 = 1 + } else { + if ((i64toi32_i32$5 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$0 >>> 0 <= i64toi32_i32$3 >>> 0) { + $110_1 = 0 + } else { + $110_1 = 1 + } + $111_1 = $110_1; + } else { + $111_1 = 0 + } + $109_1 = $111_1; + } + if ($109_1) { + break label$20 + } + $10_1 = $7_1 + ($10_1 << 4 | 0) | 0; + break label$19; + } + label$21 : { + i64toi32_i32$0 = $21$hi; + i64toi32_i32$3 = $21_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 28; + if ((i64toi32_i32$0 | 0) > (i64toi32_i32$5 | 0)) { + $112_1 = 1 + } else { + if ((i64toi32_i32$0 | 0) >= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$3 >>> 0 <= i64toi32_i32$2 >>> 0) { + $113_1 = 0 + } else { + $113_1 = 1 + } + $114_1 = $113_1; + } else { + $114_1 = 0 + } + $112_1 = $114_1; + } + if ($112_1) { + break label$21 + } + $940($6_1 + 48 | 0 | 0, $7_1 | 0); + i64toi32_i32$3 = $20$hi; + i64toi32_i32$3 = $17$hi; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 1073414144; + $943($6_1 + 32 | 0 | 0, $20_1 | 0, i64toi32_i32$3 | 0, $17_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $20_1 = i64toi32_i32$5; + $20$hi = i64toi32_i32$2; + i64toi32_i32$0 = (i64toi32_i32$0 + 32 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $17_1 = i64toi32_i32$2; + $17$hi = i64toi32_i32$5; + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 48 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 52 | 0) >> 2] | 0; + $139_1 = i64toi32_i32$5; + $139$hi = i64toi32_i32$2; + i64toi32_i32$0 = (i64toi32_i32$0 + 48 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $143_1 = i64toi32_i32$2; + $143$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$0 = $139$hi; + i64toi32_i32$3 = $143$hi; + $943($6_1 + 16 | 0 | 0, $20_1 | 0, i64toi32_i32$5 | 0, $17_1 | 0, i64toi32_i32$2 | 0, $139_1 | 0, i64toi32_i32$0 | 0, $143_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = $18$hi; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$2 = $6_1; + i64toi32_i32$3 = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + $148_1 = i64toi32_i32$3; + $148$hi = i64toi32_i32$0; + i64toi32_i32$2 = ($6_1 + 16 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $152_1 = i64toi32_i32$0; + $152$hi = i64toi32_i32$3; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $148$hi; + i64toi32_i32$5 = $152$hi; + $933($6_1 | 0, $18_1 | 0, i64toi32_i32$3 | 0, $19_1 | 0, i64toi32_i32$0 | 0, $148_1 | 0, i64toi32_i32$2 | 0, $152_1 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$0 = $6_1 + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $19_1 = i64toi32_i32$5; + $19$hi = i64toi32_i32$2; + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$2; + $18$hi = i64toi32_i32$5; + break label$19; + } + if ($11_1) { + break label$19 + } + if (!$7_1) { + break label$19 + } + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 1073610752; + $943($6_1 + 80 | 0 | 0, $20_1 | 0, i64toi32_i32$5 | 0, $17_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = $18$hi; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$2 = $6_1; + i64toi32_i32$3 = HEAP32[($6_1 + 80 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($6_1 + 84 | 0) >> 2] | 0; + $170_1 = i64toi32_i32$3; + $170$hi = i64toi32_i32$0; + i64toi32_i32$2 = ($6_1 + 80 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $174_1 = i64toi32_i32$0; + $174$hi = i64toi32_i32$3; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $170$hi; + i64toi32_i32$5 = $174$hi; + $933($6_1 + 64 | 0 | 0, $18_1 | 0, i64toi32_i32$3 | 0, $19_1 | 0, i64toi32_i32$0 | 0, $170_1 | 0, i64toi32_i32$2 | 0, $174_1 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$0 = ($6_1 + 64 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $19_1 = i64toi32_i32$5; + $19$hi = i64toi32_i32$2; + $11_1 = 1; + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 64 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 68 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$2; + $18$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $21$hi; + i64toi32_i32$0 = $21_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + $9_1 = 1; + } + label$22 : { + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($7_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$22 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + 1 | 0; + $7_1 = HEAPU8[$7_1 >> 0] | 0; + continue label$15; + } + $7_1 = $898($1_1 | 0) | 0; + continue label$15; + }; + } + label$23 : { + label$24 : { + label$25 : { + label$26 : { + if ($9_1) { + break label$26 + } + label$27 : { + if (HEAP32[($1_1 + 104 | 0) >> 2] | 0) { + break label$27 + } + if ($5_1) { + break label$24 + } + break label$25; + } + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + -1 | 0; + if (!$5_1) { + break label$25 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + -2 | 0; + if (!$8_1) { + break label$24 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $7_1 + -3 | 0; + break label$24; + } + label$28 : { + i64toi32_i32$4 = $21$hi; + i64toi32_i32$5 = $21_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 7; + if ((i64toi32_i32$4 | 0) > (i64toi32_i32$0 | 0)) { + $115_1 = 1 + } else { + if ((i64toi32_i32$4 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$5 >>> 0 <= i64toi32_i32$3 >>> 0) { + $116_1 = 0 + } else { + $116_1 = 1 + } + $117_1 = $116_1; + } else { + $117_1 = 0 + } + $115_1 = $117_1; + } + if ($115_1) { + break label$28 + } + i64toi32_i32$5 = $21$hi; + $17_1 = $21_1; + $17$hi = i64toi32_i32$5; + label$29 : while (1) { + $10_1 = $10_1 << 4 | 0; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $17_1 = i64toi32_i32$2; + $17$hi = i64toi32_i32$1; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 8; + if ((i64toi32_i32$5 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$3 | 0) | 0) { + continue label$29 + } + break label$29; + }; + } + label$30 : { + label$31 : { + if (($7_1 & -33 | 0 | 0) != (80 | 0)) { + break label$31 + } + i64toi32_i32$5 = $909($1_1 | 0, $5_1 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $17_1 = i64toi32_i32$5; + $17$hi = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$5 | 0) | 0) { + break label$30 + } + label$32 : { + if (!$5_1) { + break label$32 + } + i64toi32_i32$0 = 0; + $17_1 = 0; + $17$hi = i64toi32_i32$0; + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$30 + } + HEAP32[($1_1 + 4 | 0) >> 2] = (HEAP32[($1_1 + 4 | 0) >> 2] | 0) + -1 | 0; + break label$30; + } + i64toi32_i32$0 = 0; + $18_1 = 0; + $18$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $897($1_1 | 0, 0 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$0 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$0; + break label$23; + } + i64toi32_i32$0 = 0; + $17_1 = 0; + $17$hi = i64toi32_i32$0; + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$30 + } + HEAP32[($1_1 + 4 | 0) >> 2] = (HEAP32[($1_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + label$33 : { + if ($10_1) { + break label$33 + } + $938($6_1 + 112 | 0 | 0, +(+($4_1 | 0) * 0.0)); + i64toi32_i32$3 = $6_1 + 120 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$0; + $21$hi = i64toi32_i32$1; + i64toi32_i32$3 = $6_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 112 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 116 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$1; + $18$hi = i64toi32_i32$0; + break label$23; + } + label$34 : { + i64toi32_i32$0 = $16$hi; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$4 = $8_1; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$5 = i64toi32_i32$4 ? $16_1 : $21_1; + i64toi32_i32$3 = i64toi32_i32$4 ? i64toi32_i32$0 : i64toi32_i32$1; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 2; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $118_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$1 | 0) | 0; + $118_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $264$hi = i64toi32_i32$5; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$5 = $264$hi; + i64toi32_i32$3 = $118_1; + i64toi32_i32$4 = $17$hi; + i64toi32_i32$0 = $17_1; + i64toi32_i32$1 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + i64toi32_i32$5 = i64toi32_i32$1; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = -32; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$1; + i64toi32_i32$5 = 0 - $3_1 | 0; + i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0; + $271_1 = i64toi32_i32$5; + $271$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$5 = $271$hi; + i64toi32_i32$0 = $271_1; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$5 | 0)) { + $119_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0) { + $120_1 = 0 + } else { + $120_1 = 1 + } + $121_1 = $120_1; + } else { + $121_1 = 0 + } + $119_1 = $121_1; + } + if ($119_1) { + break label$34 + } + HEAP32[($842() | 0) >> 2] = 68; + $940($6_1 + 160 | 0 | 0, $4_1 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 160 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 164 | 0) >> 2] | 0; + $280_1 = i64toi32_i32$2; + $280$hi = i64toi32_i32$1; + i64toi32_i32$0 = (i64toi32_i32$0 + 160 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $284_1 = i64toi32_i32$1; + $284$hi = i64toi32_i32$2; + i64toi32_i32$2 = $280$hi; + i64toi32_i32$1 = $284$hi; + i64toi32_i32$0 = -1; + i64toi32_i32$5 = 2147418111; + $943($6_1 + 144 | 0 | 0, $280_1 | 0, i64toi32_i32$2 | 0, $284_1 | 0, i64toi32_i32$1 | 0, -1 | 0, i64toi32_i32$0 | 0, -1 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$1 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 144 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 148 | 0) >> 2] | 0; + $288_1 = i64toi32_i32$5; + $288$hi = i64toi32_i32$0; + i64toi32_i32$1 = (i64toi32_i32$1 + 144 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $292_1 = i64toi32_i32$0; + $292$hi = i64toi32_i32$5; + i64toi32_i32$5 = $288$hi; + i64toi32_i32$0 = $292$hi; + i64toi32_i32$1 = -1; + i64toi32_i32$2 = 2147418111; + $943($6_1 + 128 | 0 | 0, $288_1 | 0, i64toi32_i32$5 | 0, $292_1 | 0, i64toi32_i32$0 | 0, -1 | 0, i64toi32_i32$1 | 0, -1 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$0 = ($6_1 + 128 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$2; + $21$hi = i64toi32_i32$1; + i64toi32_i32$0 = $6_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 128 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 132 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$1; + $18$hi = i64toi32_i32$2; + break label$23; + } + label$35 : { + i64toi32_i32$2 = $21$hi; + i64toi32_i32$1 = $3_1 + -226 | 0; + i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0; + $302_1 = i64toi32_i32$1; + $302$hi = i64toi32_i32$2; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$0 = $21_1; + i64toi32_i32$1 = $302$hi; + i64toi32_i32$5 = $302_1; + if ((i64toi32_i32$2 | 0) < (i64toi32_i32$1 | 0)) { + $122_1 = 1 + } else { + if ((i64toi32_i32$2 | 0) <= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$0 >>> 0 >= i64toi32_i32$5 >>> 0) { + $123_1 = 0 + } else { + $123_1 = 1 + } + $124_1 = $123_1; + } else { + $124_1 = 0 + } + $122_1 = $124_1; + } + if ($122_1) { + break label$35 + } + label$36 : { + if (($10_1 | 0) <= (-1 | 0)) { + break label$36 + } + label$37 : while (1) { + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = -1073807360; + $933($6_1 + 416 | 0 | 0, $18_1 | 0, i64toi32_i32$0 | 0, $19_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 1073610752; + $7_1 = $936($18_1 | 0, i64toi32_i32$1 | 0, $19_1 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$5 = $6_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 416 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 420 | 0) >> 2] | 0; + $319_1 = i64toi32_i32$0; + $319$hi = i64toi32_i32$2; + $1_1 = ($7_1 | 0) < (0 | 0); + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = $319$hi; + i64toi32_i32$1 = i64toi32_i32$3 ? $18_1 : $319_1; + i64toi32_i32$5 = i64toi32_i32$3 ? i64toi32_i32$2 : i64toi32_i32$0; + $323_1 = i64toi32_i32$1; + $323$hi = i64toi32_i32$5; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$3 = ($6_1 + 416 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $328_1 = i64toi32_i32$5; + $328$hi = i64toi32_i32$1; + i64toi32_i32$0 = $1_1; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$5 = $328$hi; + i64toi32_i32$2 = i64toi32_i32$0 ? $19_1 : $328_1; + i64toi32_i32$3 = i64toi32_i32$0 ? i64toi32_i32$1 : i64toi32_i32$5; + $330_1 = i64toi32_i32$2; + $330$hi = i64toi32_i32$3; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = $323$hi; + i64toi32_i32$1 = $330$hi; + $933($6_1 + 400 | 0 | 0, $18_1 | 0, i64toi32_i32$3 | 0, $19_1 | 0, i64toi32_i32$2 | 0, $323_1 | 0, i64toi32_i32$0 | 0, $330_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = $21$hi; + i64toi32_i32$2 = $21_1; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$4; + i64toi32_i32$1 = ($6_1 + 400 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $19_1 = i64toi32_i32$4; + $19$hi = i64toi32_i32$2; + i64toi32_i32$1 = $6_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 400 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$1 + 404 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$2; + $18$hi = i64toi32_i32$4; + $10_1 = $10_1 << 1 | 0 | ($7_1 | 0) > (-1 | 0) | 0; + if (($10_1 | 0) > (-1 | 0)) { + continue label$37 + } + break label$37; + }; + } + label$38 : { + label$39 : { + i64toi32_i32$4 = $21$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$4 = i64toi32_i32$2 >> 31 | 0; + $348$hi = i64toi32_i32$4; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $21_1; + i64toi32_i32$2 = $348$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0; + i64toi32_i32$5 = (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $16_1 = i64toi32_i32$2; + $16$hi = i64toi32_i32$0; + $7_1 = i64toi32_i32$2; + $356_1 = (i64toi32_i32$2 | 0) > (0 | 0) ? i64toi32_i32$2 : 0; + $357_1 = $2_1; + i64toi32_i32$4 = $2_1; + i64toi32_i32$0 = i64toi32_i32$4 >> 31 | 0; + $360$hi = i64toi32_i32$0; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$4 = $360$hi; + i64toi32_i32$3 = $2_1; + if ((i64toi32_i32$0 | 0) < (i64toi32_i32$4 | 0)) { + $125_1 = 1 + } else { + if ((i64toi32_i32$0 | 0) <= (i64toi32_i32$4 | 0)) { + if (i64toi32_i32$5 >>> 0 >= i64toi32_i32$3 >>> 0) { + $126_1 = 0 + } else { + $126_1 = 1 + } + $127_1 = $126_1; + } else { + $127_1 = 0 + } + $125_1 = $127_1; + } + $7_1 = $125_1 ? $356_1 : $357_1; + if (($7_1 | 0) < (113 | 0)) { + break label$39 + } + $940($6_1 + 384 | 0 | 0, $4_1 | 0); + i64toi32_i32$3 = $6_1 + 392 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $16_1 = i64toi32_i32$5; + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $17_1 = 0; + $17$hi = i64toi32_i32$0; + i64toi32_i32$3 = $6_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 384 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 388 | 0) >> 2] | 0; + $20_1 = i64toi32_i32$0; + $20$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $22_1 = 0; + $22$hi = i64toi32_i32$5; + break label$38; + } + $938($6_1 + 352 | 0 | 0, +(+$970(+(1.0), 144 - $7_1 | 0 | 0))); + $940($6_1 + 336 | 0 | 0, $4_1 | 0); + i64toi32_i32$3 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 352 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 356 | 0) >> 2] | 0; + $384_1 = i64toi32_i32$5; + $384$hi = i64toi32_i32$0; + i64toi32_i32$3 = (i64toi32_i32$3 + 352 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $388_1 = i64toi32_i32$0; + $388$hi = i64toi32_i32$5; + i64toi32_i32$3 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 336 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 340 | 0) >> 2] | 0; + $20_1 = i64toi32_i32$5; + $20$hi = i64toi32_i32$0; + i64toi32_i32$3 = (i64toi32_i32$3 + 336 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $16_1 = i64toi32_i32$0; + $16$hi = i64toi32_i32$5; + i64toi32_i32$5 = $384$hi; + i64toi32_i32$0 = $388$hi; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$4 = $16$hi; + $903($6_1 + 368 | 0 | 0, $384_1 | 0, i64toi32_i32$5 | 0, $388_1 | 0, i64toi32_i32$0 | 0, $20_1 | 0, i64toi32_i32$3 | 0, $16_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 376 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 380 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$3; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 368 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 372 | 0) >> 2] | 0; + $17_1 = i64toi32_i32$3; + $17$hi = i64toi32_i32$4; + } + i64toi32_i32$4 = $18$hi; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 0; + $7_1 = !($10_1 & 1 | 0) & (($935($18_1 | 0, i64toi32_i32$4 | 0, $19_1 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0) | 0 | 0) != (0 | 0) & ($7_1 | 0) < (32 | 0) | 0) | 0; + $941($6_1 + 320 | 0 | 0, $10_1 + $7_1 | 0 | 0); + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$3 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 320 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$3 + 324 | 0) >> 2] | 0; + $422_1 = i64toi32_i32$5; + $422$hi = i64toi32_i32$0; + i64toi32_i32$3 = (i64toi32_i32$3 + 320 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $426_1 = i64toi32_i32$0; + $426$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$3 = $422$hi; + i64toi32_i32$4 = $426$hi; + $943($6_1 + 304 | 0 | 0, $20_1 | 0, i64toi32_i32$5 | 0, $16_1 | 0, i64toi32_i32$0 | 0, $422_1 | 0, i64toi32_i32$3 | 0, $426_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 304 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 308 | 0) >> 2] | 0; + $430_1 = i64toi32_i32$4; + $430$hi = i64toi32_i32$3; + i64toi32_i32$0 = (i64toi32_i32$0 + 304 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $434_1 = i64toi32_i32$3; + $434$hi = i64toi32_i32$4; + i64toi32_i32$4 = $17$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$4 = $430$hi; + i64toi32_i32$3 = $434$hi; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$5 = $22$hi; + $933($6_1 + 272 | 0 | 0, $430_1 | 0, i64toi32_i32$4 | 0, $434_1 | 0, i64toi32_i32$3 | 0, $17_1 | 0, i64toi32_i32$0 | 0, $22_1 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$5 = $18$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$4 = i64toi32_i32$1 ? 0 : $18_1; + i64toi32_i32$3 = i64toi32_i32$1 ? i64toi32_i32$5 : i64toi32_i32$0; + $441_1 = i64toi32_i32$4; + $441$hi = i64toi32_i32$3; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$5 = i64toi32_i32$0 ? 0 : $19_1; + i64toi32_i32$1 = i64toi32_i32$0 ? i64toi32_i32$3 : i64toi32_i32$4; + $444_1 = i64toi32_i32$5; + $444$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $441$hi; + i64toi32_i32$5 = $444$hi; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$3 = $16$hi; + $943($6_1 + 288 | 0 | 0, $441_1 | 0, i64toi32_i32$1 | 0, $444_1 | 0, i64toi32_i32$5 | 0, $20_1 | 0, i64toi32_i32$0 | 0, $16_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$5 = $6_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 288 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 292 | 0) >> 2] | 0; + $450_1 = i64toi32_i32$3; + $450$hi = i64toi32_i32$0; + i64toi32_i32$5 = (i64toi32_i32$5 + 288 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $454_1 = i64toi32_i32$0; + $454$hi = i64toi32_i32$3; + i64toi32_i32$5 = $6_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 272 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 276 | 0) >> 2] | 0; + $456_1 = i64toi32_i32$3; + $456$hi = i64toi32_i32$0; + i64toi32_i32$5 = (i64toi32_i32$5 + 272 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $460_1 = i64toi32_i32$0; + $460$hi = i64toi32_i32$3; + i64toi32_i32$3 = $450$hi; + i64toi32_i32$0 = $454$hi; + i64toi32_i32$5 = $456$hi; + i64toi32_i32$1 = $460$hi; + $933($6_1 + 256 | 0 | 0, $450_1 | 0, i64toi32_i32$3 | 0, $454_1 | 0, i64toi32_i32$0 | 0, $456_1 | 0, i64toi32_i32$5 | 0, $460_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 256 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 260 | 0) >> 2] | 0; + $464_1 = i64toi32_i32$1; + $464$hi = i64toi32_i32$5; + i64toi32_i32$0 = (i64toi32_i32$0 + 256 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $468_1 = i64toi32_i32$5; + $468$hi = i64toi32_i32$1; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$1 = $464$hi; + i64toi32_i32$5 = $468$hi; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$3 = $22$hi; + $945($6_1 + 240 | 0 | 0, $464_1 | 0, i64toi32_i32$1 | 0, $468_1 | 0, i64toi32_i32$5 | 0, $17_1 | 0, i64toi32_i32$0 | 0, $22_1 | 0, i64toi32_i32$3 | 0); + label$40 : { + i64toi32_i32$5 = $6_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 240 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 244 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$3; + $18$hi = i64toi32_i32$0; + i64toi32_i32$5 = (i64toi32_i32$5 + 240 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $19_1 = i64toi32_i32$0; + $19$hi = i64toi32_i32$3; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 0; + if ($935($18_1 | 0, i64toi32_i32$3 | 0, $19_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0) | 0) { + break label$40 + } + HEAP32[($842() | 0) >> 2] = 68; + } + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$5 = $19$hi; + $904($6_1 + 224 | 0 | 0, $18_1 | 0, i64toi32_i32$1 | 0, $19_1 | 0, i64toi32_i32$5 | 0, $21_1 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 232 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 236 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 224 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 228 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$1; + $18$hi = i64toi32_i32$5; + break label$23; + } + HEAP32[($842() | 0) >> 2] = 68; + $940($6_1 + 208 | 0 | 0, $4_1 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 208 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 212 | 0) >> 2] | 0; + $498_1 = i64toi32_i32$5; + $498$hi = i64toi32_i32$1; + i64toi32_i32$0 = (i64toi32_i32$0 + 208 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $502_1 = i64toi32_i32$1; + $502$hi = i64toi32_i32$5; + i64toi32_i32$5 = $498$hi; + i64toi32_i32$1 = $502$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 65536; + $943($6_1 + 192 | 0 | 0, $498_1 | 0, i64toi32_i32$5 | 0, $502_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = $6_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 192 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 196 | 0) >> 2] | 0; + $506_1 = i64toi32_i32$3; + $506$hi = i64toi32_i32$0; + i64toi32_i32$1 = (i64toi32_i32$1 + 192 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $510_1 = i64toi32_i32$0; + $510$hi = i64toi32_i32$3; + i64toi32_i32$3 = $506$hi; + i64toi32_i32$0 = $510$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 65536; + $943($6_1 + 176 | 0 | 0, $506_1 | 0, i64toi32_i32$3 | 0, $510_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$0 = ($6_1 + 176 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$1; + i64toi32_i32$0 = $6_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 176 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 180 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$1; + $18$hi = i64toi32_i32$5; + break label$23; + } + i64toi32_i32$5 = 0; + $897($1_1 | 0, 0 | 0, i64toi32_i32$5 | 0); + } + $938($6_1 + 96 | 0 | 0, +(+($4_1 | 0) * 0.0)); + i64toi32_i32$0 = $6_1 + 104 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$1; + i64toi32_i32$0 = $6_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 96 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 100 | 0) >> 2] | 0; + $18_1 = i64toi32_i32$1; + $18$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $18$hi; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $18_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$5 = $21$hi; + HEAP32[(i64toi32_i32$1 + 8 | 0) >> 2] = $21_1; + HEAP32[(i64toi32_i32$1 + 12 | 0) >> 2] = i64toi32_i32$5; + label$41 : { + $15_1 = $6_1 + 432 | 0; + if ($15_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $15_1; + } + } + + function $908($0_1, $1_1, $2_1, $3_1, $4_1, $5_1, $6_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + $6_1 = $6_1 | 0; + var $7_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, $21$hi = 0, $12_1 = 0, $21_1 = 0, $22$hi = 0, i64toi32_i32$0 = 0, $11_1 = 0, $22_1 = 0, $8_1 = 0, $15_1 = 0, $14_1 = 0, $24$hi = 0, $23$hi = 0, $16_1 = 0, $24_1 = 0, $23_1 = 0, $13_1 = 0, $17_1 = 0, $25$hi = 0, $26$hi = 0, $27_1 = 0.0, $25_1 = 0, $26_1 = 0, $9_1 = 0, $165_1 = 0, $166_1 = 0, $167_1 = 0, $168_1 = 0, $169_1 = 0, $170_1 = 0, $171_1 = 0, $172_1 = 0, $173_1 = 0, $174_1 = 0, $18_1 = 0, $20_1 = 0, $19_1 = 0, $10_1 = 0, $133_1 = 0, $238_1 = 0, $238$hi = 0, $242_1 = 0, $242$hi = 0, $244_1 = 0, $244$hi = 0, $248_1 = 0, $248$hi = 0, $258_1 = 0, $258$hi = 0, $267_1 = 0, $267$hi = 0, $271_1 = 0, $271$hi = 0, $275_1 = 0, $275$hi = 0, $279_1 = 0, $279$hi = 0, $289_1 = 0, $289$hi = 0, $298_1 = 0, $298$hi = 0, $302_1 = 0, $302$hi = 0, $306_1 = 0, $306$hi = 0, $310_1 = 0, $310$hi = 0, $359_1 = 0, $359$hi = 0, $363_1 = 0, $363$hi = 0, $365_1 = 0, $365$hi = 0, $369_1 = 0, $369$hi = 0, $388_1 = 0, $388$hi = 0, $392_1 = 0, $392$hi = 0, $394_1 = 0, $394$hi = 0, $398_1 = 0, $398$hi = 0, $409_1 = 0, $409$hi = 0, $413_1 = 0, $413$hi = 0, $415_1 = 0, $415$hi = 0, $419_1 = 0, $419$hi = 0, $447_1 = 0, $447$hi = 0, $451_1 = 0, $451$hi = 0, $453_1 = 0, $453$hi = 0, $457_1 = 0, $457$hi = 0, $467_1 = 0, $467$hi = 0, $471_1 = 0, $471$hi = 0, $473_1 = 0, $473$hi = 0, $477_1 = 0, $477$hi = 0, $506_1 = 0, $584$hi = 0, $586$hi = 0, $594_1 = 0, $594$hi = 0, $735_1 = 0, $735$hi = 0, $739_1 = 0, $739$hi = 0, $741_1 = 0, $741$hi = 0, $745_1 = 0, $745$hi = 0, $764_1 = 0, $764$hi = 0, $768_1 = 0, $768$hi = 0, $810_1 = 0, $872_1 = 0, $872$hi = 0, $876_1 = 0, $876$hi = 0, $893_1 = 0, $893$hi = 0, $897_1 = 0, $897$hi = 0, $913_1 = 0, $913$hi = 0, $917_1 = 0, $917$hi = 0, $954_1 = 0, $954$hi = 0, $958_1 = 0, $958$hi = 0, $977_1 = 0, $977$hi = 0, $981_1 = 0, $981$hi = 0, $1004 = 0, $1004$hi = 0, $1008 = 0, $1008$hi = 0, $1024 = 0, $1024$hi = 0, $1028 = 0, $1028$hi = 0, $1042 = 0, $1042$hi = 0, $1044 = 0, $1044$hi = 0, $1064 = 0, $1064$hi = 0, $1068 = 0, $1068$hi = 0, $1096$hi = 0, $175_1 = 0, $1103$hi = 0, $176_1 = 0; + label$1 : { + $7_1 = global$0 - 8960 | 0; + $19_1 = $7_1; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + $8_1 = 0; + $9_1 = $4_1 + $3_1 | 0; + $10_1 = 0 - $9_1 | 0; + i64toi32_i32$0 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$0; + $11_1 = 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : while (1) { + label$7 : { + if (($2_1 | 0) == (48 | 0)) { + break label$7 + } + if (($2_1 | 0) != (46 | 0)) { + break label$3 + } + $12_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($12_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$5 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $12_1 + 1 | 0; + $2_1 = HEAPU8[$12_1 >> 0] | 0; + break label$4; + } + label$8 : { + $12_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($12_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$8 + } + $11_1 = 1; + HEAP32[($1_1 + 4 | 0) >> 2] = $12_1 + 1 | 0; + $2_1 = HEAPU8[$12_1 >> 0] | 0; + continue label$6; + } + $11_1 = 1; + $2_1 = $898($1_1 | 0) | 0; + continue label$6; + }; + } + $2_1 = $898($1_1 | 0) | 0; + } + $8_1 = 1; + i64toi32_i32$0 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$0; + if (($2_1 | 0) != (48 | 0)) { + break label$3 + } + label$9 : while (1) { + label$10 : { + label$11 : { + $12_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($12_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$11 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $12_1 + 1 | 0; + $2_1 = HEAPU8[$12_1 >> 0] | 0; + break label$10; + } + $2_1 = $898($1_1 | 0) | 0; + } + i64toi32_i32$0 = $21$hi; + i64toi32_i32$2 = $21_1; + i64toi32_i32$1 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$5; + if (($2_1 | 0) == (48 | 0)) { + continue label$9 + } + break label$9; + }; + $11_1 = 1; + $8_1 = 1; + } + $13_1 = 0; + HEAP32[($7_1 + 768 | 0) >> 2] = 0; + $14_1 = $2_1 + -48 | 0; + label$12 : { + label$13 : { + label$14 : { + label$15 : { + label$16 : { + label$17 : { + label$18 : { + $15_1 = ($2_1 | 0) == (46 | 0); + if ($15_1) { + break label$18 + } + i64toi32_i32$5 = 0; + $22_1 = 0; + $22$hi = i64toi32_i32$5; + if ($14_1 >>> 0 <= 9 >>> 0) { + break label$18 + } + $12_1 = 0; + $16_1 = 0; + break label$17; + } + i64toi32_i32$5 = 0; + $22_1 = 0; + $22$hi = i64toi32_i32$5; + $16_1 = 0; + $12_1 = 0; + $13_1 = 0; + label$19 : while (1) { + label$20 : { + label$21 : { + if (!($15_1 & 1 | 0)) { + break label$21 + } + label$22 : { + if ($8_1) { + break label$22 + } + i64toi32_i32$5 = $22$hi; + $21_1 = $22_1; + $21$hi = i64toi32_i32$5; + $8_1 = 1; + break label$20; + } + $11_1 = ($11_1 | 0) != (0 | 0); + break label$16; + } + i64toi32_i32$5 = $22$hi; + i64toi32_i32$0 = $22_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $22_1 = i64toi32_i32$1; + $22$hi = i64toi32_i32$4; + label$23 : { + if (($12_1 | 0) > (2044 | 0)) { + break label$23 + } + $15_1 = ($2_1 | 0) != (48 | 0); + i64toi32_i32$4 = $22$hi; + $17_1 = $22_1; + $11_1 = ($7_1 + 768 | 0) + ($12_1 << 2 | 0) | 0; + label$24 : { + if (!$16_1) { + break label$24 + } + $14_1 = ($2_1 + Math_imul(HEAP32[$11_1 >> 2] | 0, 10) | 0) + -48 | 0; + } + $13_1 = $15_1 ? $17_1 : $13_1; + HEAP32[$11_1 >> 2] = $14_1; + $11_1 = 1; + $2_1 = $16_1 + 1 | 0; + $133_1 = $2_1; + $2_1 = ($2_1 | 0) == (9 | 0); + $16_1 = $2_1 ? 0 : $133_1; + $12_1 = $12_1 + $2_1 | 0; + break label$20; + } + if (($2_1 | 0) == (48 | 0)) { + break label$20 + } + HEAP32[($7_1 + 8944 | 0) >> 2] = HEAP32[($7_1 + 8944 | 0) >> 2] | 0 | 1 | 0; + } + label$25 : { + label$26 : { + $2_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($1_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$26 + } + HEAP32[($1_1 + 4 | 0) >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$25; + } + $2_1 = $898($1_1 | 0) | 0; + } + $14_1 = $2_1 + -48 | 0; + $15_1 = ($2_1 | 0) == (46 | 0); + if ($15_1) { + continue label$19 + } + if ($14_1 >>> 0 < 10 >>> 0) { + continue label$19 + } + break label$19; + }; + } + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$2 = $8_1; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$3 = i64toi32_i32$2 ? $21_1 : $22_1; + i64toi32_i32$5 = i64toi32_i32$2 ? i64toi32_i32$4 : i64toi32_i32$0; + $21_1 = i64toi32_i32$3; + $21$hi = i64toi32_i32$5; + label$27 : { + if (!$11_1) { + break label$27 + } + if (($2_1 & -33 | 0 | 0) != (69 | 0)) { + break label$27 + } + label$28 : { + i64toi32_i32$5 = $909($1_1 | 0, $6_1 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $23_1 = i64toi32_i32$5; + $23$hi = i64toi32_i32$3; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$4 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$4 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$5 | 0) | 0) { + break label$28 + } + if (!$6_1) { + break label$14 + } + i64toi32_i32$2 = 0; + $23_1 = 0; + $23$hi = i64toi32_i32$2; + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$28 + } + HEAP32[($1_1 + 4 | 0) >> 2] = (HEAP32[($1_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$4 = $23_1; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $21_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $21_1 = i64toi32_i32$0; + $21$hi = i64toi32_i32$1; + break label$13; + } + $11_1 = ($11_1 | 0) != (0 | 0); + if (($2_1 | 0) < (0 | 0)) { + break label$15 + } + } + if (!(HEAP32[($1_1 + 104 | 0) >> 2] | 0)) { + break label$15 + } + HEAP32[($1_1 + 4 | 0) >> 2] = (HEAP32[($1_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + if ($11_1) { + break label$13 + } + HEAP32[($842() | 0) >> 2] = 28; + } + i64toi32_i32$1 = 0; + $22_1 = 0; + $22$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $897($1_1 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$1; + break label$12; + } + label$29 : { + $1_1 = HEAP32[($7_1 + 768 | 0) >> 2] | 0; + if ($1_1) { + break label$29 + } + $938($7_1 | 0, +(+($5_1 | 0) * 0.0)); + i64toi32_i32$2 = $7_1 + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$2 = $7_1; + i64toi32_i32$4 = HEAP32[$7_1 >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + break label$12; + } + label$30 : { + i64toi32_i32$1 = $22$hi; + i64toi32_i32$2 = $22_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 9; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$4 | 0)) { + $165_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$4 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$5 >>> 0) { + $166_1 = 0 + } else { + $166_1 = 1 + } + $167_1 = $166_1; + } else { + $167_1 = 0 + } + $165_1 = $167_1; + } + if ($165_1) { + break label$30 + } + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$5 = $21_1; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$4 = $22_1; + if ((i64toi32_i32$5 | 0) != (i64toi32_i32$4 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | 0) { + break label$30 + } + label$31 : { + if (($3_1 | 0) > (30 | 0)) { + break label$31 + } + if ($1_1 >>> $3_1 | 0) { + break label$30 + } + } + $940($7_1 + 48 | 0 | 0, $5_1 | 0); + $941($7_1 + 32 | 0 | 0, $1_1 | 0); + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 48 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 52 | 0) >> 2] | 0; + $238_1 = i64toi32_i32$5; + $238$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 48 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $242_1 = i64toi32_i32$2; + $242$hi = i64toi32_i32$5; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 36 | 0) >> 2] | 0; + $244_1 = i64toi32_i32$5; + $244$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 32 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $248_1 = i64toi32_i32$2; + $248$hi = i64toi32_i32$5; + i64toi32_i32$5 = $238$hi; + i64toi32_i32$2 = $242$hi; + i64toi32_i32$4 = $244$hi; + i64toi32_i32$1 = $248$hi; + $943($7_1 + 16 | 0 | 0, $238_1 | 0, i64toi32_i32$5 | 0, $242_1 | 0, i64toi32_i32$2 | 0, $244_1 | 0, i64toi32_i32$4 | 0, $248_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = ($7_1 + 16 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$2 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 20 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + break label$12; + } + label$32 : { + i64toi32_i32$1 = $21$hi; + i64toi32_i32$4 = ($4_1 | 0) / (-2 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$4 >> 31 | 0; + $258_1 = i64toi32_i32$4; + $258$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$2 = $21_1; + i64toi32_i32$4 = $258$hi; + i64toi32_i32$5 = $258_1; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$4 | 0)) { + $168_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$4 | 0)) { + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$5 >>> 0) { + $169_1 = 0 + } else { + $169_1 = 1 + } + $170_1 = $169_1; + } else { + $170_1 = 0 + } + $168_1 = $170_1; + } + if ($168_1) { + break label$32 + } + HEAP32[($842() | 0) >> 2] = 68; + $940($7_1 + 96 | 0 | 0, $5_1 | 0); + i64toi32_i32$5 = $7_1; + i64toi32_i32$2 = HEAP32[($7_1 + 96 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 100 | 0) >> 2] | 0; + $267_1 = i64toi32_i32$2; + $267$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 96 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $271_1 = i64toi32_i32$1; + $271$hi = i64toi32_i32$2; + i64toi32_i32$2 = $267$hi; + i64toi32_i32$1 = $271$hi; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = 2147418111; + $943($7_1 + 80 | 0 | 0, $267_1 | 0, i64toi32_i32$2 | 0, $271_1 | 0, i64toi32_i32$1 | 0, -1 | 0, i64toi32_i32$5 | 0, -1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$1 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 80 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 84 | 0) >> 2] | 0; + $275_1 = i64toi32_i32$4; + $275$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 80 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $279_1 = i64toi32_i32$5; + $279$hi = i64toi32_i32$4; + i64toi32_i32$4 = $275$hi; + i64toi32_i32$5 = $279$hi; + i64toi32_i32$1 = -1; + i64toi32_i32$2 = 2147418111; + $943($7_1 + 64 | 0 | 0, $275_1 | 0, i64toi32_i32$4 | 0, $279_1 | 0, i64toi32_i32$5 | 0, -1 | 0, i64toi32_i32$1 | 0, -1 | 0, i64toi32_i32$2 | 0); + i64toi32_i32$5 = ($7_1 + 64 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$2; + $21$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 68 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$1; + $22$hi = i64toi32_i32$2; + break label$12; + } + label$33 : { + i64toi32_i32$2 = $21$hi; + i64toi32_i32$1 = $4_1 + -226 | 0; + i64toi32_i32$2 = i64toi32_i32$1 >> 31 | 0; + $289_1 = i64toi32_i32$1; + $289$hi = i64toi32_i32$2; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$5 = $21_1; + i64toi32_i32$1 = $289$hi; + i64toi32_i32$4 = $289_1; + if ((i64toi32_i32$2 | 0) > (i64toi32_i32$1 | 0)) { + $171_1 = 1 + } else { + if ((i64toi32_i32$2 | 0) >= (i64toi32_i32$1 | 0)) { + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) { + $172_1 = 0 + } else { + $172_1 = 1 + } + $173_1 = $172_1; + } else { + $173_1 = 0 + } + $171_1 = $173_1; + } + if ($171_1) { + break label$33 + } + HEAP32[($842() | 0) >> 2] = 68; + $940($7_1 + 144 | 0 | 0, $5_1 | 0); + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 144 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 148 | 0) >> 2] | 0; + $298_1 = i64toi32_i32$5; + $298$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 144 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $302_1 = i64toi32_i32$2; + $302$hi = i64toi32_i32$5; + i64toi32_i32$5 = $298$hi; + i64toi32_i32$2 = $302$hi; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 65536; + $943($7_1 + 128 | 0 | 0, $298_1 | 0, i64toi32_i32$5 | 0, $302_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$4 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 128 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 132 | 0) >> 2] | 0; + $306_1 = i64toi32_i32$1; + $306$hi = i64toi32_i32$4; + i64toi32_i32$2 = ($7_1 + 128 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $310_1 = i64toi32_i32$4; + $310$hi = i64toi32_i32$1; + i64toi32_i32$1 = $306$hi; + i64toi32_i32$4 = $310$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 65536; + $943($7_1 + 112 | 0 | 0, $306_1 | 0, i64toi32_i32$1 | 0, $310_1 | 0, i64toi32_i32$4 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$5 | 0); + i64toi32_i32$4 = ($7_1 + 112 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$2; + i64toi32_i32$4 = $7_1; + i64toi32_i32$2 = HEAP32[($7_1 + 112 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 116 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$2; + $22$hi = i64toi32_i32$5; + break label$12; + } + label$34 : { + if (!$16_1) { + break label$34 + } + label$35 : { + if (($16_1 | 0) > (8 | 0)) { + break label$35 + } + $2_1 = ($7_1 + 768 | 0) + ($12_1 << 2 | 0) | 0; + $1_1 = HEAP32[$2_1 >> 2] | 0; + label$36 : while (1) { + $1_1 = Math_imul($1_1, 10); + $16_1 = $16_1 + 1 | 0; + if (($16_1 | 0) != (9 | 0)) { + continue label$36 + } + break label$36; + }; + HEAP32[$2_1 >> 2] = $1_1; + } + $12_1 = $12_1 + 1 | 0; + } + i64toi32_i32$5 = $21$hi; + $8_1 = $21_1; + label$37 : { + if (($13_1 | 0) > (8 | 0)) { + break label$37 + } + if (($13_1 | 0) > ($8_1 | 0)) { + break label$37 + } + if (($8_1 | 0) > (17 | 0)) { + break label$37 + } + label$38 : { + if (($8_1 | 0) != (9 | 0)) { + break label$38 + } + $940($7_1 + 192 | 0 | 0, $5_1 | 0); + $941($7_1 + 176 | 0 | 0, HEAP32[($7_1 + 768 | 0) >> 2] | 0 | 0); + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 192 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 196 | 0) >> 2] | 0; + $359_1 = i64toi32_i32$5; + $359$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 192 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $363_1 = i64toi32_i32$2; + $363$hi = i64toi32_i32$5; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 176 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 180 | 0) >> 2] | 0; + $365_1 = i64toi32_i32$5; + $365$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 176 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $369_1 = i64toi32_i32$2; + $369$hi = i64toi32_i32$5; + i64toi32_i32$5 = $359$hi; + i64toi32_i32$2 = $363$hi; + i64toi32_i32$4 = $365$hi; + i64toi32_i32$1 = $369$hi; + $943($7_1 + 160 | 0 | 0, $359_1 | 0, i64toi32_i32$5 | 0, $363_1 | 0, i64toi32_i32$2 | 0, $365_1 | 0, i64toi32_i32$4 | 0, $369_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = ($7_1 + 160 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$2 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 160 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 164 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + break label$12; + } + label$39 : { + if (($8_1 | 0) > (8 | 0)) { + break label$39 + } + $940($7_1 + 272 | 0 | 0, $5_1 | 0); + $941($7_1 + 256 | 0 | 0, HEAP32[($7_1 + 768 | 0) >> 2] | 0 | 0); + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 272 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 276 | 0) >> 2] | 0; + $388_1 = i64toi32_i32$1; + $388$hi = i64toi32_i32$4; + i64toi32_i32$2 = ($7_1 + 272 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $392_1 = i64toi32_i32$4; + $392$hi = i64toi32_i32$1; + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 256 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 260 | 0) >> 2] | 0; + $394_1 = i64toi32_i32$1; + $394$hi = i64toi32_i32$4; + i64toi32_i32$2 = ($7_1 + 256 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $398_1 = i64toi32_i32$4; + $398$hi = i64toi32_i32$1; + i64toi32_i32$1 = $388$hi; + i64toi32_i32$4 = $392$hi; + i64toi32_i32$2 = $394$hi; + i64toi32_i32$5 = $398$hi; + $943($7_1 + 240 | 0 | 0, $388_1 | 0, i64toi32_i32$1 | 0, $392_1 | 0, i64toi32_i32$4 | 0, $394_1 | 0, i64toi32_i32$2 | 0, $398_1 | 0, i64toi32_i32$5 | 0); + $940($7_1 + 224 | 0 | 0, HEAP32[(((8 - $8_1 | 0) << 2 | 0) + 21024 | 0) >> 2] | 0 | 0); + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 240 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 244 | 0) >> 2] | 0; + $409_1 = i64toi32_i32$5; + $409$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 240 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $413_1 = i64toi32_i32$2; + $413$hi = i64toi32_i32$5; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 224 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 228 | 0) >> 2] | 0; + $415_1 = i64toi32_i32$5; + $415$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 224 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $419_1 = i64toi32_i32$2; + $419$hi = i64toi32_i32$5; + i64toi32_i32$5 = $409$hi; + i64toi32_i32$2 = $413$hi; + i64toi32_i32$4 = $415$hi; + i64toi32_i32$1 = $419$hi; + $937($7_1 + 208 | 0 | 0, $409_1 | 0, i64toi32_i32$5 | 0, $413_1 | 0, i64toi32_i32$2 | 0, $415_1 | 0, i64toi32_i32$4 | 0, $419_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = ($7_1 + 208 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$2 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 208 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 212 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + break label$12; + } + $1_1 = HEAP32[($7_1 + 768 | 0) >> 2] | 0; + label$40 : { + $2_1 = ($3_1 + Math_imul($8_1, -3) | 0) + 27 | 0; + if (($2_1 | 0) > (30 | 0)) { + break label$40 + } + if ($1_1 >>> $2_1 | 0) { + break label$37 + } + } + $940($7_1 + 352 | 0 | 0, $5_1 | 0); + $941($7_1 + 336 | 0 | 0, $1_1 | 0); + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 352 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 356 | 0) >> 2] | 0; + $447_1 = i64toi32_i32$1; + $447$hi = i64toi32_i32$4; + i64toi32_i32$2 = ($7_1 + 352 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $451_1 = i64toi32_i32$4; + $451$hi = i64toi32_i32$1; + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 336 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 340 | 0) >> 2] | 0; + $453_1 = i64toi32_i32$1; + $453$hi = i64toi32_i32$4; + i64toi32_i32$2 = ($7_1 + 336 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $457_1 = i64toi32_i32$4; + $457$hi = i64toi32_i32$1; + i64toi32_i32$1 = $447$hi; + i64toi32_i32$4 = $451$hi; + i64toi32_i32$2 = $453$hi; + i64toi32_i32$5 = $457$hi; + $943($7_1 + 320 | 0 | 0, $447_1 | 0, i64toi32_i32$1 | 0, $451_1 | 0, i64toi32_i32$4 | 0, $453_1 | 0, i64toi32_i32$2 | 0, $457_1 | 0, i64toi32_i32$5 | 0); + $940($7_1 + 304 | 0 | 0, HEAP32[(($8_1 << 2 | 0) + 20984 | 0) >> 2] | 0 | 0); + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 320 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 324 | 0) >> 2] | 0; + $467_1 = i64toi32_i32$5; + $467$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 320 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $471_1 = i64toi32_i32$2; + $471$hi = i64toi32_i32$5; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 304 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[($7_1 + 308 | 0) >> 2] | 0; + $473_1 = i64toi32_i32$5; + $473$hi = i64toi32_i32$2; + i64toi32_i32$4 = ($7_1 + 304 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $477_1 = i64toi32_i32$2; + $477$hi = i64toi32_i32$5; + i64toi32_i32$5 = $467$hi; + i64toi32_i32$2 = $471$hi; + i64toi32_i32$4 = $473$hi; + i64toi32_i32$1 = $477$hi; + $943($7_1 + 288 | 0 | 0, $467_1 | 0, i64toi32_i32$5 | 0, $471_1 | 0, i64toi32_i32$2 | 0, $473_1 | 0, i64toi32_i32$4 | 0, $477_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$2 = ($7_1 + 288 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$2 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 288 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 292 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + break label$12; + } + $16_1 = 0; + label$41 : { + label$42 : { + $1_1 = ($8_1 | 0) % (9 | 0) | 0; + if ($1_1) { + break label$42 + } + $2_1 = 0; + break label$41; + } + $6_1 = ($8_1 | 0) > (-1 | 0) ? $1_1 : $1_1 + 9 | 0; + label$43 : { + label$44 : { + if ($12_1) { + break label$44 + } + $2_1 = 0; + $12_1 = 0; + break label$43; + } + $15_1 = HEAP32[(((8 - $6_1 | 0) << 2 | 0) + 21024 | 0) >> 2] | 0; + $17_1 = (1e9 | 0) / ($15_1 | 0) | 0; + $11_1 = 0; + $1_1 = 0; + $2_1 = 0; + label$45 : while (1) { + $14_1 = ($7_1 + 768 | 0) + ($1_1 << 2 | 0) | 0; + $506_1 = $14_1; + $14_1 = HEAP32[$14_1 >> 2] | 0; + $13_1 = ($14_1 >>> 0) / ($15_1 >>> 0) | 0; + $11_1 = $13_1 + $11_1 | 0; + HEAP32[$506_1 >> 2] = $11_1; + $11_1 = ($1_1 | 0) == ($2_1 | 0) & !$11_1 | 0; + $2_1 = $11_1 ? ($2_1 + 1 | 0) & 2047 | 0 : $2_1; + $8_1 = $11_1 ? $8_1 + -9 | 0 : $8_1; + $11_1 = Math_imul($17_1, $14_1 - Math_imul($13_1, $15_1) | 0); + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) != ($12_1 | 0)) { + continue label$45 + } + break label$45; + }; + if (!$11_1) { + break label$43 + } + HEAP32[(($7_1 + 768 | 0) + ($12_1 << 2 | 0) | 0) >> 2] = $11_1; + $12_1 = $12_1 + 1 | 0; + } + $8_1 = ($8_1 - $6_1 | 0) + 9 | 0; + } + label$46 : while (1) { + $13_1 = ($7_1 + 768 | 0) + ($2_1 << 2 | 0) | 0; + label$47 : { + label$48 : while (1) { + label$49 : { + if (($8_1 | 0) < (36 | 0)) { + break label$49 + } + if (($8_1 | 0) != (36 | 0)) { + break label$47 + } + if ((HEAP32[$13_1 >> 2] | 0) >>> 0 >= 10384593 >>> 0) { + break label$47 + } + } + $14_1 = $12_1 + 2047 | 0; + $11_1 = 0; + $15_1 = $12_1; + label$50 : while (1) { + $12_1 = $15_1; + label$51 : { + label$52 : { + $1_1 = $14_1 & 2047 | 0; + $15_1 = ($7_1 + 768 | 0) + ($1_1 << 2 | 0) | 0; + i64toi32_i32$2 = $15_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 29; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $174_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$3 | 0) | 0; + $174_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $584$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $586$hi = i64toi32_i32$1; + i64toi32_i32$1 = $584$hi; + i64toi32_i32$4 = $174_1; + i64toi32_i32$2 = $586$hi; + i64toi32_i32$5 = $11_1; + i64toi32_i32$3 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $21_1 = i64toi32_i32$3; + $21$hi = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 1000000001; + if (i64toi32_i32$0 >>> 0 > i64toi32_i32$4 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$5 >>> 0 | 0) | 0) { + break label$52 + } + $11_1 = 0; + break label$51; + } + i64toi32_i32$1 = $21$hi; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_udiv($21_1 | 0, i64toi32_i32$1 | 0, 1e9 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $22_1 = i64toi32_i32$0; + $22$hi = i64toi32_i32$1; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = __wasm_i64_mul($22_1 | 0, i64toi32_i32$1 | 0, 1e9 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $594_1 = i64toi32_i32$0; + $594$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$5 = $21_1; + i64toi32_i32$0 = $594$hi; + i64toi32_i32$4 = $594_1; + i64toi32_i32$2 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + i64toi32_i32$3 = (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) + i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$1 - i64toi32_i32$3 | 0; + $21_1 = i64toi32_i32$2; + $21$hi = i64toi32_i32$3; + i64toi32_i32$3 = $22$hi; + $11_1 = $22_1; + } + i64toi32_i32$3 = $21$hi; + $14_1 = $21_1; + HEAP32[$15_1 >> 2] = $21_1; + $15_1 = ($1_1 | 0) != (($12_1 + -1 | 0) & 2047 | 0 | 0) ? $12_1 : ($1_1 | 0) == ($2_1 | 0) ? $12_1 : $21_1 ? $12_1 : $1_1; + $14_1 = $1_1 + -1 | 0; + if (($1_1 | 0) != ($2_1 | 0)) { + continue label$50 + } + break label$50; + }; + $16_1 = $16_1 + -29 | 0; + if (!$11_1) { + continue label$48 + } + break label$48; + }; + label$53 : { + $2_1 = ($2_1 + -1 | 0) & 2047 | 0; + if (($2_1 | 0) != ($15_1 | 0)) { + break label$53 + } + $1_1 = ($7_1 + 768 | 0) + ((($15_1 + 2046 | 0) & 2047 | 0) << 2 | 0) | 0; + $12_1 = ($15_1 + -1 | 0) & 2047 | 0; + HEAP32[$1_1 >> 2] = HEAP32[$1_1 >> 2] | 0 | (HEAP32[(($7_1 + 768 | 0) + ($12_1 << 2 | 0) | 0) >> 2] | 0) | 0; + } + $8_1 = $8_1 + 9 | 0; + HEAP32[(($7_1 + 768 | 0) + ($2_1 << 2 | 0) | 0) >> 2] = $11_1; + continue label$46; + } + break label$46; + }; + label$54 : { + label$55 : while (1) { + $6_1 = ($12_1 + 1 | 0) & 2047 | 0; + $18_1 = ($7_1 + 768 | 0) + ((($12_1 + -1 | 0) & 2047 | 0) << 2 | 0) | 0; + label$56 : while (1) { + $14_1 = ($8_1 | 0) > (45 | 0) ? 9 : 1; + label$57 : { + label$58 : while (1) { + $15_1 = $2_1; + $1_1 = 0; + label$59 : { + label$60 : { + label$61 : while (1) { + $2_1 = ($1_1 + $15_1 | 0) & 2047 | 0; + if (($2_1 | 0) == ($12_1 | 0)) { + break label$60 + } + $2_1 = HEAP32[(($7_1 + 768 | 0) + ($2_1 << 2 | 0) | 0) >> 2] | 0; + $11_1 = HEAP32[(($1_1 << 2 | 0) + 21008 | 0) >> 2] | 0; + if ($2_1 >>> 0 < $11_1 >>> 0) { + break label$60 + } + if ($2_1 >>> 0 > $11_1 >>> 0) { + break label$59 + } + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) != (4 | 0)) { + continue label$61 + } + break label$61; + }; + } + if (($8_1 | 0) != (36 | 0)) { + break label$59 + } + i64toi32_i32$3 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$3; + $1_1 = 0; + i64toi32_i32$3 = 0; + $22_1 = 0; + $22$hi = i64toi32_i32$3; + label$62 : while (1) { + label$63 : { + $2_1 = ($1_1 + $15_1 | 0) & 2047 | 0; + if (($2_1 | 0) != ($12_1 | 0)) { + break label$63 + } + $12_1 = ($12_1 + 1 | 0) & 2047 | 0; + HEAP32[((($12_1 << 2 | 0) + ($7_1 + 768 | 0) | 0) + -4 | 0) >> 2] = 0; + } + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 1075633366; + $943($7_1 + 752 | 0 | 0, $21_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0, 1342177280 | 0, i64toi32_i32$4 | 0); + $941($7_1 + 736 | 0 | 0, HEAP32[(($7_1 + 768 | 0) + ($2_1 << 2 | 0) | 0) >> 2] | 0 | 0); + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 752 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 756 | 0) >> 2] | 0; + $735_1 = i64toi32_i32$4; + $735$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 752 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $739_1 = i64toi32_i32$1; + $739$hi = i64toi32_i32$4; + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 736 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 740 | 0) >> 2] | 0; + $741_1 = i64toi32_i32$4; + $741$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 736 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $745_1 = i64toi32_i32$1; + $745$hi = i64toi32_i32$4; + i64toi32_i32$4 = $735$hi; + i64toi32_i32$1 = $739$hi; + i64toi32_i32$5 = $741$hi; + i64toi32_i32$3 = $745$hi; + $933($7_1 + 720 | 0 | 0, $735_1 | 0, i64toi32_i32$4 | 0, $739_1 | 0, i64toi32_i32$1 | 0, $741_1 | 0, i64toi32_i32$5 | 0, $745_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($7_1 + 720 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$3; + $22$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 720 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 724 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$3; + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) != (4 | 0)) { + continue label$62 + } + break label$62; + }; + $940($7_1 + 704 | 0 | 0, $5_1 | 0); + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 704 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 708 | 0) >> 2] | 0; + $764_1 = i64toi32_i32$3; + $764$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 704 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $768_1 = i64toi32_i32$5; + $768$hi = i64toi32_i32$3; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$1 = $764$hi; + i64toi32_i32$4 = $768$hi; + $943($7_1 + 688 | 0 | 0, $21_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0, $764_1 | 0, i64toi32_i32$1 | 0, $768_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = ($7_1 + 688 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $21_1 = 0; + $21$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 688 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 692 | 0) >> 2] | 0; + $23_1 = i64toi32_i32$1; + $23$hi = i64toi32_i32$4; + $11_1 = $16_1 + 113 | 0; + $1_1 = $11_1 - $4_1 | 0; + $14_1 = ($1_1 | 0) < ($3_1 | 0); + $2_1 = $14_1 ? (($1_1 | 0) > (0 | 0) ? $1_1 : 0) : $3_1; + if (($2_1 | 0) <= (112 | 0)) { + break label$57 + } + i64toi32_i32$4 = 0; + $24_1 = 0; + $24$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + $25_1 = 0; + $25$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + $26_1 = 0; + $26$hi = i64toi32_i32$4; + break label$54; + } + $16_1 = $14_1 + $16_1 | 0; + $2_1 = $12_1; + if (($15_1 | 0) == ($2_1 | 0)) { + continue label$58 + } + break label$58; + }; + $13_1 = 1e9 >>> $14_1 | 0; + $17_1 = (-1 << $14_1 | 0) ^ -1 | 0; + $1_1 = 0; + $2_1 = $15_1; + label$64 : while (1) { + $11_1 = ($7_1 + 768 | 0) + ($15_1 << 2 | 0) | 0; + $810_1 = $11_1; + $11_1 = HEAP32[$11_1 >> 2] | 0; + $1_1 = ($11_1 >>> $14_1 | 0) + $1_1 | 0; + HEAP32[$810_1 >> 2] = $1_1; + $1_1 = ($15_1 | 0) == ($2_1 | 0) & !$1_1 | 0; + $2_1 = $1_1 ? ($2_1 + 1 | 0) & 2047 | 0 : $2_1; + $8_1 = $1_1 ? $8_1 + -9 | 0 : $8_1; + $1_1 = Math_imul($11_1 & $17_1 | 0, $13_1); + $15_1 = ($15_1 + 1 | 0) & 2047 | 0; + if (($15_1 | 0) != ($12_1 | 0)) { + continue label$64 + } + break label$64; + }; + if (!$1_1) { + continue label$56 + } + label$65 : { + if (($6_1 | 0) == ($2_1 | 0)) { + break label$65 + } + HEAP32[(($7_1 + 768 | 0) + ($12_1 << 2 | 0) | 0) >> 2] = $1_1; + $12_1 = $6_1; + continue label$55; + } + HEAP32[$18_1 >> 2] = HEAP32[$18_1 >> 2] | 0 | 1 | 0; + $2_1 = $6_1; + continue label$56; + } + break label$56; + }; + break label$55; + }; + $938($7_1 + 640 | 0 | 0, +(+$970(+(1.0), 225 - $2_1 | 0 | 0))); + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 640 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 644 | 0) >> 2] | 0; + $872_1 = i64toi32_i32$4; + $872$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 640 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $876_1 = i64toi32_i32$1; + $876$hi = i64toi32_i32$4; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$4 = $872$hi; + i64toi32_i32$1 = $876$hi; + i64toi32_i32$5 = $23$hi; + i64toi32_i32$3 = $22$hi; + $903($7_1 + 672 | 0 | 0, $872_1 | 0, i64toi32_i32$4 | 0, $876_1 | 0, i64toi32_i32$1 | 0, $23_1 | 0, i64toi32_i32$5 | 0, $22_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 680 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 684 | 0) >> 2] | 0; + $26_1 = i64toi32_i32$3; + $26$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 672 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 676 | 0) >> 2] | 0; + $25_1 = i64toi32_i32$5; + $25$hi = i64toi32_i32$3; + $938($7_1 + 624 | 0 | 0, +(+$970(+(1.0), 113 - $2_1 | 0 | 0))); + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 624 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 628 | 0) >> 2] | 0; + $893_1 = i64toi32_i32$3; + $893$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 624 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $897_1 = i64toi32_i32$5; + $897$hi = i64toi32_i32$3; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$1 = $893$hi; + i64toi32_i32$4 = $897$hi; + $969($7_1 + 656 | 0 | 0, $23_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0, $893_1 | 0, i64toi32_i32$1 | 0, $897_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 656 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 660 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 664 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 668 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$1; + $24$hi = i64toi32_i32$4; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$3 = $24$hi; + $945($7_1 + 608 | 0 | 0, $23_1 | 0, i64toi32_i32$4 | 0, $22_1 | 0, i64toi32_i32$1 | 0, $21_1 | 0, i64toi32_i32$5 | 0, $24_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = $25$hi; + i64toi32_i32$3 = $26$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 608 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 612 | 0) >> 2] | 0; + $913_1 = i64toi32_i32$3; + $913$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 608 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $917_1 = i64toi32_i32$5; + $917$hi = i64toi32_i32$3; + i64toi32_i32$3 = $25$hi; + i64toi32_i32$5 = $26$hi; + i64toi32_i32$1 = $913$hi; + i64toi32_i32$4 = $917$hi; + $933($7_1 + 592 | 0 | 0, $25_1 | 0, i64toi32_i32$3 | 0, $26_1 | 0, i64toi32_i32$5 | 0, $913_1 | 0, i64toi32_i32$1 | 0, $917_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = ($7_1 + 592 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 592 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 596 | 0) >> 2] | 0; + $23_1 = i64toi32_i32$1; + $23$hi = i64toi32_i32$4; + } + label$66 : { + $8_1 = ($15_1 + 4 | 0) & 2047 | 0; + if (($8_1 | 0) == ($12_1 | 0)) { + break label$66 + } + label$67 : { + label$68 : { + $8_1 = HEAP32[(($7_1 + 768 | 0) + ($8_1 << 2 | 0) | 0) >> 2] | 0; + if ($8_1 >>> 0 > 499999999 >>> 0) { + break label$68 + } + label$69 : { + if ($8_1) { + break label$69 + } + if ((($15_1 + 5 | 0) & 2047 | 0 | 0) == ($12_1 | 0)) { + break label$67 + } + } + $938($7_1 + 480 | 0 | 0, +(+($5_1 | 0) * .25)); + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 480 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 484 | 0) >> 2] | 0; + $954_1 = i64toi32_i32$4; + $954$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 480 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $958_1 = i64toi32_i32$1; + $958$hi = i64toi32_i32$4; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$5 = $954$hi; + i64toi32_i32$3 = $958$hi; + $933($7_1 + 464 | 0 | 0, $21_1 | 0, i64toi32_i32$4 | 0, $24_1 | 0, i64toi32_i32$1 | 0, $954_1 | 0, i64toi32_i32$5 | 0, $958_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($7_1 + 464 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$3; + $24$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 464 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 468 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$3; + break label$67; + } + label$70 : { + if (($8_1 | 0) == (5e8 | 0)) { + break label$70 + } + $938($7_1 + 576 | 0 | 0, +(+($5_1 | 0) * .75)); + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 576 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 580 | 0) >> 2] | 0; + $977_1 = i64toi32_i32$3; + $977$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 576 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $981_1 = i64toi32_i32$5; + $981$hi = i64toi32_i32$3; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$1 = $977$hi; + i64toi32_i32$4 = $981$hi; + $933($7_1 + 560 | 0 | 0, $21_1 | 0, i64toi32_i32$3 | 0, $24_1 | 0, i64toi32_i32$5 | 0, $977_1 | 0, i64toi32_i32$1 | 0, $981_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = ($7_1 + 560 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$4; + $24$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 560 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 564 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + break label$67; + } + $27_1 = +($5_1 | 0); + label$71 : { + if ((($15_1 + 5 | 0) & 2047 | 0 | 0) != ($12_1 | 0)) { + break label$71 + } + $938($7_1 + 512 | 0 | 0, +($27_1 * .5)); + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 512 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 516 | 0) >> 2] | 0; + $1004 = i64toi32_i32$4; + $1004$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 512 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $1008 = i64toi32_i32$1; + $1008$hi = i64toi32_i32$4; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$5 = $1004$hi; + i64toi32_i32$3 = $1008$hi; + $933($7_1 + 496 | 0 | 0, $21_1 | 0, i64toi32_i32$4 | 0, $24_1 | 0, i64toi32_i32$1 | 0, $1004 | 0, i64toi32_i32$5 | 0, $1008 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($7_1 + 496 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$3; + $24$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 496 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 500 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$3; + break label$67; + } + $938($7_1 + 544 | 0 | 0, +($27_1 * .75)); + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 544 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 548 | 0) >> 2] | 0; + $1024 = i64toi32_i32$3; + $1024$hi = i64toi32_i32$5; + i64toi32_i32$1 = ($7_1 + 544 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1028 = i64toi32_i32$5; + $1028$hi = i64toi32_i32$3; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$1 = $1024$hi; + i64toi32_i32$4 = $1028$hi; + $933($7_1 + 528 | 0 | 0, $21_1 | 0, i64toi32_i32$3 | 0, $24_1 | 0, i64toi32_i32$5 | 0, $1024 | 0, i64toi32_i32$1 | 0, $1028 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = ($7_1 + 528 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$4; + $24$hi = i64toi32_i32$1; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 528 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 532 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + } + if (($2_1 | 0) > (111 | 0)) { + break label$66 + } + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 1073676288; + $969($7_1 + 448 | 0 | 0, $21_1 | 0, i64toi32_i32$4 | 0, $24_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 448 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($7_1 + 452 | 0) >> 2] | 0; + $1042 = i64toi32_i32$3; + $1042$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 456 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 460 | 0) >> 2] | 0; + $1044 = i64toi32_i32$5; + $1044$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1042$hi; + i64toi32_i32$5 = $1044$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 0; + if ($935($1042 | 0, i64toi32_i32$3 | 0, $1044 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$4 | 0) | 0) { + break label$66 + } + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 1073676288; + $933($7_1 + 432 | 0 | 0, $21_1 | 0, i64toi32_i32$4 | 0, $24_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = $7_1 + 440 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $24_1 = i64toi32_i32$3; + $24$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 432 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 436 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$4 = $24$hi; + $933($7_1 + 416 | 0 | 0, $23_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0, $21_1 | 0, i64toi32_i32$1 | 0, $24_1 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = HEAP32[($7_1 + 416 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($7_1 + 420 | 0) >> 2] | 0; + $1064 = i64toi32_i32$4; + $1064$hi = i64toi32_i32$1; + i64toi32_i32$5 = ($7_1 + 416 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $1068 = i64toi32_i32$1; + $1068$hi = i64toi32_i32$4; + i64toi32_i32$4 = $25$hi; + i64toi32_i32$4 = $26$hi; + i64toi32_i32$4 = $1064$hi; + i64toi32_i32$1 = $1068$hi; + i64toi32_i32$5 = $25$hi; + i64toi32_i32$3 = $26$hi; + $945($7_1 + 400 | 0 | 0, $1064 | 0, i64toi32_i32$4 | 0, $1068 | 0, i64toi32_i32$1 | 0, $25_1 | 0, i64toi32_i32$5 | 0, $26_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = ($7_1 + 400 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$3; + $22$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = HEAP32[($7_1 + 400 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 404 | 0) >> 2] | 0; + $23_1 = i64toi32_i32$5; + $23$hi = i64toi32_i32$3; + label$72 : { + if (($11_1 & 2147483647 | 0 | 0) <= (-2 - $9_1 | 0 | 0)) { + break label$72 + } + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 1073610752; + $943($7_1 + 384 | 0 | 0, $23_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 0; + $11_1 = $935($21_1 | 0, i64toi32_i32$4 | 0, $24_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$5 = $22$hi; + $27_1 = +$905(+(+$946($23_1 | 0, i64toi32_i32$3 | 0, $22_1 | 0, i64toi32_i32$5 | 0))); + i64toi32_i32$1 = ($7_1 + 384 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $1096$hi = i64toi32_i32$3; + i64toi32_i32$3 = $22$hi; + $12_1 = $27_1 >= 1038459371706965525706099.0e10; + i64toi32_i32$0 = $12_1; + i64toi32_i32$3 = $1096$hi; + $175_1 = i64toi32_i32$5; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$4 = $12_1 ? $175_1 : $22_1; + i64toi32_i32$1 = $12_1 ? i64toi32_i32$3 : i64toi32_i32$5; + $22_1 = i64toi32_i32$4; + $22$hi = i64toi32_i32$1; + i64toi32_i32$0 = $7_1; + i64toi32_i32$1 = HEAP32[($7_1 + 384 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($7_1 + 388 | 0) >> 2] | 0; + $1103$hi = i64toi32_i32$4; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$5 = $12_1; + i64toi32_i32$4 = $1103$hi; + $176_1 = i64toi32_i32$1; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$3 = i64toi32_i32$5 ? $176_1 : $23_1; + i64toi32_i32$0 = i64toi32_i32$5 ? i64toi32_i32$4 : i64toi32_i32$1; + $23_1 = i64toi32_i32$3; + $23$hi = i64toi32_i32$0; + $16_1 = $16_1 + i64toi32_i32$5 | 0; + label$73 : { + if (($11_1 | 0) != (0 | 0) & ($14_1 & (i64toi32_i32$5 ^ 1 | 0 | ($2_1 | 0) != ($1_1 | 0) | 0) | 0) | 0) { + break label$73 + } + if (($16_1 + 110 | 0 | 0) <= ($10_1 | 0)) { + break label$72 + } + } + HEAP32[($842() | 0) >> 2] = 68; + } + i64toi32_i32$0 = $23$hi; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$0 = $23$hi; + i64toi32_i32$3 = $22$hi; + $904($7_1 + 368 | 0 | 0, $23_1 | 0, i64toi32_i32$0 | 0, $22_1 | 0, i64toi32_i32$3 | 0, $16_1 | 0); + i64toi32_i32$5 = $7_1; + i64toi32_i32$3 = HEAP32[($7_1 + 376 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($7_1 + 380 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$3; + $21$hi = i64toi32_i32$0; + i64toi32_i32$5 = $7_1; + i64toi32_i32$0 = HEAP32[($7_1 + 368 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($7_1 + 372 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$0; + $22$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = $22$hi; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $22_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$3 = $21$hi; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $21_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$3; + label$74 : { + $20_1 = $7_1 + 8960 | 0; + if ($20_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $20_1; + } + } + + function $909($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, i64toi32_i32$0 = 0, $3_1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $6$hi = 0, $5_1 = 0, $6_1 = 0, i64toi32_i32$2 = 0, $4_1 = 0, $18_1 = 0, $19_1 = 0, $20_1 = 0, $88$hi = 0, $90_1 = 0, $90$hi = 0, $139$hi = 0; + label$1 : { + label$2 : { + $2_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$2 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$1; + } + $2_1 = $898($0_1 | 0) | 0; + } + label$3 : { + label$4 : { + label$5 : { + $3_1 = $2_1 + -43 | 0; + if ($3_1 >>> 0 > 2 >>> 0) { + break label$5 + } + switch ($3_1 | 0) { + case 1: + break label$5; + default: + break label$4; + }; + } + $3_1 = $2_1 + -48 | 0; + $4_1 = 0; + break label$3; + } + label$6 : { + label$7 : { + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($3_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$7 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $3_1 + 1 | 0; + $5_1 = HEAPU8[$3_1 >> 0] | 0; + break label$6; + } + $5_1 = $898($0_1 | 0) | 0; + } + $4_1 = ($2_1 | 0) == (45 | 0); + $3_1 = $5_1 + -48 | 0; + label$8 : { + if (!$1_1) { + break label$8 + } + if ($3_1 >>> 0 < 10 >>> 0) { + break label$8 + } + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$8 + } + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + $2_1 = $5_1; + } + label$9 : { + label$10 : { + if ($3_1 >>> 0 >= 10 >>> 0) { + break label$10 + } + $3_1 = 0; + label$11 : while (1) { + $3_1 = $2_1 + Math_imul($3_1, 10) | 0; + label$12 : { + label$13 : { + $2_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$13 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$12; + } + $2_1 = $898($0_1 | 0) | 0; + } + $3_1 = $3_1 + -48 | 0; + label$14 : { + $5_1 = $2_1 + -48 | 0; + if ($5_1 >>> 0 > 9 >>> 0) { + break label$14 + } + if (($3_1 | 0) < (214748364 | 0)) { + continue label$11 + } + } + break label$11; + }; + i64toi32_i32$1 = $3_1; + i64toi32_i32$0 = $3_1 >> 31 | 0; + $6_1 = $3_1; + $6$hi = i64toi32_i32$0; + label$15 : { + if ($5_1 >>> 0 >= 10 >>> 0) { + break label$15 + } + label$16 : while (1) { + i64toi32_i32$0 = 0; + $88$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = __wasm_i64_mul($6_1 | 0, i64toi32_i32$0 | 0, 10 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $90_1 = i64toi32_i32$1; + $90$hi = i64toi32_i32$0; + i64toi32_i32$0 = $88$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = $90$hi; + i64toi32_i32$3 = $90_1; + i64toi32_i32$4 = $2_1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $6_1 = i64toi32_i32$4; + $6$hi = i64toi32_i32$5; + label$17 : { + label$18 : { + $2_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$18 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$17; + } + $2_1 = $898($0_1 | 0) | 0; + } + i64toi32_i32$5 = $6$hi; + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = -48; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $6_1 = i64toi32_i32$1; + $6$hi = i64toi32_i32$4; + $5_1 = $2_1 + -48 | 0; + if ($5_1 >>> 0 > 9 >>> 0) { + break label$15 + } + i64toi32_i32$4 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$0 = 21474836; + i64toi32_i32$3 = 2061584302; + if ((i64toi32_i32$4 | 0) < (i64toi32_i32$0 | 0)) { + $18_1 = 1 + } else { + if ((i64toi32_i32$4 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$5 >>> 0 >= i64toi32_i32$3 >>> 0) { + $19_1 = 0 + } else { + $19_1 = 1 + } + $20_1 = $19_1; + } else { + $20_1 = 0 + } + $18_1 = $20_1; + } + if ($18_1) { + continue label$16 + } + break label$16; + }; + } + label$19 : { + if ($5_1 >>> 0 >= 10 >>> 0) { + break label$19 + } + label$20 : while (1) { + label$21 : { + label$22 : { + $2_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($2_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$22 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 + 1 | 0; + $2_1 = HEAPU8[$2_1 >> 0] | 0; + break label$21; + } + $2_1 = $898($0_1 | 0) | 0; + } + if (($2_1 + -48 | 0) >>> 0 < 10 >>> 0) { + continue label$20 + } + break label$20; + }; + } + label$23 : { + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$23 + } + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + -1 | 0; + } + i64toi32_i32$5 = $6$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = $6$hi; + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = i64toi32_i32$3 - i64toi32_i32$0 | 0; + i64toi32_i32$1 = (i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0) + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$5 - i64toi32_i32$1 | 0; + $139$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$4 = $4_1; + i64toi32_i32$1 = $139$hi; + i64toi32_i32$3 = $6$hi; + i64toi32_i32$0 = i64toi32_i32$4 ? i64toi32_i32$2 : i64toi32_i32$0; + i64toi32_i32$5 = i64toi32_i32$4 ? i64toi32_i32$1 : i64toi32_i32$3; + $6_1 = i64toi32_i32$0; + $6$hi = i64toi32_i32$5; + break label$9; + } + i64toi32_i32$5 = -2147483648; + $6_1 = 0; + $6$hi = i64toi32_i32$5; + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$9 + } + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + -1 | 0; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$0 = 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$5; + return i64toi32_i32$0 | 0; + } + i64toi32_i32$0 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$5 | 0; + } + + function $910($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $8_1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$5 = 0, i64toi32_i32$0 = 0, $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $11_1 = 0, i64toi32_i32$3 = 0, $3_1 = 0, $7_1 = 0, $10_1 = 0, $14_1 = 0, $12_1 = 0, $13_1 = 0, $20$hi = 0, $16_1 = 0, $21$hi = 0, $20_1 = 0, $21_1 = 0, $22$hi = 0, $4_1 = 0, $9_1 = 0, $15_1 = 0, $22_1 = 0, $17_1 = 0, i64toi32_i32$6 = 0, $5_1 = 0, $61_1 = 0, $19_1 = 0, $18_1 = 0, $77$hi = 0, $79$hi = 0, $84_1 = 0, $84$hi = 0, $186_1 = 0, $196_1 = 0, $258$hi = 0, $260$hi = 0, $265_1 = 0, $265$hi = 0, $309_1 = 0, $309$hi = 0, $315_1 = 0, $315$hi = 0, $316$hi = 0, $599_1 = 0, $599$hi = 0, $604_1 = 0, $604$hi = 0, $634_1 = 0, $634$hi = 0, $640_1 = 0, $640$hi = 0, $641$hi = 0, $665$hi = 0, $667$hi = 0, $673_1 = 0, $673$hi = 0; + label$1 : { + $3_1 = global$0 - 304 | 0; + $18_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $18_1; + } + $4_1 = 0; + $5_1 = 0; + label$3 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$3 + } + $5_1 = $978($0_1 | 0) | 0; + } + label$4 : { + $6_1 = HEAPU8[$1_1 >> 0] | 0; + if (!$6_1) { + break label$4 + } + $7_1 = $0_1 + 4 | 0; + i64toi32_i32$0 = 0; + $20_1 = 0; + $20$hi = i64toi32_i32$0; + $4_1 = 0; + label$5 : { + label$6 : { + label$7 : while (1) { + label$8 : { + label$9 : { + if (!($895($6_1 & 255 | 0 | 0) | 0)) { + break label$9 + } + label$10 : while (1) { + $6_1 = $1_1; + $1_1 = $1_1 + 1 | 0; + if ($895(HEAPU8[($6_1 + 1 | 0) >> 0] | 0 | 0) | 0) { + continue label$10 + } + break label$10; + }; + i64toi32_i32$0 = 0; + $897($0_1 | 0, 0 | 0, i64toi32_i32$0 | 0); + label$11 : while (1) { + label$12 : { + label$13 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$13 + } + HEAP32[$7_1 >> 2] = $1_1 + 1 | 0; + $1_1 = HEAPU8[$1_1 >> 0] | 0; + break label$12; + } + $1_1 = $898($0_1 | 0) | 0; + } + if ($895($1_1 | 0) | 0) { + continue label$11 + } + break label$11; + }; + label$14 : { + label$15 : { + if (HEAP32[($0_1 + 104 | 0) >> 2] | 0) { + break label$15 + } + $1_1 = HEAP32[$7_1 >> 2] | 0; + break label$14; + } + $1_1 = (HEAP32[$7_1 >> 2] | 0) + -1 | 0; + HEAP32[$7_1 >> 2] = $1_1; + } + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $77$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = $77$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $79$hi = i64toi32_i32$5; + i64toi32_i32$2 = $1_1 - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$2 >> 31 | 0; + $84_1 = i64toi32_i32$2; + $84$hi = i64toi32_i32$5; + i64toi32_i32$5 = $79$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = $84$hi; + i64toi32_i32$3 = $84_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $20_1 = i64toi32_i32$0; + $20$hi = i64toi32_i32$4; + break label$8; + } + label$16 : { + label$17 : { + label$18 : { + label$19 : { + $6_1 = HEAPU8[$1_1 >> 0] | 0; + if (($6_1 | 0) != (37 | 0)) { + break label$19 + } + $8_1 = HEAPU8[($1_1 + 1 | 0) >> 0] | 0; + if (($8_1 | 0) == (42 | 0)) { + break label$18 + } + if (($8_1 | 0) != (37 | 0)) { + break label$17 + } + } + i64toi32_i32$4 = 0; + $897($0_1 | 0, 0 | 0, i64toi32_i32$4 | 0); + $6_1 = $1_1 + (($6_1 | 0) == (37 | 0)) | 0; + label$20 : { + label$21 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$21 + } + HEAP32[$7_1 >> 2] = $1_1 + 1 | 0; + $1_1 = HEAPU8[$1_1 >> 0] | 0; + break label$20; + } + $1_1 = $898($0_1 | 0) | 0; + } + label$22 : { + if (($1_1 | 0) == (HEAPU8[$6_1 >> 0] | 0 | 0)) { + break label$22 + } + label$23 : { + if (!(HEAP32[($0_1 + 104 | 0) >> 2] | 0)) { + break label$23 + } + HEAP32[$7_1 >> 2] = (HEAP32[$7_1 >> 2] | 0) + -1 | 0; + } + $9_1 = 0; + if (($1_1 | 0) >= (0 | 0)) { + break label$4 + } + break label$6; + } + i64toi32_i32$4 = $20$hi; + i64toi32_i32$5 = $20_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $20_1 = i64toi32_i32$2; + $20$hi = i64toi32_i32$0; + break label$8; + } + $6_1 = $1_1 + 2 | 0; + $10_1 = 0; + break label$16; + } + label$24 : { + if (!($875($8_1 | 0) | 0)) { + break label$24 + } + if ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0 | 0) != (36 | 0)) { + break label$24 + } + $6_1 = $1_1 + 3 | 0; + $10_1 = $911($2_1 | 0, (HEAPU8[($1_1 + 1 | 0) >> 0] | 0) + -48 | 0 | 0) | 0; + break label$16; + } + $6_1 = $1_1 + 1 | 0; + $10_1 = HEAP32[$2_1 >> 2] | 0; + $2_1 = $2_1 + 4 | 0; + } + $9_1 = 0; + $1_1 = 0; + label$25 : { + if (!($875(HEAPU8[$6_1 >> 0] | 0 | 0) | 0)) { + break label$25 + } + label$26 : while (1) { + $1_1 = (Math_imul($1_1, 10) + (HEAPU8[$6_1 >> 0] | 0) | 0) + -48 | 0; + $8_1 = HEAPU8[($6_1 + 1 | 0) >> 0] | 0; + $6_1 = $6_1 + 1 | 0; + if ($875($8_1 | 0) | 0) { + continue label$26 + } + break label$26; + }; + } + label$27 : { + label$28 : { + $11_1 = HEAPU8[$6_1 >> 0] | 0; + if (($11_1 | 0) == (109 | 0)) { + break label$28 + } + $8_1 = $6_1; + break label$27; + } + $8_1 = $6_1 + 1 | 0; + $12_1 = 0; + $9_1 = ($10_1 | 0) != (0 | 0); + $11_1 = HEAPU8[($6_1 + 1 | 0) >> 0] | 0; + $13_1 = 0; + } + $14_1 = ($11_1 & 255 | 0) + -65 | 0; + if ($14_1 >>> 0 > 57 >>> 0) { + break label$6 + } + $6_1 = $8_1 + 1 | 0; + $11_1 = 3; + label$29 : { + label$30 : { + switch ($14_1 | 0) { + case 39: + $186_1 = $8_1 + 2 | 0; + $8_1 = (HEAPU8[($8_1 + 1 | 0) >> 0] | 0 | 0) == (104 | 0); + $6_1 = $8_1 ? $186_1 : $6_1; + $11_1 = $8_1 ? -2 : -1; + break label$29; + case 43: + $196_1 = $8_1 + 2 | 0; + $8_1 = (HEAPU8[($8_1 + 1 | 0) >> 0] | 0 | 0) == (108 | 0); + $6_1 = $8_1 ? $196_1 : $6_1; + $11_1 = $8_1 ? 3 : 1; + break label$29; + case 51: + case 57: + $11_1 = 1; + break label$29; + case 11: + $11_1 = 2; + break label$29; + case 41: + break label$29; + case 1: + case 3: + case 7: + case 8: + case 9: + case 10: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 27: + case 28: + case 29: + case 30: + case 31: + case 33: + case 42: + case 44: + case 48: + case 49: + case 53: + case 54: + case 56: + break label$6; + default: + break label$30; + }; + } + $11_1 = 0; + $6_1 = $8_1; + } + $8_1 = HEAPU8[$6_1 >> 0] | 0; + $14_1 = ($8_1 & 47 | 0 | 0) == (3 | 0); + $15_1 = $14_1 ? 1 : $11_1; + label$35 : { + $16_1 = $14_1 ? $8_1 | 32 | 0 : $8_1; + if (($16_1 | 0) == (91 | 0)) { + break label$35 + } + label$36 : { + label$37 : { + if (($16_1 | 0) == (110 | 0)) { + break label$37 + } + if (($16_1 | 0) != (99 | 0)) { + break label$36 + } + $1_1 = ($1_1 | 0) > (1 | 0) ? $1_1 : 1; + break label$35; + } + i64toi32_i32$0 = $20$hi; + $912($10_1 | 0, $15_1 | 0, $20_1 | 0, i64toi32_i32$0 | 0); + break label$8; + } + i64toi32_i32$0 = 0; + $897($0_1 | 0, 0 | 0, i64toi32_i32$0 | 0); + label$38 : while (1) { + label$39 : { + label$40 : { + $8_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($8_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$40 + } + HEAP32[$7_1 >> 2] = $8_1 + 1 | 0; + $8_1 = HEAPU8[$8_1 >> 0] | 0; + break label$39; + } + $8_1 = $898($0_1 | 0) | 0; + } + if ($895($8_1 | 0) | 0) { + continue label$38 + } + break label$38; + }; + label$41 : { + label$42 : { + if (HEAP32[($0_1 + 104 | 0) >> 2] | 0) { + break label$42 + } + $8_1 = HEAP32[$7_1 >> 2] | 0; + break label$41; + } + $8_1 = (HEAP32[$7_1 >> 2] | 0) + -1 | 0; + HEAP32[$7_1 >> 2] = $8_1; + } + i64toi32_i32$4 = $0_1; + i64toi32_i32$0 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $258$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = $258$hi; + i64toi32_i32$4 = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $260$hi = i64toi32_i32$2; + i64toi32_i32$4 = $8_1 - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; + $265_1 = i64toi32_i32$4; + $265$hi = i64toi32_i32$2; + i64toi32_i32$2 = $260$hi; + i64toi32_i32$5 = i64toi32_i32$1; + i64toi32_i32$4 = $265$hi; + i64toi32_i32$3 = $265_1; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $20_1 = i64toi32_i32$0; + $20$hi = i64toi32_i32$1; + } + i64toi32_i32$5 = $1_1; + i64toi32_i32$1 = $1_1 >> 31 | 0; + $21_1 = $1_1; + $21$hi = i64toi32_i32$1; + $897($0_1 | 0, $1_1 | 0, i64toi32_i32$1 | 0); + label$43 : { + label$44 : { + $11_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + $8_1 = HEAP32[($0_1 + 104 | 0) >> 2] | 0; + if ($11_1 >>> 0 >= $8_1 >>> 0) { + break label$44 + } + HEAP32[$7_1 >> 2] = $11_1 + 1 | 0; + break label$43; + } + if (($898($0_1 | 0) | 0 | 0) < (0 | 0)) { + break label$6 + } + $8_1 = HEAP32[($0_1 + 104 | 0) >> 2] | 0; + } + label$45 : { + if (!$8_1) { + break label$45 + } + HEAP32[$7_1 >> 2] = (HEAP32[$7_1 >> 2] | 0) + -1 | 0; + } + label$46 : { + label$47 : { + label$48 : { + $8_1 = $16_1 + -88 | 0; + if ($8_1 >>> 0 <= 32 >>> 0) { + break label$48 + } + $1_1 = $16_1 + -65 | 0; + if ($1_1 >>> 0 > 6 >>> 0) { + break label$46 + } + if (!((1 << $1_1 | 0) & 113 | 0)) { + break label$46 + } + break label$47; + } + $11_1 = 16; + label$49 : { + label$50 : { + label$51 : { + switch ($8_1 | 0) { + case 17: + $11_1 = 0; + break label$50; + case 12: + case 29: + $11_1 = 10; + break label$50; + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 10: + case 16: + case 18: + case 19: + case 20: + case 21: + case 22: + case 25: + case 26: + case 28: + case 30: + case 31: + break label$46; + case 9: + case 13: + case 14: + case 15: + break label$47; + case 3: + case 11: + case 27: + break label$49; + case 23: + break label$51; + default: + break label$50; + }; + } + $11_1 = 8; + } + i64toi32_i32$1 = -1; + i64toi32_i32$1 = $899($0_1 | 0, $11_1 | 0, 0 | 0, -1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$5; + i64toi32_i32$2 = $0_1; + i64toi32_i32$5 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $309_1 = i64toi32_i32$5; + $309$hi = i64toi32_i32$1; + i64toi32_i32$5 = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$5 >> 31 | 0; + $315_1 = i64toi32_i32$5; + $315$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = $315$hi; + i64toi32_i32$3 = $315_1; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$0 | 0; + $316$hi = i64toi32_i32$0; + i64toi32_i32$0 = $309$hi; + i64toi32_i32$1 = $309_1; + i64toi32_i32$2 = $316$hi; + i64toi32_i32$3 = i64toi32_i32$4; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$4 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) | 0) { + break label$5 + } + label$54 : { + if (!$10_1) { + break label$54 + } + if (($16_1 | 0) != (112 | 0)) { + break label$54 + } + i64toi32_i32$1 = $21$hi; + HEAP32[$10_1 >> 2] = $21_1; + break label$46; + } + i64toi32_i32$1 = $21$hi; + $912($10_1 | 0, $15_1 | 0, $21_1 | 0, i64toi32_i32$1 | 0); + break label$46; + } + label$55 : { + label$56 : { + if (($16_1 & 239 | 0 | 0) != (99 | 0)) { + break label$56 + } + $973($3_1 + 32 | 0 | 0, -1 | 0, 257 | 0) | 0; + HEAP8[($3_1 + 32 | 0) >> 0] = 0; + if (($16_1 | 0) != (115 | 0)) { + break label$55 + } + HEAP8[($3_1 + 65 | 0) >> 0] = 0; + HEAP8[($3_1 + 46 | 0) >> 0] = 0; + $61_1 = 0; + HEAP16[($3_1 + 42 | 0) >> 1] = $61_1; + HEAP16[($3_1 + 44 | 0) >> 1] = $61_1 >>> 16 | 0; + break label$55; + } + $11_1 = HEAPU8[($6_1 + 1 | 0) >> 0] | 0; + $8_1 = ($11_1 | 0) == (94 | 0); + $973($3_1 + 32 | 0 | 0, $8_1 | 0, 257 | 0) | 0; + HEAP8[($3_1 + 32 | 0) >> 0] = 0; + $14_1 = $8_1 ? $6_1 + 2 | 0 : $6_1 + 1 | 0; + label$57 : { + label$58 : { + label$59 : { + label$60 : { + $6_1 = HEAPU8[($6_1 + ($8_1 ? 2 : 1) | 0) >> 0] | 0; + if (($6_1 | 0) == (45 | 0)) { + break label$60 + } + if (($6_1 | 0) == (93 | 0)) { + break label$59 + } + $11_1 = ($11_1 | 0) != (94 | 0); + $6_1 = $14_1; + break label$57; + } + $11_1 = ($11_1 | 0) != (94 | 0); + HEAP8[($3_1 + 78 | 0) >> 0] = $11_1; + break label$58; + } + $11_1 = ($11_1 | 0) != (94 | 0); + HEAP8[($3_1 + 126 | 0) >> 0] = $11_1; + } + $6_1 = $14_1 + 1 | 0; + } + label$61 : while (1) { + label$62 : { + label$63 : { + $8_1 = HEAPU8[$6_1 >> 0] | 0; + if (($8_1 | 0) == (45 | 0)) { + break label$63 + } + if (!$8_1) { + break label$6 + } + if (($8_1 | 0) != (93 | 0)) { + break label$62 + } + break label$55; + } + $8_1 = 45; + $17_1 = HEAPU8[($6_1 + 1 | 0) >> 0] | 0; + if (!$17_1) { + break label$62 + } + if (($17_1 | 0) == (93 | 0)) { + break label$62 + } + $14_1 = $6_1 + 1 | 0; + label$64 : { + label$65 : { + $6_1 = HEAPU8[($6_1 + -1 | 0) >> 0] | 0; + if ($6_1 >>> 0 < $17_1 >>> 0) { + break label$65 + } + $8_1 = $17_1; + break label$64; + } + label$66 : while (1) { + $6_1 = $6_1 + 1 | 0; + HEAP8[(($3_1 + 32 | 0) + $6_1 | 0) >> 0] = $11_1; + $8_1 = HEAPU8[$14_1 >> 0] | 0; + if ($6_1 >>> 0 < $8_1 >>> 0) { + continue label$66 + } + break label$66; + }; + } + $6_1 = $14_1; + } + HEAP8[(($8_1 + ($3_1 + 32 | 0) | 0) + 1 | 0) >> 0] = $11_1; + $6_1 = $6_1 + 1 | 0; + continue label$61; + }; + } + $14_1 = ($16_1 | 0) == (99 | 0); + $11_1 = $14_1 ? $1_1 + 1 | 0 : 31; + label$67 : { + label$68 : { + label$69 : { + label$70 : { + $16_1 = ($15_1 | 0) != (1 | 0); + if ($16_1) { + break label$70 + } + $8_1 = $10_1; + label$71 : { + if (!$9_1) { + break label$71 + } + $8_1 = $963($11_1 << 2 | 0 | 0) | 0; + if (!$8_1) { + break label$67 + } + } + i64toi32_i32$0 = $3_1; + i64toi32_i32$1 = 0; + HEAP32[(i64toi32_i32$0 + 296 | 0) >> 2] = 0; + HEAP32[(i64toi32_i32$0 + 300 | 0) >> 2] = i64toi32_i32$1; + $1_1 = 0; + label$72 : while (1) { + $13_1 = $8_1; + label$73 : { + label$74 : while (1) { + label$75 : { + label$76 : { + $8_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($8_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$76 + } + HEAP32[$7_1 >> 2] = $8_1 + 1 | 0; + $8_1 = HEAPU8[$8_1 >> 0] | 0; + break label$75; + } + $8_1 = $898($0_1 | 0) | 0; + } + if (!(HEAPU8[(($8_1 + ($3_1 + 32 | 0) | 0) + 1 | 0) >> 0] | 0)) { + break label$73 + } + HEAP8[($3_1 + 27 | 0) >> 0] = $8_1; + $8_1 = $900($3_1 + 28 | 0 | 0, $3_1 + 27 | 0 | 0, 1 | 0, $3_1 + 296 | 0 | 0) | 0; + if (($8_1 | 0) == (-2 | 0)) { + continue label$74 + } + if (($8_1 | 0) == (-1 | 0)) { + break label$68 + } + label$77 : { + if (!$13_1) { + break label$77 + } + HEAP32[($13_1 + ($1_1 << 2 | 0) | 0) >> 2] = HEAP32[($3_1 + 28 | 0) >> 2] | 0; + $1_1 = $1_1 + 1 | 0; + } + if (!$9_1) { + continue label$74 + } + if (($1_1 | 0) != ($11_1 | 0)) { + continue label$74 + } + break label$74; + }; + $11_1 = $11_1 << 1 | 0 | 1 | 0; + $8_1 = $965($13_1 | 0, $11_1 << 2 | 0 | 0) | 0; + if ($8_1) { + continue label$72 + } + break label$68; + } + break label$72; + }; + if (!($902($3_1 + 296 | 0 | 0) | 0)) { + break label$68 + } + $12_1 = 0; + break label$69; + } + label$78 : { + if (!$9_1) { + break label$78 + } + $1_1 = 0; + $8_1 = $963($11_1 | 0) | 0; + if (!$8_1) { + break label$67 + } + label$79 : while (1) { + $12_1 = $8_1; + label$80 : while (1) { + label$81 : { + label$82 : { + $8_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($8_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$82 + } + HEAP32[$7_1 >> 2] = $8_1 + 1 | 0; + $8_1 = HEAPU8[$8_1 >> 0] | 0; + break label$81; + } + $8_1 = $898($0_1 | 0) | 0; + } + label$83 : { + if (HEAPU8[(($8_1 + ($3_1 + 32 | 0) | 0) + 1 | 0) >> 0] | 0) { + break label$83 + } + $13_1 = 0; + break label$69; + } + HEAP8[($12_1 + $1_1 | 0) >> 0] = $8_1; + $1_1 = $1_1 + 1 | 0; + if (($1_1 | 0) != ($11_1 | 0)) { + continue label$80 + } + break label$80; + }; + $13_1 = 0; + $11_1 = $11_1 << 1 | 0 | 1 | 0; + $8_1 = $965($12_1 | 0, $11_1 | 0) | 0; + if (!$8_1) { + break label$6 + } + continue label$79; + }; + } + $1_1 = 0; + label$84 : { + if (!$10_1) { + break label$84 + } + label$85 : while (1) { + label$86 : { + label$87 : { + $8_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($8_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$87 + } + HEAP32[$7_1 >> 2] = $8_1 + 1 | 0; + $8_1 = HEAPU8[$8_1 >> 0] | 0; + break label$86; + } + $8_1 = $898($0_1 | 0) | 0; + } + label$88 : { + if (HEAPU8[(($8_1 + ($3_1 + 32 | 0) | 0) + 1 | 0) >> 0] | 0) { + break label$88 + } + $13_1 = 0; + $12_1 = $10_1; + break label$69; + } + HEAP8[($10_1 + $1_1 | 0) >> 0] = $8_1; + $1_1 = $1_1 + 1 | 0; + continue label$85; + }; + } + label$89 : while (1) { + label$90 : { + label$91 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= (HEAP32[($0_1 + 104 | 0) >> 2] | 0) >>> 0) { + break label$91 + } + HEAP32[$7_1 >> 2] = $1_1 + 1 | 0; + $1_1 = HEAPU8[$1_1 >> 0] | 0; + break label$90; + } + $1_1 = $898($0_1 | 0) | 0; + } + if (HEAPU8[(($1_1 + ($3_1 + 32 | 0) | 0) + 1 | 0) >> 0] | 0) { + continue label$89 + } + break label$89; + }; + $12_1 = 0; + $13_1 = 0; + $1_1 = 0; + } + label$92 : { + label$93 : { + if (HEAP32[($0_1 + 104 | 0) >> 2] | 0) { + break label$93 + } + $8_1 = HEAP32[$7_1 >> 2] | 0; + break label$92; + } + $8_1 = (HEAP32[$7_1 >> 2] | 0) + -1 | 0; + HEAP32[$7_1 >> 2] = $8_1; + } + i64toi32_i32$3 = $0_1; + i64toi32_i32$1 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $599_1 = i64toi32_i32$1; + $599$hi = i64toi32_i32$0; + i64toi32_i32$1 = $8_1 - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1 >> 31 | 0; + $604_1 = i64toi32_i32$1; + $604$hi = i64toi32_i32$0; + i64toi32_i32$0 = $599$hi; + i64toi32_i32$3 = $599_1; + i64toi32_i32$1 = $604$hi; + i64toi32_i32$2 = $604_1; + i64toi32_i32$5 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $22_1 = i64toi32_i32$5; + $22$hi = i64toi32_i32$4; + if (!(i64toi32_i32$5 | i64toi32_i32$4 | 0)) { + break label$5 + } + label$94 : { + i64toi32_i32$4 = $22$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$0 = $22_1; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$2 = $21_1; + if ((i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) | 0) { + break label$94 + } + if ($14_1) { + break label$5 + } + } + label$95 : { + if (!$9_1) { + break label$95 + } + label$96 : { + if ($16_1) { + break label$96 + } + HEAP32[$10_1 >> 2] = $13_1; + break label$95; + } + HEAP32[$10_1 >> 2] = $12_1; + } + if ($14_1) { + break label$46 + } + label$97 : { + if (!$13_1) { + break label$97 + } + HEAP32[($13_1 + ($1_1 << 2 | 0) | 0) >> 2] = 0; + } + label$98 : { + if ($12_1) { + break label$98 + } + $12_1 = 0; + break label$46; + } + HEAP8[($12_1 + $1_1 | 0) >> 0] = 0; + break label$46; + } + $12_1 = 0; + break label$6; + } + $12_1 = 0; + $13_1 = 0; + break label$6; + } + $906($3_1 | 0, $0_1 | 0, $15_1 | 0, 0 | 0); + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $634_1 = i64toi32_i32$0; + $634$hi = i64toi32_i32$4; + i64toi32_i32$0 = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$0 >> 31 | 0; + $640_1 = i64toi32_i32$0; + $640$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = $640$hi; + i64toi32_i32$3 = $640_1; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$5 | 0; + $641$hi = i64toi32_i32$5; + i64toi32_i32$5 = $634$hi; + i64toi32_i32$4 = $634_1; + i64toi32_i32$2 = $641$hi; + i64toi32_i32$3 = i64toi32_i32$1; + if ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) | 0) { + break label$5 + } + if (!$10_1) { + break label$46 + } + if ($15_1 >>> 0 > 2 >>> 0) { + break label$46 + } + i64toi32_i32$3 = $3_1; + i64toi32_i32$4 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$5; + i64toi32_i32$3 = $3_1; + i64toi32_i32$5 = HEAP32[$3_1 >> 2] | 0; + i64toi32_i32$4 = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + $22_1 = i64toi32_i32$5; + $22$hi = i64toi32_i32$4; + label$99 : { + switch ($15_1 | 0) { + default: + i64toi32_i32$4 = $22$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$5 = $21$hi; + HEAPF32[$10_1 >> 2] = Math_fround($947($22_1 | 0, i64toi32_i32$4 | 0, $21_1 | 0, i64toi32_i32$5 | 0)); + break label$46; + case 1: + i64toi32_i32$5 = $22$hi; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$4 = $21$hi; + HEAPF64[$10_1 >> 3] = +$946($22_1 | 0, i64toi32_i32$5 | 0, $21_1 | 0, i64toi32_i32$4 | 0); + break label$46; + case 2: + break label$99; + }; + } + i64toi32_i32$4 = $22$hi; + i64toi32_i32$5 = $10_1; + HEAP32[i64toi32_i32$5 >> 2] = $22_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$4; + i64toi32_i32$4 = $21$hi; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $21_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$4; + } + i64toi32_i32$3 = $0_1; + i64toi32_i32$4 = HEAP32[($0_1 + 120 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[($0_1 + 124 | 0) >> 2] | 0; + $665$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = $665$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$2 = $20_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $667$hi = i64toi32_i32$1; + i64toi32_i32$3 = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) - (HEAP32[($0_1 + 8 | 0) >> 2] | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$3 >> 31 | 0; + $673_1 = i64toi32_i32$3; + $673$hi = i64toi32_i32$1; + i64toi32_i32$1 = $667$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$3 = $673$hi; + i64toi32_i32$2 = $673_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $20_1 = i64toi32_i32$4; + $20$hi = i64toi32_i32$0; + $4_1 = $4_1 + (($10_1 | 0) != (0 | 0)) | 0; + } + $1_1 = $6_1 + 1 | 0; + $6_1 = HEAPU8[($6_1 + 1 | 0) >> 0] | 0; + if ($6_1) { + continue label$7 + } + break label$4; + }; + } + $4_1 = $4_1 ? $4_1 : -1; + } + if (!$9_1) { + break label$4 + } + $964($12_1 | 0); + $964($13_1 | 0); + } + label$102 : { + if (!$5_1) { + break label$102 + } + $979($0_1 | 0); + } + label$103 : { + $19_1 = $3_1 + 304 | 0; + if ($19_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $19_1; + } + return $4_1 | 0; + } + + function $911($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0; + $2_1 = global$0 - 16 | 0; + HEAP32[($2_1 + 12 | 0) >> 2] = $0_1; + $0_1 = $0_1 + (($1_1 << 2 | 0) - ((($1_1 | 0) != (0 | 0)) << 2 | 0) | 0) | 0; + HEAP32[($2_1 + 8 | 0) >> 2] = $0_1 + 4 | 0; + return HEAP32[$0_1 >> 2] | 0 | 0; + } + + function $912($0_1, $1_1, $2_1, $2$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + var i64toi32_i32$0 = 0; + label$1 : { + if (!$0_1) { + break label$1 + } + $1_1 = $1_1 + 2 | 0; + if ($1_1 >>> 0 > 5 >>> 0) { + break label$1 + } + label$2 : { + switch ($1_1 | 0) { + default: + i64toi32_i32$0 = $2$hi; + HEAP8[$0_1 >> 0] = $2_1; + return; + case 1: + i64toi32_i32$0 = $2$hi; + HEAP16[$0_1 >> 1] = $2_1; + return; + case 2: + case 3: + i64toi32_i32$0 = $2$hi; + HEAP32[$0_1 >> 2] = $2_1; + return; + case 4: + break label$1; + case 5: + break label$2; + }; + } + i64toi32_i32$0 = $2$hi; + HEAP32[$0_1 >> 2] = $2_1; + HEAP32[($0_1 + 4 | 0) >> 2] = i64toi32_i32$0; + } + } + + function $913($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + return $910(HEAP32[(0 + 21088 | 0) >> 2] | 0 | 0, $0_1 | 0, $1_1 | 0) | 0 | 0; + } + + function $914($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $3_1 = global$0 - 16 | 0; + $4_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $2_1; + $2_1 = $889($0_1 | 0, $1_1 | 0, $2_1 | 0) | 0; + label$3 : { + $5_1 = $3_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return $2_1 | 0; + } + + function $915($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0; + $1_1 = $923() | 0; + HEAP32[($0_1 + 56 | 0) >> 2] = HEAP32[$1_1 >> 2] | 0; + label$1 : { + $2_1 = HEAP32[$1_1 >> 2] | 0; + if (!$2_1) { + break label$1 + } + HEAP32[($2_1 + 52 | 0) >> 2] = $0_1; + } + HEAP32[$1_1 >> 2] = $0_1; + $924(); + return $0_1 | 0; + } + + function $916($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0; + label$1 : { + label$2 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$2 + } + if ($978($0_1 | 0) | 0) { + break label$1 + } + } + label$3 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= (HEAP32[($0_1 + 8 | 0) >> 2] | 0) >>> 0) { + break label$3 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 + 1 | 0; + return HEAPU8[$1_1 >> 0] | 0 | 0; + } + return $896($0_1 | 0) | 0 | 0; + } + label$4 : { + label$5 : { + $1_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($1_1 >>> 0 >= (HEAP32[($0_1 + 8 | 0) >> 2] | 0) >>> 0) { + break label$5 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 + 1 | 0; + $1_1 = HEAPU8[$1_1 >> 0] | 0; + break label$4; + } + $1_1 = $896($0_1 | 0) | 0; + } + $979($0_1 | 0); + return $1_1 | 0; + } + + function $917($0_1) { + $0_1 = $0_1 | 0; + return 0 | 0; + } + + function $918($0_1, $1_1, $1$hi, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + i64toi32_i32$HIGH_BITS = 0; + return 0 | 0; + } + + function $919($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $4_1 = 0, $3_1 = 0, $5_1 = 0; + $3_1 = HEAP32[($0_1 + 84 | 0) >> 2] | 0; + $4_1 = $2_1 + 256 | 0; + $5_1 = $849($3_1 | 0, 0 | 0, $4_1 | 0) | 0; + $4_1 = $5_1 ? $5_1 - $3_1 | 0 : $4_1; + $2_1 = $4_1 >>> 0 < $2_1 >>> 0 ? $4_1 : $2_1; + $972($1_1 | 0, $3_1 | 0, $2_1 | 0) | 0; + $4_1 = $3_1 + $4_1 | 0; + HEAP32[($0_1 + 84 | 0) >> 2] = $4_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($0_1 + 4 | 0) >> 2] = $3_1 + $2_1 | 0; + return $2_1 | 0; + } + + function $920($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $3_1 = global$0 - 144 | 0; + $4_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + $3_1 = $973($3_1 | 0, 0 | 0, 144 | 0) | 0; + HEAP32[($3_1 + 76 | 0) >> 2] = -1; + HEAP32[($3_1 + 44 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 32 | 0) >> 2] = 153; + HEAP32[($3_1 + 84 | 0) >> 2] = $0_1; + $0_1 = $910($3_1 | 0, $1_1 | 0, $2_1 | 0) | 0; + label$3 : { + $5_1 = $3_1 + 144 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return $0_1 | 0; + } + + function $921($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + return $919($0_1 | 0, $1_1 | 0, $2_1 | 0) | 0 | 0; + } + + function $922($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $3_1 = global$0 - 16 | 0; + $4_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $2_1; + $2_1 = $920($0_1 | 0, $1_1 | 0, $2_1 | 0) | 0; + label$3 : { + $5_1 = $3_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return $2_1 | 0; + } + + function $923() { + $930(27008 | 0); + return 27016 | 0; + } + + function $924() { + $931(27008 | 0); + } + + function $925($0_1) { + $0_1 = $0_1 | 0; + label$1 : { + if ((HEAP32[($0_1 + 76 | 0) >> 2] | 0 | 0) < (0 | 0)) { + break label$1 + } + if (!($978($0_1 | 0) | 0)) { + break label$1 + } + $979($0_1 | 0); + } + return HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0; + } + + function $926($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $4_1 = 0, $5_1 = 0, $7_1 = 0, $6_1 = 0, $8_1 = 0, $10_1 = 0, $9_1 = 0; + label$1 : { + $3_1 = global$0 - 32 | 0; + $9_1 = $3_1; + if ($3_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + $4_1 = HEAP32[($0_1 + 28 | 0) >> 2] | 0; + HEAP32[($3_1 + 16 | 0) >> 2] = $4_1; + $5_1 = HEAP32[($0_1 + 20 | 0) >> 2] | 0; + HEAP32[($3_1 + 28 | 0) >> 2] = $2_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $1_1; + $1_1 = $5_1 - $4_1 | 0; + HEAP32[($3_1 + 20 | 0) >> 2] = $1_1; + $5_1 = $1_1 + $2_1 | 0; + $6_1 = 2; + $1_1 = $3_1 + 16 | 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + if ($932(fimport$8(HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0, $3_1 + 16 | 0 | 0, 2 | 0, $3_1 + 12 | 0 | 0) | 0 | 0) | 0) { + break label$6 + } + label$7 : while (1) { + $4_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + if (($5_1 | 0) == ($4_1 | 0)) { + break label$5 + } + if (($4_1 | 0) <= (-1 | 0)) { + break label$4 + } + $7_1 = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + $8_1 = $4_1 >>> 0 > $7_1 >>> 0; + $1_1 = $8_1 ? $1_1 + 8 | 0 : $1_1; + $7_1 = $4_1 - ($8_1 ? $7_1 : 0) | 0; + HEAP32[$1_1 >> 2] = (HEAP32[$1_1 >> 2] | 0) + $7_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = (HEAP32[($1_1 + 4 | 0) >> 2] | 0) - $7_1 | 0; + $5_1 = $5_1 - $4_1 | 0; + $6_1 = $6_1 - $8_1 | 0; + if (!($932(fimport$8(HEAP32[($0_1 + 60 | 0) >> 2] | 0 | 0, $1_1 | 0, $6_1 | 0, $3_1 + 12 | 0 | 0) | 0 | 0) | 0)) { + continue label$7 + } + break label$7; + }; + } + HEAP32[($3_1 + 12 | 0) >> 2] = -1; + if (($5_1 | 0) != (-1 | 0)) { + break label$4 + } + } + $1_1 = HEAP32[($0_1 + 44 | 0) >> 2] | 0; + HEAP32[($0_1 + 28 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 16 | 0) >> 2] = $1_1 + (HEAP32[($0_1 + 48 | 0) >> 2] | 0) | 0; + $4_1 = $2_1; + break label$3; + } + $4_1 = 0; + HEAP32[($0_1 + 28 | 0) >> 2] = 0; + HEAP32[($0_1 + 16 | 0) >> 2] = 0; + HEAP32[($0_1 + 20 | 0) >> 2] = 0; + HEAP32[$0_1 >> 2] = HEAP32[$0_1 >> 2] | 0 | 32 | 0; + if (($6_1 | 0) == (2 | 0)) { + break label$3 + } + $4_1 = $2_1 - (HEAP32[($1_1 + 4 | 0) >> 2] | 0) | 0; + } + label$8 : { + $10_1 = $3_1 + 32 | 0; + if ($10_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + return $4_1 | 0; + } + + function $927($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0; + $1_1 = 2; + label$1 : { + if ($852($0_1 | 0, 43 | 0) | 0) { + break label$1 + } + $1_1 = (HEAPU8[$0_1 >> 0] | 0 | 0) != (114 | 0); + } + $1_1 = $852($0_1 | 0, 120 | 0) | 0 ? $1_1 | 128 | 0 : $1_1; + $1_1 = $852($0_1 | 0, 101 | 0) | 0 ? $1_1 | 524288 | 0 : $1_1; + $0_1 = HEAPU8[$0_1 >> 0] | 0; + $1_1 = ($0_1 | 0) == (114 | 0) ? $1_1 : $1_1 | 64 | 0; + $1_1 = ($0_1 | 0) == (119 | 0) ? $1_1 | 512 | 0 : $1_1; + return (($0_1 | 0) == (97 | 0) ? $1_1 | 1024 | 0 : $1_1) | 0; + } + + function $928($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + return $0_1 | 0; + } + + function $929($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + return $928($0_1 | 0, $1_1 | 0) | 0 | 0; + } + + function $930($0_1) { + $0_1 = $0_1 | 0; + } + + function $931($0_1) { + $0_1 = $0_1 | 0; + } + + function $932($0_1) { + $0_1 = $0_1 | 0; + label$1 : { + if ($0_1) { + break label$1 + } + return 0 | 0; + } + HEAP32[($842() | 0) >> 2] = $0_1; + return -1 | 0; + } + + function $933($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, $6_1 = 0, $7_1 = 0, $5_1 = 0, $11$hi = 0, $11_1 = 0, $12$hi = 0, $13$hi = 0, $12_1 = 0, $13_1 = 0, i64toi32_i32$6 = 0, $14$hi = 0, $8_1 = 0, $125_1 = 0, $126_1 = 0, $128_1 = 0, $129_1 = 0, $131_1 = 0, $132_1 = 0, $133_1 = 0, $134_1 = 0, $135_1 = 0, $14_1 = 0, $136_1 = 0, $137_1 = 0, $138_1 = 0, $139_1 = 0, $140_1 = 0, $141_1 = 0, $142_1 = 0, $143_1 = 0, $144_1 = 0, $145_1 = 0, $146_1 = 0, $147_1 = 0, $10_1 = 0, $9_1 = 0, $27_1 = 0, $33_1 = 0, $34$hi = 0, $38_1 = 0, $45_1 = 0, $49_1 = 0, $50$hi = 0, $54_1 = 0, $59_1 = 0, $61_1 = 0, $69_1 = 0, $71_1 = 0, $79_1 = 0, $79$hi = 0, $85_1 = 0, $85$hi = 0, $89_1 = 0, $89$hi = 0, $99_1 = 0, $99$hi = 0, $127_1 = 0, $130_1 = 0, $157_1 = 0, $158_1 = 0, $158$hi = 0, $159_1 = 0, $159$hi = 0, $166$hi = 0, $169$hi = 0, $189_1 = 0, $190_1 = 0, $190$hi = 0, $191_1 = 0, $191$hi = 0, $198$hi = 0, $201$hi = 0, $214_1 = 0, $214$hi = 0, $216$hi = 0, $220_1 = 0, $220$hi = 0, $222$hi = 0, $248_1 = 0, $248$hi = 0, $250_1 = 0, $250$hi = 0, $254_1 = 0, $254$hi = 0, $256_1 = 0, $257$hi = 0, $275$hi = 0, $278_1 = 0, $279$hi = 0, $288_1 = 0, $289_1 = 0, $289$hi = 0, $290_1 = 0, $290$hi = 0, $297$hi = 0, $300$hi = 0, $315_1 = 0, $315$hi = 0, $321_1 = 0, $322$hi = 0, $328_1 = 0, $328$hi = 0, $330$hi = 0, $331_1 = 0, $331$hi = 0, $333_1 = 0, $333$hi = 0, $360_1 = 0, $360$hi = 0, $362_1 = 0, $362$hi = 0, $366_1 = 0, $366$hi = 0, $368_1 = 0, $369$hi = 0, $376$hi = 0, $378_1 = 0, $378$hi = 0, $381$hi = 0, $382_1 = 0, $382$hi = 0, $384_1 = 0, $384$hi = 0, $386$hi = 0, $394$hi = 0, $398_1 = 0, $399$hi = 0, $400_1 = 0, $400$hi = 0, $148_1 = 0, $411_1 = 0, $412$hi = 0; + label$1 : { + $5_1 = global$0 - 112 | 0; + $9_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $9_1; + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $11_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $11$hi = i64toi32_i32$1; + label$3 : { + label$4 : { + label$5 : { + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $12_1 = i64toi32_i32$4; + $12$hi = i64toi32_i32$5; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = -1; + $27_1 = (i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$5 = 2147483647; + i64toi32_i32$0 = -1; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $13_1 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + $13$hi = i64toi32_i32$5; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$0 = $1_1; + $33_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $34$hi = i64toi32_i32$1; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$0 = $13_1; + i64toi32_i32$5 = $34$hi; + i64toi32_i32$3 = $33_1; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $12_1 = i64toi32_i32$5; + $12$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$1 = 2147418111; + i64toi32_i32$3 = -1; + $38_1 = i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$3 = i64toi32_i32$5; + i64toi32_i32$2 = 2147418111; + i64toi32_i32$1 = -1; + if ((i64toi32_i32$5 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) | 0 ? $27_1 : $38_1) { + break label$5 + } + i64toi32_i32$3 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$4 = -1; + i64toi32_i32$2 = -1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $12_1 = i64toi32_i32$0; + $12$hi = i64toi32_i32$5; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$1 = -1; + i64toi32_i32$2 = -1; + $45_1 = (i64toi32_i32$0 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$1 | 0) | 0; + i64toi32_i32$3 = $11$hi; + i64toi32_i32$3 = i64toi32_i32$5; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = i64toi32_i32$5; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = $3_1; + $49_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $50$hi = i64toi32_i32$2; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$1 = $11_1; + i64toi32_i32$3 = $50$hi; + i64toi32_i32$5 = $49_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$1 = -1; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $12_1 = i64toi32_i32$3; + $12$hi = i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$2 = 2147418111; + i64toi32_i32$5 = -1; + $54_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$4 = 2147418111; + i64toi32_i32$2 = -1; + if ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$4 | 0) | 0 ? $45_1 : $54_1) { + break label$4 + } + } + label$6 : { + i64toi32_i32$5 = $1$hi; + $59_1 = !($1_1 | i64toi32_i32$5 | 0); + i64toi32_i32$5 = $13$hi; + i64toi32_i32$2 = $13_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$4 = 0; + $61_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$4 = $13_1; + i64toi32_i32$5 = 2147418112; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$4 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) | 0 ? $59_1 : $61_1) { + break label$6 + } + i64toi32_i32$4 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 32768; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $4_1 = i64toi32_i32$0 | i64toi32_i32$5 | 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + $3_1 = $1_1; + $3$hi = i64toi32_i32$2; + break label$3; + } + label$7 : { + i64toi32_i32$2 = $3$hi; + $69_1 = !($3_1 | i64toi32_i32$2 | 0); + i64toi32_i32$2 = $11$hi; + i64toi32_i32$4 = $11_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$5 = 0; + $71_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$5 = $11_1; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$5 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) | 0 ? $69_1 : $71_1) { + break label$7 + } + i64toi32_i32$5 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$4 = 32768; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $4_1 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4$hi = i64toi32_i32$4; + break label$3; + } + label$8 : { + i64toi32_i32$4 = $1$hi; + i64toi32_i32$4 = $13$hi; + i64toi32_i32$5 = $13_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = i64toi32_i32$4 ^ i64toi32_i32$0 | 0; + $79_1 = i64toi32_i32$5 ^ i64toi32_i32$2 | 0; + $79$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$5 = $79$hi; + i64toi32_i32$2 = $79_1; + i64toi32_i32$5 = i64toi32_i32$0 | i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$0 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$4 | 0) | 0) { + break label$8 + } + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$5 = i64toi32_i32$0 ^ i64toi32_i32$5 | 0; + $85_1 = i64toi32_i32$2 ^ i64toi32_i32$4 | 0; + $85$hi = i64toi32_i32$5; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$2 = i64toi32_i32$5 ^ i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$0 ^ i64toi32_i32$4 | 0; + i64toi32_i32$0 = -2147483648; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = i64toi32_i32$2 ^ i64toi32_i32$0 | 0; + $89_1 = i64toi32_i32$5 ^ i64toi32_i32$4 | 0; + $89$hi = i64toi32_i32$0; + i64toi32_i32$0 = $85$hi; + i64toi32_i32$2 = $85_1; + i64toi32_i32$5 = $89$hi; + i64toi32_i32$4 = $89_1; + i64toi32_i32$5 = i64toi32_i32$0 | i64toi32_i32$5 | 0; + $6_1 = !(i64toi32_i32$2 | i64toi32_i32$4 | 0 | i64toi32_i32$5 | 0); + i64toi32_i32$1 = $6_1; + i64toi32_i32$5 = 2147450880; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$4 = i64toi32_i32$1 ? 0 : $2_1; + i64toi32_i32$0 = i64toi32_i32$1 ? i64toi32_i32$5 : i64toi32_i32$2; + $4_1 = i64toi32_i32$4; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = i64toi32_i32$1 ? 0 : $1_1; + i64toi32_i32$1 = i64toi32_i32$1 ? i64toi32_i32$0 : i64toi32_i32$4; + $3_1 = i64toi32_i32$5; + $3$hi = i64toi32_i32$1; + break label$3; + } + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$2 = $11_1; + i64toi32_i32$5 = 2147418112; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = i64toi32_i32$1 ^ i64toi32_i32$5 | 0; + $99_1 = i64toi32_i32$2 ^ i64toi32_i32$0 | 0; + $99$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = $99$hi; + i64toi32_i32$0 = $99_1; + i64toi32_i32$2 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + if (!(i64toi32_i32$1 | i64toi32_i32$0 | 0 | i64toi32_i32$2 | 0)) { + break label$3 + } + label$9 : { + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $13$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$0 = $13_1; + i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$5 | 0) | 0) { + break label$9 + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$5 = $11_1; + i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$5 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | 0) { + break label$3 + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + $3_1 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + $3$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $4_1 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $4$hi = i64toi32_i32$5; + break label$3; + } + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$2 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + if (!!(i64toi32_i32$1 | i64toi32_i32$0 | 0 | i64toi32_i32$2 | 0)) { + break label$4 + } + i64toi32_i32$2 = $1$hi; + $3_1 = $1_1; + $3$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + $4_1 = $2_1; + $4$hi = i64toi32_i32$2; + break label$3; + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + $127_1 = i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$0 = $11_1; + i64toi32_i32$2 = $13$hi; + i64toi32_i32$1 = $13_1; + $130_1 = i64toi32_i32$5 >>> 0 > i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$1 = $11_1; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = $13_1; + $7_1 = (i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) | 0 ? $127_1 : $130_1; + i64toi32_i32$4 = $7_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = i64toi32_i32$4 ? $3_1 : $1_1; + i64toi32_i32$2 = i64toi32_i32$4 ? i64toi32_i32$1 : i64toi32_i32$0; + $11_1 = i64toi32_i32$5; + $11$hi = i64toi32_i32$2; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$1 = i64toi32_i32$4 ? $4_1 : $2_1; + i64toi32_i32$4 = i64toi32_i32$4 ? i64toi32_i32$2 : i64toi32_i32$5; + $13_1 = i64toi32_i32$1; + $13$hi = i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$1 = 65535; + i64toi32_i32$2 = -1; + i64toi32_i32$1 = i64toi32_i32$4 & i64toi32_i32$1 | 0; + $12_1 = i64toi32_i32$0 & i64toi32_i32$2 | 0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$5 = $7_1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = i64toi32_i32$5 ? $2_1 : $4_1; + i64toi32_i32$4 = i64toi32_i32$5 ? i64toi32_i32$1 : i64toi32_i32$0; + $2_1 = i64toi32_i32$2; + $2$hi = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 48; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $125_1 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + $125_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$0 | 0) | 0; + } + $8_1 = $125_1 & 32767 | 0; + label$10 : { + i64toi32_i32$2 = $13$hi; + i64toi32_i32$4 = $13_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 48; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $126_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $126_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$0 | 0) | 0; + } + $6_1 = $126_1 & 32767 | 0; + if ($6_1) { + break label$10 + } + $157_1 = $5_1 + 96 | 0; + i64toi32_i32$5 = $11$hi; + $158_1 = $11_1; + $158$hi = i64toi32_i32$5; + i64toi32_i32$5 = $12$hi; + $159_1 = $12_1; + $159$hi = i64toi32_i32$5; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$5 = $12$hi; + $6_1 = !($12_1 | i64toi32_i32$5 | 0); + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = $11$hi; + i64toi32_i32$4 = $12$hi; + i64toi32_i32$1 = i64toi32_i32$0 ? $11_1 : $12_1; + i64toi32_i32$2 = i64toi32_i32$0 ? i64toi32_i32$5 : i64toi32_i32$4; + i64toi32_i32$5 = Math_clz32(i64toi32_i32$2); + i64toi32_i32$0 = 0; + if ((i64toi32_i32$5 | 0) == (32 | 0)) { + $128_1 = Math_clz32(i64toi32_i32$1) + 32 | 0 + } else { + $128_1 = i64toi32_i32$5 + } + $166$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $169$hi = i64toi32_i32$0; + i64toi32_i32$0 = $166$hi; + i64toi32_i32$1 = $128_1; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$5 = $6_1 << 6 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $6_1 = i64toi32_i32$4; + i64toi32_i32$3 = $158$hi; + i64toi32_i32$1 = $159$hi; + $934($157_1 | 0, $158_1 | 0, i64toi32_i32$3 | 0, $159_1 | 0, i64toi32_i32$1 | 0, i64toi32_i32$4 + -15 | 0 | 0); + $6_1 = 16 - i64toi32_i32$4 | 0; + i64toi32_i32$0 = $5_1 + 104 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$3; + i64toi32_i32$0 = $5_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 96 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 100 | 0) >> 2] | 0; + $11_1 = i64toi32_i32$3; + $11$hi = i64toi32_i32$1; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$5 = i64toi32_i32$2 ? $1_1 : $3_1; + i64toi32_i32$0 = i64toi32_i32$2 ? i64toi32_i32$1 : i64toi32_i32$3; + $3_1 = i64toi32_i32$5; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$5 = 65535; + i64toi32_i32$1 = -1; + i64toi32_i32$5 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + $1_1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + $1$hi = i64toi32_i32$5; + label$11 : { + if ($8_1) { + break label$11 + } + $189_1 = $5_1 + 80 | 0; + i64toi32_i32$5 = $3$hi; + $190_1 = $3_1; + $190$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + $191_1 = $1_1; + $191$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = $1$hi; + $7_1 = !($1_1 | i64toi32_i32$5 | 0); + i64toi32_i32$3 = $7_1; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = i64toi32_i32$3 ? $3_1 : $1_1; + i64toi32_i32$0 = i64toi32_i32$3 ? i64toi32_i32$5 : i64toi32_i32$2; + i64toi32_i32$5 = Math_clz32(i64toi32_i32$0); + i64toi32_i32$3 = 0; + if ((i64toi32_i32$5 | 0) == (32 | 0)) { + $129_1 = Math_clz32(i64toi32_i32$1) + 32 | 0 + } else { + $129_1 = i64toi32_i32$5 + } + $198$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $201$hi = i64toi32_i32$3; + i64toi32_i32$3 = $198$hi; + i64toi32_i32$1 = $129_1; + i64toi32_i32$0 = $201$hi; + i64toi32_i32$5 = $7_1 << 6 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $7_1 = i64toi32_i32$2; + i64toi32_i32$4 = $190$hi; + i64toi32_i32$1 = $191$hi; + $934($189_1 | 0, $190_1 | 0, i64toi32_i32$4 | 0, $191_1 | 0, i64toi32_i32$1 | 0, i64toi32_i32$2 + -15 | 0 | 0); + $8_1 = 16 - i64toi32_i32$2 | 0; + i64toi32_i32$3 = $5_1 + 88 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$1; + $1$hi = i64toi32_i32$4; + i64toi32_i32$3 = $5_1; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 80 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 84 | 0) >> 2] | 0; + $3_1 = i64toi32_i32$4; + $3$hi = i64toi32_i32$1; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 3; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $131_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $131_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + $214_1 = $131_1; + $214$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 61; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $132_1 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + $132_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$0 | 0) | 0; + } + $216$hi = i64toi32_i32$3; + i64toi32_i32$3 = $214$hi; + i64toi32_i32$4 = $214_1; + i64toi32_i32$1 = $216$hi; + i64toi32_i32$5 = $132_1; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + i64toi32_i32$3 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + i64toi32_i32$4 = 524288; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + $4_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $4$hi = i64toi32_i32$4; + i64toi32_i32$4 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 3; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + $133_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $133_1 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + } + $220_1 = $133_1; + $220$hi = i64toi32_i32$3; + i64toi32_i32$3 = $11$hi; + i64toi32_i32$4 = $11_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 61; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $134_1 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + $134_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$0 | 0) | 0; + } + $222$hi = i64toi32_i32$1; + i64toi32_i32$1 = $220$hi; + i64toi32_i32$3 = $220_1; + i64toi32_i32$4 = $222$hi; + i64toi32_i32$5 = $134_1; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + $1_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $1$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 3; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + $135_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $135_1 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + } + $3_1 = $135_1; + $3$hi = i64toi32_i32$3; + i64toi32_i32$3 = $13$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $13$hi; + i64toi32_i32$4 = $13_1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$5 = $2_1; + i64toi32_i32$1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $12_1 = i64toi32_i32$4 ^ i64toi32_i32$5 | 0; + $12$hi = i64toi32_i32$1; + label$12 : { + $7_1 = $6_1 - $8_1 | 0; + if (!$7_1) { + break label$12 + } + label$13 : { + if ($7_1 >>> 0 <= 127 >>> 0) { + break label$13 + } + i64toi32_i32$1 = 0; + $4_1 = 0; + $4$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $3_1 = 1; + $3$hi = i64toi32_i32$1; + break label$12; + } + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$4 = $4$hi; + $934($5_1 + 64 | 0 | 0, $3_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$4 | 0, 128 - $7_1 | 0 | 0); + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + $942($5_1 + 48 | 0 | 0, $3_1 | 0, i64toi32_i32$4 | 0, $4_1 | 0, i64toi32_i32$1 | 0, $7_1 | 0); + i64toi32_i32$3 = $5_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 48 | 0) >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 52 | 0) >> 2] | 0; + $248_1 = i64toi32_i32$1; + $248$hi = i64toi32_i32$4; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 64 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 68 | 0) >> 2] | 0; + $250_1 = i64toi32_i32$4; + $250$hi = i64toi32_i32$1; + i64toi32_i32$3 = (i64toi32_i32$3 + 64 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $254_1 = i64toi32_i32$1; + $254$hi = i64toi32_i32$4; + i64toi32_i32$4 = $250$hi; + i64toi32_i32$3 = $250_1; + i64toi32_i32$1 = $254$hi; + i64toi32_i32$5 = $254_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 0; + $256_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$3 | 0) | 0; + i64toi32_i32$4 = 0; + $257$hi = i64toi32_i32$4; + i64toi32_i32$4 = $248$hi; + i64toi32_i32$5 = $248_1; + i64toi32_i32$1 = $257$hi; + i64toi32_i32$3 = $256_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $3_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $3$hi = i64toi32_i32$1; + i64toi32_i32$4 = ($5_1 + 48 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$1; + $4$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$1 = 524288; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $14_1 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + $14$hi = i64toi32_i32$1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$5 = $11_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 3; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $136_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $136_1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + $2_1 = $136_1; + $2$hi = i64toi32_i32$4; + label$14 : { + label$15 : { + i64toi32_i32$4 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$4 | 0) > (i64toi32_i32$5 | 0)) { + $137_1 = 1 + } else { + if ((i64toi32_i32$4 | 0) >= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 <= i64toi32_i32$3 >>> 0) { + $138_1 = 0 + } else { + $138_1 = 1 + } + $139_1 = $138_1; + } else { + $139_1 = 0 + } + $137_1 = $139_1; + } + if ($137_1) { + break label$15 + } + label$16 : { + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$0 = i64toi32_i32$3 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$2 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$1 - i64toi32_i32$2 | 0; + $1_1 = i64toi32_i32$0; + $1$hi = i64toi32_i32$2; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$1 = $14_1; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + $275$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$5 = $3_1; + $278_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $279$hi = i64toi32_i32$2; + i64toi32_i32$2 = $275$hi; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$0 = $279$hi; + i64toi32_i32$1 = $278_1; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$1 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0; + $3_1 = i64toi32_i32$3; + $3$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + if (!!(i64toi32_i32$2 | i64toi32_i32$1 | 0 | i64toi32_i32$5 | 0)) { + break label$16 + } + i64toi32_i32$5 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $4_1 = 0; + $4$hi = i64toi32_i32$5; + break label$3; + } + i64toi32_i32$5 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$2 = 524287; + i64toi32_i32$1 = -1; + if (i64toi32_i32$5 >>> 0 > i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$4 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$14 + } + $288_1 = $5_1 + 32 | 0; + i64toi32_i32$4 = $1$hi; + $289_1 = $1_1; + $289$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + $290_1 = $3_1; + $290$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$4 = $3$hi; + $7_1 = !($3_1 | i64toi32_i32$4 | 0); + i64toi32_i32$0 = $7_1; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$2 = i64toi32_i32$0 ? $1_1 : $3_1; + i64toi32_i32$1 = i64toi32_i32$0 ? i64toi32_i32$4 : i64toi32_i32$5; + i64toi32_i32$4 = Math_clz32(i64toi32_i32$1); + i64toi32_i32$0 = 0; + if ((i64toi32_i32$4 | 0) == (32 | 0)) { + $140_1 = Math_clz32(i64toi32_i32$2) + 32 | 0 + } else { + $140_1 = i64toi32_i32$4 + } + $297$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $300$hi = i64toi32_i32$0; + i64toi32_i32$0 = $297$hi; + i64toi32_i32$2 = $140_1; + i64toi32_i32$1 = $300$hi; + i64toi32_i32$4 = $7_1 << 6 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $7_1 = i64toi32_i32$5 + -12 | 0; + i64toi32_i32$3 = $289$hi; + i64toi32_i32$2 = $290$hi; + $934($288_1 | 0, $289_1 | 0, i64toi32_i32$3 | 0, $290_1 | 0, i64toi32_i32$2 | 0, $7_1 | 0); + $6_1 = $6_1 - $7_1 | 0; + i64toi32_i32$0 = $5_1 + 40 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $3_1 = i64toi32_i32$2; + $3$hi = i64toi32_i32$3; + i64toi32_i32$0 = $5_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$2; + break label$14; + } + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$3 = $14$hi; + i64toi32_i32$4 = $14_1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $315_1 = i64toi32_i32$1; + $315$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$4 = $3_1; + $321_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $322$hi = i64toi32_i32$5; + i64toi32_i32$5 = $315$hi; + i64toi32_i32$4 = $315_1; + i64toi32_i32$1 = $322$hi; + i64toi32_i32$2 = $321_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $3_1 = i64toi32_i32$0; + $3$hi = i64toi32_i32$3; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$4 = 1048576; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + if (!(i64toi32_i32$5 & i64toi32_i32$2 | 0 | i64toi32_i32$4 | 0)) { + break label$14 + } + i64toi32_i32$4 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$1 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $141_1 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + $141_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $328_1 = $141_1; + $328$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 63; + i64toi32_i32$1 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $142_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$1 | 0) | 0; + $142_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $330$hi = i64toi32_i32$3; + i64toi32_i32$3 = $328$hi; + i64toi32_i32$5 = $328_1; + i64toi32_i32$4 = $330$hi; + i64toi32_i32$2 = $142_1; + i64toi32_i32$4 = i64toi32_i32$3 | i64toi32_i32$4 | 0; + $331_1 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + $331$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$5 = i64toi32_i32$4 & i64toi32_i32$5 | 0; + $333_1 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $333$hi = i64toi32_i32$5; + i64toi32_i32$5 = $331$hi; + i64toi32_i32$4 = $331_1; + i64toi32_i32$3 = $333$hi; + i64toi32_i32$2 = $333_1; + i64toi32_i32$3 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $1_1 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $1$hi = i64toi32_i32$3; + $6_1 = $6_1 + 1 | 0; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$1 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $143_1 = i64toi32_i32$3 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$3 >>> i64toi32_i32$1 | 0; + $143_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + $3_1 = $143_1; + $3$hi = i64toi32_i32$4; + } + i64toi32_i32$4 = $13$hi; + i64toi32_i32$3 = $13_1; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = i64toi32_i32$4 & i64toi32_i32$5 | 0; + $4_1 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $4$hi = i64toi32_i32$5; + label$17 : { + if (($6_1 | 0) < (32767 | 0)) { + break label$17 + } + i64toi32_i32$5 = $4$hi; + i64toi32_i32$4 = $4_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $4_1 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $4$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $3_1 = 0; + $3$hi = i64toi32_i32$3; + break label$3; + } + $7_1 = 0; + label$18 : { + label$19 : { + if (($6_1 | 0) <= (0 | 0)) { + break label$19 + } + $7_1 = $6_1; + break label$18; + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$4 = $3$hi; + $934($5_1 + 16 | 0 | 0, $1_1 | 0, i64toi32_i32$3 | 0, $3_1 | 0, i64toi32_i32$4 | 0, $6_1 + 127 | 0 | 0); + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + $942($5_1 | 0, $1_1 | 0, i64toi32_i32$4 | 0, $3_1 | 0, i64toi32_i32$3 | 0, 1 - $6_1 | 0 | 0); + i64toi32_i32$5 = $5_1; + i64toi32_i32$3 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $360_1 = i64toi32_i32$3; + $360$hi = i64toi32_i32$4; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 16 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 20 | 0) >> 2] | 0; + $362_1 = i64toi32_i32$4; + $362$hi = i64toi32_i32$3; + i64toi32_i32$5 = (i64toi32_i32$5 + 16 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $366_1 = i64toi32_i32$3; + $366$hi = i64toi32_i32$4; + i64toi32_i32$4 = $362$hi; + i64toi32_i32$5 = $362_1; + i64toi32_i32$3 = $366$hi; + i64toi32_i32$2 = $366_1; + i64toi32_i32$3 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 0; + $368_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$5 | 0) | 0; + i64toi32_i32$4 = 0; + $369$hi = i64toi32_i32$4; + i64toi32_i32$4 = $360$hi; + i64toi32_i32$2 = $360_1; + i64toi32_i32$3 = $369$hi; + i64toi32_i32$5 = $368_1; + i64toi32_i32$3 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + $1_1 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $1$hi = i64toi32_i32$3; + i64toi32_i32$4 = $5_1 + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $3_1 = i64toi32_i32$3; + $3$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 3; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $144_1 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + $144_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$1 | 0) | 0; + } + i64toi32_i32$2 = $144_1; + i64toi32_i32$4 = 65535; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $376$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = $376$hi; + i64toi32_i32$3 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$2 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $378_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $378$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = $7_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 48; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $145_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$1 | 0) | 0; + $145_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $381$hi = i64toi32_i32$3; + i64toi32_i32$3 = $378$hi; + i64toi32_i32$2 = $378_1; + i64toi32_i32$4 = $381$hi; + i64toi32_i32$5 = $145_1; + i64toi32_i32$4 = i64toi32_i32$3 | i64toi32_i32$4 | 0; + $382_1 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $382$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 3; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $146_1 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + $146_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $384_1 = $146_1; + $384$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 61; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $147_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$1 | 0) | 0; + $147_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $386$hi = i64toi32_i32$3; + i64toi32_i32$3 = $384$hi; + i64toi32_i32$2 = $384_1; + i64toi32_i32$4 = $386$hi; + i64toi32_i32$5 = $147_1; + i64toi32_i32$4 = i64toi32_i32$3 | i64toi32_i32$4 | 0; + $4_1 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $4$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + $6_1 = $1_1 & 7 | 0; + i64toi32_i32$4 = 0; + $394$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$2 = $394$hi; + i64toi32_i32$5 = $6_1 >>> 0 > 4 >>> 0; + i64toi32_i32$1 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $3_1 = i64toi32_i32$1; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$5 = $4_1; + $398_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $399$hi = i64toi32_i32$4; + i64toi32_i32$4 = $382$hi; + i64toi32_i32$5 = $382_1; + i64toi32_i32$0 = $399$hi; + i64toi32_i32$3 = $398_1; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $400_1 = i64toi32_i32$2; + $400$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$4 = $3_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + i64toi32_i32$0 = ($6_1 | 0) == (4 | 0); + $148_1 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = i64toi32_i32$0 ? $148_1 : 0; + i64toi32_i32$1 = i64toi32_i32$0 ? i64toi32_i32$5 : i64toi32_i32$4; + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $3_1 = i64toi32_i32$4; + $3$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $1_1; + $411_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $412$hi = i64toi32_i32$1; + i64toi32_i32$1 = $400$hi; + i64toi32_i32$5 = $400_1; + i64toi32_i32$2 = $412$hi; + i64toi32_i32$0 = $411_1; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $4_1 = i64toi32_i32$3; + $4$hi = i64toi32_i32$4; + } + i64toi32_i32$4 = $3$hi; + i64toi32_i32$5 = $0_1; + HEAP32[i64toi32_i32$5 >> 2] = $3_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $4_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$4; + label$20 : { + $10_1 = $5_1 + 112 | 0; + if ($10_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + } + + function $934($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$3 = 0, $4$hi = 0, $18_1 = 0, $20_1 = 0, $21_1 = 0, $22_1 = 0, $11$hi = 0, $18$hi = 0, $19_1 = 0, $19$hi = 0, $4_1 = 0, $24$hi = 0; + label$1 : { + label$2 : { + if (!($3_1 & 64 | 0)) { + break label$2 + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = 0; + $11$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$3 = $3_1 + -64 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $18_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $18_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $2_1 = $18_1; + $2$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$1; + } + if (!$3_1) { + break label$1 + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = 0; + $18$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$3 = 64 - $3_1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $20_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $20_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $19_1 = $20_1; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = 0; + $4_1 = $3_1; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $21_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $21_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $24$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $19_1; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$3 = $21_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $2_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $2$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $22_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $22_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $1_1 = $22_1; + $1$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $1_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $2_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + } + + function $935($0_1, $0$hi, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0, $5$hi = 0, $6$hi = 0, $35_1 = 0, $36_1 = 0, $37_1 = 0, $38_1 = 0, $39_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, $8_1 = 0, $12_1 = 0, $17_1 = 0, $21_1 = 0, $27_1 = 0, $27$hi = 0, $30_1 = 0, $30$hi = 0, $40_1 = 0, $50_1 = 0, $50$hi = 0, $53_1 = 0, $53$hi = 0, $58_1 = 0, $68_1 = 0, $68$hi = 0, $71_1 = 0, $71$hi = 0; + $4_1 = 1; + label$1 : { + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 0; + $8_1 = (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$0 = 2147483647; + i64toi32_i32$1 = -1; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $5_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $5$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$1 = 0; + $12_1 = i64toi32_i32$0 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) | 0 ? $8_1 : $12_1) { + break label$1 + } + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 0; + $17_1 = (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$2 = -1; + i64toi32_i32$1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $6_1 = i64toi32_i32$0 & i64toi32_i32$2 | 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$3 = $6_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$2 = 0; + $21_1 = i64toi32_i32$1 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$3 >>> 0 > i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$2 = $6_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) | 0 ? $17_1 : $21_1) { + break label$1 + } + label$2 : { + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $27_1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $27$hi = i64toi32_i32$3; + i64toi32_i32$3 = $6$hi; + i64toi32_i32$3 = $5$hi; + i64toi32_i32$3 = $6$hi; + i64toi32_i32$2 = $6_1; + i64toi32_i32$0 = $5$hi; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + $30_1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $30$hi = i64toi32_i32$0; + i64toi32_i32$0 = $27$hi; + i64toi32_i32$3 = $27_1; + i64toi32_i32$2 = $30$hi; + i64toi32_i32$1 = $30_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + if (!!(i64toi32_i32$3 | i64toi32_i32$1 | 0 | i64toi32_i32$2 | 0)) { + break label$2 + } + return 0 | 0; + } + label$3 : { + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$3 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$3 | 0) < (i64toi32_i32$0 | 0)) { + $35_1 = 1 + } else { + if ((i64toi32_i32$3 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$1 >>> 0) { + $36_1 = 0 + } else { + $36_1 = 1 + } + $37_1 = $36_1; + } else { + $37_1 = 0 + } + $35_1 = $37_1; + } + if ($35_1) { + break label$3 + } + $4_1 = -1; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $2_1; + $40_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$2 | 0)) { + $38_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$0 >>> 0 >= i64toi32_i32$3 >>> 0) { + $39_1 = 0 + } else { + $39_1 = 1 + } + $41_1 = $39_1; + } else { + $41_1 = 0 + } + $38_1 = $41_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $3_1; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0 ? $40_1 : $38_1) { + break label$1 + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = i64toi32_i32$3 ^ i64toi32_i32$0 | 0; + $50_1 = i64toi32_i32$2 ^ i64toi32_i32$1 | 0; + $50$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = i64toi32_i32$0 ^ i64toi32_i32$2 | 0; + $53_1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $53$hi = i64toi32_i32$2; + i64toi32_i32$2 = $50$hi; + i64toi32_i32$0 = $50_1; + i64toi32_i32$3 = $53$hi; + i64toi32_i32$1 = $53_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + return (i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | 0 | 0; + } + $4_1 = -1; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $2_1; + $58_1 = i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 > i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$2 | 0)) { + $42_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$0 >>> 0 <= i64toi32_i32$3 >>> 0) { + $43_1 = 0 + } else { + $43_1 = 1 + } + $44_1 = $43_1; + } else { + $44_1 = 0 + } + $42_1 = $44_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $3_1; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0 ? $58_1 : $42_1) { + break label$1 + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = i64toi32_i32$3 ^ i64toi32_i32$0 | 0; + $68_1 = i64toi32_i32$2 ^ i64toi32_i32$1 | 0; + $68$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = i64toi32_i32$0 ^ i64toi32_i32$2 | 0; + $71_1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $71$hi = i64toi32_i32$2; + i64toi32_i32$2 = $68$hi; + i64toi32_i32$0 = $68_1; + i64toi32_i32$3 = $71$hi; + i64toi32_i32$1 = $71_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + $4_1 = (i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | 0; + } + return $4_1 | 0; + } + + function $936($0_1, $0$hi, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $5_1 = 0, $6_1 = 0, $4_1 = 0, $5$hi = 0, $6$hi = 0, $35_1 = 0, $36_1 = 0, $37_1 = 0, $38_1 = 0, $39_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, $8_1 = 0, $12_1 = 0, $17_1 = 0, $21_1 = 0, $27_1 = 0, $27$hi = 0, $30_1 = 0, $30$hi = 0, $40_1 = 0, $50_1 = 0, $50$hi = 0, $53_1 = 0, $53$hi = 0, $58_1 = 0, $68_1 = 0, $68$hi = 0, $71_1 = 0, $71$hi = 0; + $4_1 = -1; + label$1 : { + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 0; + $8_1 = (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$0 = 2147483647; + i64toi32_i32$1 = -1; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $5_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $5$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$1 = 0; + $12_1 = i64toi32_i32$0 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) | 0 ? $8_1 : $12_1) { + break label$1 + } + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 0; + $17_1 = (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$2 = -1; + i64toi32_i32$1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $6_1 = i64toi32_i32$0 & i64toi32_i32$2 | 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$3 = $6_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$2 = 0; + $21_1 = i64toi32_i32$1 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$3 >>> 0 > i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$2 = $6_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) | 0 ? $17_1 : $21_1) { + break label$1 + } + label$2 : { + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $27_1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $27$hi = i64toi32_i32$3; + i64toi32_i32$3 = $6$hi; + i64toi32_i32$3 = $5$hi; + i64toi32_i32$3 = $6$hi; + i64toi32_i32$2 = $6_1; + i64toi32_i32$0 = $5$hi; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + $30_1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $30$hi = i64toi32_i32$0; + i64toi32_i32$0 = $27$hi; + i64toi32_i32$3 = $27_1; + i64toi32_i32$2 = $30$hi; + i64toi32_i32$1 = $30_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + if (!!(i64toi32_i32$3 | i64toi32_i32$1 | 0 | i64toi32_i32$2 | 0)) { + break label$2 + } + return 0 | 0; + } + label$3 : { + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$3 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$3 | 0) < (i64toi32_i32$0 | 0)) { + $35_1 = 1 + } else { + if ((i64toi32_i32$3 | 0) <= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 >= i64toi32_i32$1 >>> 0) { + $36_1 = 0 + } else { + $36_1 = 1 + } + $37_1 = $36_1; + } else { + $37_1 = 0 + } + $35_1 = $37_1; + } + if ($35_1) { + break label$3 + } + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $2_1; + $40_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + if ((i64toi32_i32$1 | 0) < (i64toi32_i32$2 | 0)) { + $38_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) <= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$0 >>> 0 >= i64toi32_i32$3 >>> 0) { + $39_1 = 0 + } else { + $39_1 = 1 + } + $41_1 = $39_1; + } else { + $41_1 = 0 + } + $38_1 = $41_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $3_1; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0 ? $40_1 : $38_1) { + break label$1 + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = i64toi32_i32$3 ^ i64toi32_i32$0 | 0; + $50_1 = i64toi32_i32$2 ^ i64toi32_i32$1 | 0; + $50$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = i64toi32_i32$0 ^ i64toi32_i32$2 | 0; + $53_1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $53$hi = i64toi32_i32$2; + i64toi32_i32$2 = $50$hi; + i64toi32_i32$0 = $50_1; + i64toi32_i32$3 = $53$hi; + i64toi32_i32$1 = $53_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + return (i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | 0 | 0; + } + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $2_1; + $58_1 = i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 > i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + if ((i64toi32_i32$1 | 0) > (i64toi32_i32$2 | 0)) { + $42_1 = 1 + } else { + if ((i64toi32_i32$1 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$0 >>> 0 <= i64toi32_i32$3 >>> 0) { + $43_1 = 0 + } else { + $43_1 = 1 + } + $44_1 = $43_1; + } else { + $44_1 = 0 + } + $42_1 = $44_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $3_1; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0 ? $58_1 : $42_1) { + break label$1 + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = i64toi32_i32$3 ^ i64toi32_i32$0 | 0; + $68_1 = i64toi32_i32$2 ^ i64toi32_i32$1 | 0; + $68$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$2 = i64toi32_i32$0 ^ i64toi32_i32$2 | 0; + $71_1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $71$hi = i64toi32_i32$2; + i64toi32_i32$2 = $68$hi; + i64toi32_i32$0 = $68_1; + i64toi32_i32$3 = $71$hi; + i64toi32_i32$1 = $71_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + $4_1 = (i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | 0; + } + return $4_1 | 0; + } + + function $937($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, $20$hi = 0, $16$hi = 0, $18$hi = 0, $20_1 = 0, $21$hi = 0, $5_1 = 0, $16_1 = 0, i64toi32_i32$6 = 0, $22$hi = 0, $19$hi = 0, $18_1 = 0, $14$hi = 0, $21_1 = 0, $22_1 = 0, $14_1 = 0, $19_1 = 0, $15$hi = 0, $23$hi = 0, $15_1 = 0, $23_1 = 0, $13$hi = 0, $13_1 = 0, $8_1 = 0, $6_1 = 0, $17_1 = 0, $17$hi = 0, $7_1 = 0, $24$hi = 0, $9_1 = 0, $472_1 = 0, $473_1 = 0, $474_1 = 0, $476_1 = 0, $477_1 = 0, $478_1 = 0, $482_1 = 0, $483_1 = 0, $485_1 = 0, $486_1 = 0, $487_1 = 0, $488_1 = 0, $489_1 = 0, $491_1 = 0, $492_1 = 0, $493_1 = 0, $495_1 = 0, $496_1 = 0, $497_1 = 0, $498_1 = 0, $501_1 = 0, $502_1 = 0, $503_1 = 0, $504_1 = 0, $505_1 = 0, $506_1 = 0, $508_1 = 0, $509_1 = 0, $510_1 = 0, $512_1 = 0, $514_1 = 0, $515_1 = 0, $519_1 = 0, $520_1 = 0, $521_1 = 0, $522_1 = 0, $523_1 = 0, $525_1 = 0, $528_1 = 0, $529_1 = 0, $530_1 = 0, $531_1 = 0, $532_1 = 0, $533_1 = 0, $24_1 = 0, $534_1 = 0, $535_1 = 0, $537_1 = 0, $538_1 = 0, $539_1 = 0, $540_1 = 0, $544_1 = 0, $545_1 = 0, $546_1 = 0, $547_1 = 0, $549_1 = 0, $550_1 = 0, $551_1 = 0, $553_1 = 0, $554_1 = 0, $555_1 = 0, $556_1 = 0, $557_1 = 0, $559_1 = 0, $562_1 = 0, $563_1 = 0, $564_1 = 0, $565_1 = 0, $566_1 = 0, $567_1 = 0, $569_1 = 0, $570_1 = 0, $571_1 = 0, $572_1 = 0, $574_1 = 0, $575_1 = 0, $576_1 = 0, $577_1 = 0, $579_1 = 0, $11_1 = 0, $12_1 = 0, $10_1 = 0, $55_1 = 0, $59_1 = 0, $66_1 = 0, $70_1 = 0, $79_1 = 0, $79$hi = 0, $84_1 = 0, $84$hi = 0, $92_1 = 0, $92$hi = 0, $108_1 = 0, $109_1 = 0, $109$hi = 0, $110_1 = 0, $110$hi = 0, $117$hi = 0, $120$hi = 0, $135_1 = 0, $136_1 = 0, $136$hi = 0, $137_1 = 0, $137$hi = 0, $144$hi = 0, $147$hi = 0, $162_1 = 0, $164_1 = 0, $164$hi = 0, $168$hi = 0, $179_1 = 0, $179$hi = 0, $180$hi = 0, $183_1 = 0, $186_1 = 0, $186$hi = 0, $191$hi = 0, $201_1 = 0, $201$hi = 0, $202$hi = 0, $204_1 = 0, $207_1 = 0, $207$hi = 0, $212$hi = 0, $222_1 = 0, $222$hi = 0, $223$hi = 0, $225_1 = 0, $228_1 = 0, $228$hi = 0, $233$hi = 0, $243_1 = 0, $243$hi = 0, $244$hi = 0, $246_1 = 0, $249_1 = 0, $249$hi = 0, $254$hi = 0, $263_1 = 0, $263$hi = 0, $264$hi = 0, $272_1 = 0, $272$hi = 0, $276$hi = 0, $281_1 = 0, $281$hi = 0, $286_1 = 0, $286$hi = 0, $293_1 = 0, $293$hi = 0, $300_1 = 0, $300$hi = 0, $305_1 = 0, $305$hi = 0, $307_1 = 0, $307$hi = 0, $310_1 = 0, $312$hi = 0, $313_1 = 0, $313$hi = 0, $316_1 = 0, $316$hi = 0, $317$hi = 0, $318_1 = 0, $318$hi = 0, $319_1 = 0, $319$hi = 0, $320_1 = 0, $320$hi = 0, $326_1 = 0, $326$hi = 0, $327_1 = 0, $327$hi = 0, $332_1 = 0, $332$hi = 0, $339_1 = 0, $339$hi = 0, $340$hi = 0, $342_1 = 0, $343_1 = 0, $343$hi = 0, $345_1 = 0, $345$hi = 0, $348_1 = 0, $350$hi = 0, $351_1 = 0, $351$hi = 0, $354_1 = 0, $354$hi = 0, $355$hi = 0, $356$hi = 0, $360_1 = 0, $361$hi = 0, $362$hi = 0, $364_1 = 0, $365$hi = 0, $366$hi = 0, $373_1 = 0, $373$hi = 0, $377_1 = 0, $377$hi = 0, $378_1 = 0, $378$hi = 0, $382_1 = 0, $382$hi = 0, $385$hi = 0, $390_1 = 0, $390$hi = 0, $392_1 = 0, $392$hi = 0, $395_1 = 0, $397$hi = 0, $398_1 = 0, $398$hi = 0, $401_1 = 0, $401$hi = 0, $402$hi = 0, $403_1 = 0, $403$hi = 0, $404_1 = 0, $404$hi = 0, $417_1 = 0, $417$hi = 0, $424_1 = 0, $424$hi = 0, $425$hi = 0, $427_1 = 0, $428_1 = 0, $428$hi = 0, $430_1 = 0, $430$hi = 0, $433_1 = 0, $435$hi = 0, $436_1 = 0, $436$hi = 0, $439_1 = 0, $439$hi = 0, $440$hi = 0, $441$hi = 0, $445_1 = 0, $446$hi = 0, $447_1 = 0, $447$hi = 0, $452_1 = 0, $453$hi = 0, $458_1 = 0, $458$hi = 0, $460_1 = 0, $460$hi = 0, $462$hi = 0, $467_1 = 0, $467$hi = 0, $471_1 = 0, $471$hi = 0, $475_1 = 0, $475$hi = 0, $479_1 = 0, $480_1 = 0, $480$hi = 0, $481_1 = 0, $481$hi = 0, $484_1 = 0, $484$hi = 0, $490_1 = 0, $490$hi = 0, $494_1 = 0, $495$hi = 0, $496$hi = 0, $499_1 = 0, $499$hi = 0, $500_1 = 0, $500$hi = 0, $507_1 = 0, $507$hi = 0, $511_1 = 0, $513_1 = 0, $513$hi = 0, $515$hi = 0, $516_1 = 0, $516$hi = 0, $517_1 = 0, $517$hi = 0, $518_1 = 0, $518$hi = 0, $520$hi = 0, $524_1 = 0, $525$hi = 0, $526_1 = 0, $526$hi = 0, $527_1 = 0, $527$hi = 0, $536_1 = 0, $536$hi = 0, $541_1 = 0, $541$hi = 0, $542_1 = 0, $542$hi = 0, $543_1 = 0, $543$hi = 0, $548_1 = 0, $548$hi = 0, $552_1 = 0, $553$hi = 0, $554$hi = 0, $558_1 = 0, $559$hi = 0, $560_1 = 0, $560$hi = 0, $561_1 = 0, $561$hi = 0, $568_1 = 0, $568$hi = 0, $573_1 = 0, $573$hi = 0, $578_1 = 0, $578$hi = 0, $581_1 = 0, $581$hi = 0, $584_1 = 0, $585$hi = 0, $588_1 = 0, $589$hi = 0, $590$hi = 0, $593_1 = 0, $594$hi = 0, $596$hi = 0, $597_1 = 0, $597$hi = 0, $601_1 = 0, $602$hi = 0, $603_1 = 0, $603$hi = 0, $604_1 = 0, $604$hi = 0, $605_1 = 0, $605$hi = 0, $612_1 = 0, $612$hi = 0, $615_1 = 0, $615$hi = 0, $618_1 = 0, $620$hi = 0, $621_1 = 0, $621$hi = 0, $625_1 = 0, $626_1 = 0, $626$hi = 0, $627_1 = 0, $627$hi = 0, $629$hi = 0, $630$hi = 0, $632_1 = 0, $633$hi = 0, $634$hi = 0, $638_1 = 0, $639$hi = 0, $644$hi = 0, $653_1 = 0, $654$hi = 0, $655_1 = 0, $655$hi = 0, $658_1 = 0, $658$hi = 0, $664_1 = 0, $664$hi = 0, $665_1 = 0, $665$hi = 0, $669_1 = 0, $669$hi = 0, $674_1 = 0, $675$hi = 0, $676_1 = 0, $676$hi = 0, $678$hi = 0, $580_1 = 0, $680_1 = 0, $680$hi = 0, $683_1 = 0, $683$hi = 0, $684_1 = 0, $684$hi = 0, $685$hi = 0, $688_1 = 0, $688$hi = 0, $689_1 = 0, $689$hi = 0, $691_1 = 0, $691$hi = 0, $694_1 = 0, $696$hi = 0, $697_1 = 0, $697$hi = 0, $698_1 = 0, $698$hi = 0, $699_1 = 0, $699$hi = 0, $701$hi = 0, $702_1 = 0, $702$hi = 0, $703_1 = 0, $703$hi = 0, $705$hi = 0, $706_1 = 0, $706$hi = 0, $707$hi = 0, $710_1 = 0, $710$hi = 0, $711$hi = 0, $714_1 = 0, $714$hi = 0, $716$hi = 0, $717$hi = 0, $727_1 = 0, $727$hi = 0, $729_1 = 0, $729$hi = 0, $731$hi = 0, $741_1 = 0, $742$hi = 0, $743_1 = 0, $743$hi = 0, $746_1 = 0, $746$hi = 0, $747_1 = 0, $747$hi = 0, $752_1 = 0, $752$hi = 0, $753_1 = 0, $753$hi = 0, $755$hi = 0, $761_1 = 0, $761$hi = 0, $766_1 = 0, $767$hi = 0, $768_1 = 0, $768$hi = 0, $771_1 = 0, $771$hi = 0, $775$hi = 0, $582_1 = 0, $777_1 = 0, $777$hi = 0, $778$hi = 0, $781_1 = 0, $781$hi = 0, $782_1 = 0, $782$hi = 0, $783_1 = 0, $783$hi = 0, $785_1 = 0, $785$hi = 0, $788_1 = 0, $790$hi = 0, $791_1 = 0, $791$hi = 0, $792_1 = 0, $792$hi = 0, $793_1 = 0, $793$hi = 0, $795$hi = 0, $796_1 = 0, $796$hi = 0, $797_1 = 0, $797$hi = 0, $799$hi = 0, $800_1 = 0, $800$hi = 0, $801$hi = 0, $804_1 = 0, $804$hi = 0, $805$hi = 0, $808_1 = 0, $808$hi = 0, $810$hi = 0, $811$hi = 0, $827_1 = 0, $827$hi = 0, $828_1 = 0, $828$hi = 0, $830$hi = 0, $832_1 = 0, $834_1 = 0, $834$hi = 0, $836$hi = 0, $840_1 = 0, $844_1 = 0, $845$hi = 0, $849_1 = 0, $850$hi = 0, $860$hi = 0, $862_1 = 0, $862$hi = 0, $863_1 = 0, $863$hi = 0, $864_1 = 0, $864$hi = 0, $866$hi = 0, $868_1 = 0, $870_1 = 0, $870$hi = 0, $872$hi = 0, $876_1 = 0, $880_1 = 0, $881$hi = 0, $885_1 = 0, $886$hi = 0, $887$hi = 0, $907_1 = 0; + label$1 : { + $5_1 = global$0 - 192 | 0; + $10_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $13_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $13$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $14_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $14$hi = i64toi32_i32$2; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$0 = i64toi32_i32$2 ^ i64toi32_i32$0 | 0; + i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0; + i64toi32_i32$1 = -2147483648; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $15_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $472_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $472_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $6_1 = $472_1 & 32767 | 0; + label$3 : { + label$4 : { + label$5 : { + label$6 : { + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $473_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $473_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $7_1 = $473_1 & 32767 | 0; + if (($7_1 + -1 | 0) >>> 0 > 32765 >>> 0) { + break label$6 + } + $8_1 = 0; + if (($6_1 + -1 | 0) >>> 0 < 32766 >>> 0) { + break label$5 + } + } + label$7 : { + i64toi32_i32$0 = $1$hi; + $55_1 = !($1_1 | i64toi32_i32$0 | 0); + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $16_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $16$hi = i64toi32_i32$1; + i64toi32_i32$0 = $16_1; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$3 = 0; + $59_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$3 = $16_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) | 0 ? $55_1 : $59_1) { + break label$7 + } + i64toi32_i32$3 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$0 = 32768; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + $15_1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $15$hi = i64toi32_i32$0; + break label$4; + } + label$8 : { + i64toi32_i32$0 = $3$hi; + $66_1 = !($3_1 | i64toi32_i32$0 | 0); + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$2 = 2147483647; + i64toi32_i32$1 = -1; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$2 | 0; + $2_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $2$hi = i64toi32_i32$2; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$1 = 0; + $70_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$1 = $2_1; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) | 0 ? $66_1 : $70_1) { + break label$8 + } + i64toi32_i32$1 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$0 = 32768; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $15_1 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + $15$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + $1_1 = $3_1; + $1$hi = i64toi32_i32$0; + break label$4; + } + label$9 : { + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$1 = $16_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0; + $79_1 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0; + $79$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$1 = $79$hi; + i64toi32_i32$2 = $79_1; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + i64toi32_i32$3 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$3 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | 0) { + break label$9 + } + label$10 : { + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $84_1 = i64toi32_i32$2 ^ i64toi32_i32$0 | 0; + $84$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$2 = $84$hi; + i64toi32_i32$0 = $84_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + if (!!(i64toi32_i32$3 | i64toi32_i32$0 | 0 | i64toi32_i32$2 | 0)) { + break label$10 + } + i64toi32_i32$2 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$2; + i64toi32_i32$2 = 2147450880; + $15_1 = 0; + $15$hi = i64toi32_i32$2; + break label$4; + } + i64toi32_i32$2 = $15$hi; + i64toi32_i32$1 = $15_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $15_1 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $15$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$3; + break label$4; + } + label$11 : { + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $92_1 = i64toi32_i32$2 ^ i64toi32_i32$0 | 0; + $92$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$2 = $92$hi; + i64toi32_i32$0 = $92_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$11 + } + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$4; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$3 = $16_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) | 0) { + break label$3 + } + label$12 : { + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$12 + } + i64toi32_i32$1 = $15$hi; + i64toi32_i32$0 = $15_1; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $15_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $15$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$2; + break label$4; + } + $8_1 = 0; + label$13 : { + i64toi32_i32$2 = $16$hi; + i64toi32_i32$1 = $16_1; + i64toi32_i32$0 = 65535; + i64toi32_i32$3 = -1; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$13 + } + $108_1 = $5_1 + 176 | 0; + i64toi32_i32$1 = $1$hi; + $109_1 = $1_1; + $109$hi = i64toi32_i32$1; + i64toi32_i32$1 = $14$hi; + $110_1 = $14_1; + $110$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $14$hi; + $8_1 = !($14_1 | i64toi32_i32$1 | 0); + i64toi32_i32$4 = $8_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$0 = i64toi32_i32$4 ? $1_1 : $14_1; + i64toi32_i32$3 = i64toi32_i32$4 ? i64toi32_i32$1 : i64toi32_i32$2; + i64toi32_i32$1 = Math_clz32(i64toi32_i32$3); + i64toi32_i32$4 = 0; + if ((i64toi32_i32$1 | 0) == (32 | 0)) { + $474_1 = Math_clz32(i64toi32_i32$0) + 32 | 0 + } else { + $474_1 = i64toi32_i32$1 + } + $117$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + $120$hi = i64toi32_i32$4; + i64toi32_i32$4 = $117$hi; + i64toi32_i32$0 = $474_1; + i64toi32_i32$3 = $120$hi; + i64toi32_i32$1 = $8_1 << 6 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $8_1 = i64toi32_i32$2; + i64toi32_i32$5 = $109$hi; + i64toi32_i32$0 = $110$hi; + $934($108_1 | 0, $109_1 | 0, i64toi32_i32$5 | 0, $110_1 | 0, i64toi32_i32$0 | 0, i64toi32_i32$2 + -15 | 0 | 0); + $8_1 = 16 - i64toi32_i32$2 | 0; + i64toi32_i32$4 = $5_1 + 184 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $14_1 = i64toi32_i32$0; + $14$hi = i64toi32_i32$5; + i64toi32_i32$4 = $5_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 176 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$4 + 180 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$5; + $1$hi = i64toi32_i32$0; + } + i64toi32_i32$0 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$5 = 65535; + i64toi32_i32$1 = -1; + if (i64toi32_i32$0 >>> 0 > i64toi32_i32$5 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$4 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$5 + } + $135_1 = $5_1 + 160 | 0; + i64toi32_i32$4 = $3$hi; + $136_1 = $3_1; + $136$hi = i64toi32_i32$4; + i64toi32_i32$4 = $13$hi; + $137_1 = $13_1; + $137$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $13$hi; + $9_1 = !($13_1 | i64toi32_i32$4 | 0); + i64toi32_i32$3 = $9_1; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$5 = i64toi32_i32$3 ? $3_1 : $13_1; + i64toi32_i32$1 = i64toi32_i32$3 ? i64toi32_i32$4 : i64toi32_i32$0; + i64toi32_i32$4 = Math_clz32(i64toi32_i32$1); + i64toi32_i32$3 = 0; + if ((i64toi32_i32$4 | 0) == (32 | 0)) { + $476_1 = Math_clz32(i64toi32_i32$5) + 32 | 0 + } else { + $476_1 = i64toi32_i32$4 + } + $144$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $147$hi = i64toi32_i32$3; + i64toi32_i32$3 = $144$hi; + i64toi32_i32$5 = $476_1; + i64toi32_i32$1 = $147$hi; + i64toi32_i32$4 = $9_1 << 6 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $9_1 = i64toi32_i32$0; + i64toi32_i32$2 = $136$hi; + i64toi32_i32$5 = $137$hi; + $934($135_1 | 0, $136_1 | 0, i64toi32_i32$2 | 0, $137_1 | 0, i64toi32_i32$5 | 0, i64toi32_i32$0 + -15 | 0 | 0); + $8_1 = (i64toi32_i32$0 + $8_1 | 0) + -16 | 0; + i64toi32_i32$3 = $5_1 + 168 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $13_1 = i64toi32_i32$5; + $13$hi = i64toi32_i32$2; + i64toi32_i32$3 = $5_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$3 + 160 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$3 + 164 | 0) >> 2] | 0; + $3_1 = i64toi32_i32$2; + $3$hi = i64toi32_i32$5; + } + $162_1 = $5_1 + 144 | 0; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = 49; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $477_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $477_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $164_1 = $477_1; + $164$hi = i64toi32_i32$2; + i64toi32_i32$2 = $13$hi; + i64toi32_i32$5 = $13_1; + i64toi32_i32$3 = 65536; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $17_1 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $17$hi = i64toi32_i32$3; + i64toi32_i32$2 = $17_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 15; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + $478_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$1 | 0) | 0; + $478_1 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + } + $168$hi = i64toi32_i32$5; + i64toi32_i32$5 = $164$hi; + i64toi32_i32$3 = $164_1; + i64toi32_i32$2 = $168$hi; + i64toi32_i32$4 = $478_1; + i64toi32_i32$2 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + $2_1 = i64toi32_i32$3 | i64toi32_i32$4 | 0; + $2$hi = i64toi32_i32$2; + i64toi32_i32$2 = 1963258675; + i64toi32_i32$5 = -102865788; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$1 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$1; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$4 = 0; + $944($162_1 | 0, $2_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$5 = ($5_1 + 144 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $179_1 = i64toi32_i32$4; + $179$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = $179$hi; + i64toi32_i32$0 = $179_1; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$1 | 0; + $180$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $180$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$0 = 0; + $944($5_1 + 128 | 0 | 0, i64toi32_i32$3 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, $4_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0); + $183_1 = $5_1 + 112 | 0; + i64toi32_i32$5 = $5_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 128 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 132 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 63; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $482_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $482_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$4 | 0) | 0; + } + $186_1 = $482_1; + $186$hi = i64toi32_i32$0; + i64toi32_i32$2 = ($5_1 + 128 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 1; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $483_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$4 | 0) | 0; + $483_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $191$hi = i64toi32_i32$0; + i64toi32_i32$0 = $186$hi; + i64toi32_i32$5 = $186_1; + i64toi32_i32$2 = $191$hi; + i64toi32_i32$1 = $483_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4_1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = 0; + $944($183_1 | 0, $4_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$5 | 0, $2_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$5 = ($5_1 + 112 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $201_1 = i64toi32_i32$1; + $201$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = $201$hi; + i64toi32_i32$2 = $201_1; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$2 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$3 = i64toi32_i32$0 - i64toi32_i32$3 | 0; + $202$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $202$hi; + i64toi32_i32$2 = 0; + $944($5_1 + 96 | 0 | 0, $4_1 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$4 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$2 | 0); + $204_1 = $5_1 + 80 | 0; + i64toi32_i32$5 = $5_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 96 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 100 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 63; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $485_1 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + $485_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + $207_1 = $485_1; + $207$hi = i64toi32_i32$2; + i64toi32_i32$0 = ($5_1 + 96 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$1 | 0; + $486_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$1 | 0) | 0; + $486_1 = i64toi32_i32$0 << i64toi32_i32$1 | 0; + } + $212$hi = i64toi32_i32$2; + i64toi32_i32$2 = $207$hi; + i64toi32_i32$5 = $207_1; + i64toi32_i32$0 = $212$hi; + i64toi32_i32$3 = $486_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$3 = 0; + $944($204_1 | 0, $4_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0, $2_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$5 = ($5_1 + 80 | 0) + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $222_1 = i64toi32_i32$3; + $222$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = $222$hi; + i64toi32_i32$0 = $222_1; + i64toi32_i32$1 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$4 | 0; + $223$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $223$hi; + i64toi32_i32$0 = 0; + $944($5_1 + 64 | 0 | 0, $4_1 | 0, i64toi32_i32$4 | 0, 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0); + $225_1 = $5_1 + 48 | 0; + i64toi32_i32$5 = $5_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 68 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 63; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $487_1 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + $487_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0; + } + $228_1 = $487_1; + $228$hi = i64toi32_i32$0; + i64toi32_i32$2 = ($5_1 + 64 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 1; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $488_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0; + $488_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $233$hi = i64toi32_i32$0; + i64toi32_i32$0 = $228$hi; + i64toi32_i32$5 = $228_1; + i64toi32_i32$2 = $233$hi; + i64toi32_i32$4 = $488_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4_1 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$4 = 0; + $944($225_1 | 0, $4_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$5 | 0, $2_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$4 | 0); + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$5 = ($5_1 + 48 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $243_1 = i64toi32_i32$4; + $243$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = $243$hi; + i64toi32_i32$2 = $243_1; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$2 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$0 - i64toi32_i32$1 | 0; + $244$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $244$hi; + i64toi32_i32$2 = 0; + $944($5_1 + 32 | 0 | 0, $4_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$3 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$2 | 0); + $246_1 = $5_1 + 16 | 0; + i64toi32_i32$5 = $5_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 32 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 36 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 63; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $489_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $489_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$4 | 0) | 0; + } + $249_1 = $489_1; + $249$hi = i64toi32_i32$2; + i64toi32_i32$0 = ($5_1 + 32 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 1; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $491_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$4 | 0) | 0; + $491_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $254$hi = i64toi32_i32$2; + i64toi32_i32$2 = $249$hi; + i64toi32_i32$5 = $249_1; + i64toi32_i32$0 = $254$hi; + i64toi32_i32$1 = $491_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = 0; + $944($246_1 | 0, $4_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0, $2_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$5 = ($5_1 + 16 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $263_1 = i64toi32_i32$1; + $263$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = $263$hi; + i64toi32_i32$0 = $263_1; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + $264$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $264$hi; + i64toi32_i32$0 = 0; + $944($5_1 | 0, $4_1 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$5 | 0, i64toi32_i32$4 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$0 | 0); + $6_1 = $8_1 + ($7_1 - $6_1 | 0) | 0; + label$14 : { + label$15 : { + i64toi32_i32$5 = $5_1; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 63; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $492_1 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + $492_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + $272_1 = $492_1; + $272$hi = i64toi32_i32$0; + i64toi32_i32$2 = $5_1 + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + $493_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$1 | 0) | 0; + $493_1 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + } + $276$hi = i64toi32_i32$0; + i64toi32_i32$0 = $272$hi; + i64toi32_i32$5 = $272_1; + i64toi32_i32$2 = $276$hi; + i64toi32_i32$3 = $493_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $16_1 = i64toi32_i32$1; + $16$hi = i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$4 & i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $4$hi = i64toi32_i32$0; + $281_1 = $4_1; + $281$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $495_1 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + $495_1 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0; + } + $18_1 = $495_1; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $281$hi; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$4 = __wasm_i64_mul($281_1 | 0, i64toi32_i32$2 | 0, $18_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $19_1 = i64toi32_i32$4; + $19$hi = i64toi32_i32$2; + $286_1 = i64toi32_i32$4; + $286$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$0 = $16_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $496_1 = i64toi32_i32$2 >>> i64toi32_i32$5 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$2 >>> i64toi32_i32$5 | 0; + $496_1 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$5 | 0) | 0; + } + $16_1 = $496_1; + $16$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$4 & i64toi32_i32$0 | 0; + $20_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $20$hi = i64toi32_i32$0; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = __wasm_i64_mul($16_1 | 0, i64toi32_i32$0 | 0, $20_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $293_1 = i64toi32_i32$2; + $293$hi = i64toi32_i32$0; + i64toi32_i32$0 = $286$hi; + i64toi32_i32$4 = $286_1; + i64toi32_i32$2 = $293$hi; + i64toi32_i32$3 = $293_1; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $497_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$2 | 0) | 0; + $497_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $21_1 = $497_1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$0 = __wasm_i64_mul($4_1 | 0, i64toi32_i32$4 | 0, $20_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $300_1 = i64toi32_i32$0; + $300$hi = i64toi32_i32$4; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $21_1; + i64toi32_i32$0 = $300$hi; + i64toi32_i32$3 = $300_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $20_1 = i64toi32_i32$2; + $20$hi = i64toi32_i32$5; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$3 = $21_1; + i64toi32_i32$4 = 0; + $305_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + $305$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 32; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $498_1 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + $498_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $307_1 = $498_1; + $307$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$1 = $19_1; + $310_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = $310_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + $501_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $501_1 = i64toi32_i32$1 << i64toi32_i32$0 | 0; + } + $312$hi = i64toi32_i32$5; + i64toi32_i32$5 = $307$hi; + i64toi32_i32$4 = $307_1; + i64toi32_i32$1 = $312$hi; + i64toi32_i32$3 = $501_1; + i64toi32_i32$1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $313_1 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + $313$hi = i64toi32_i32$1; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$4 = __wasm_i64_mul($16_1 | 0, i64toi32_i32$1 | 0, $18_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $316_1 = i64toi32_i32$4; + $316$hi = i64toi32_i32$1; + i64toi32_i32$1 = $313$hi; + i64toi32_i32$5 = $313_1; + i64toi32_i32$4 = $316$hi; + i64toi32_i32$3 = $316_1; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $317$hi = i64toi32_i32$2; + i64toi32_i32$2 = $305$hi; + i64toi32_i32$1 = $305_1; + i64toi32_i32$5 = $317$hi; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $318_1 = i64toi32_i32$4; + $318$hi = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + $319_1 = $20_1; + $319$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + $320_1 = $4_1; + $320$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 17; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $502_1 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + $502_1 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$5 | 0) | 0; + } + i64toi32_i32$0 = $502_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $18_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $320$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = __wasm_i64_mul($320_1 | 0, i64toi32_i32$2 | 0, $18_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $19_1 = i64toi32_i32$0; + $19$hi = i64toi32_i32$2; + $326_1 = i64toi32_i32$0; + $326$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + $327_1 = $16_1; + $327$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 15; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$5 | 0; + $503_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$5 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$5 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$5 | 0) | 0; + $503_1 = i64toi32_i32$1 << i64toi32_i32$5 | 0; + } + i64toi32_i32$2 = $503_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = -32768; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $21_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $21$hi = i64toi32_i32$1; + i64toi32_i32$1 = $327$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = __wasm_i64_mul($327_1 | 0, i64toi32_i32$1 | 0, $21_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $332_1 = i64toi32_i32$2; + $332$hi = i64toi32_i32$1; + i64toi32_i32$1 = $326$hi; + i64toi32_i32$0 = $326_1; + i64toi32_i32$2 = $332$hi; + i64toi32_i32$3 = $332_1; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + $504_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $504_1 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + } + $22_1 = $504_1; + $22$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = __wasm_i64_mul($4_1 | 0, i64toi32_i32$0 | 0, $21_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $339_1 = i64toi32_i32$1; + $339$hi = i64toi32_i32$0; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$4 = $22_1; + i64toi32_i32$1 = $339$hi; + i64toi32_i32$3 = $339_1; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $340$hi = i64toi32_i32$5; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$5 = $340$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$3 = $22_1; + $342_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $343_1 = $342_1; + $343$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 32; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $505_1 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + $505_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $345_1 = $505_1; + $345$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$4 = $19_1; + $348_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = $348_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $506_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$1 | 0) | 0; + $506_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $350$hi = i64toi32_i32$5; + i64toi32_i32$5 = $345$hi; + i64toi32_i32$0 = $345_1; + i64toi32_i32$4 = $350$hi; + i64toi32_i32$3 = $506_1; + i64toi32_i32$4 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $351_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $351$hi = i64toi32_i32$4; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = __wasm_i64_mul($16_1 | 0, i64toi32_i32$4 | 0, $18_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $354_1 = i64toi32_i32$0; + $354$hi = i64toi32_i32$4; + i64toi32_i32$4 = $351$hi; + i64toi32_i32$5 = $351_1; + i64toi32_i32$0 = $354$hi; + i64toi32_i32$3 = $354_1; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $355$hi = i64toi32_i32$2; + i64toi32_i32$2 = $343$hi; + i64toi32_i32$4 = $343_1; + i64toi32_i32$5 = $355$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $356$hi = i64toi32_i32$1; + i64toi32_i32$1 = $319$hi; + i64toi32_i32$2 = $319_1; + i64toi32_i32$4 = $356$hi; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$3 = $20_1; + $360_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $361$hi = i64toi32_i32$1; + i64toi32_i32$1 = $318$hi; + i64toi32_i32$3 = $318_1; + i64toi32_i32$0 = $361$hi; + i64toi32_i32$2 = $360_1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $362$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 0; + $364_1 = (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$3 | 0) | 0; + i64toi32_i32$1 = 0; + $365$hi = i64toi32_i32$1; + i64toi32_i32$1 = $362$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$5 = $365$hi; + i64toi32_i32$3 = $364_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $366$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = $366$hi; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$5 = i64toi32_i32$1 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$0 | 0; + $20_1 = i64toi32_i32$5; + $20$hi = i64toi32_i32$0; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $18_1 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + $18$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = __wasm_i64_mul($18_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $19_1 = i64toi32_i32$4; + $19$hi = i64toi32_i32$1; + $373_1 = i64toi32_i32$4; + $373$hi = i64toi32_i32$1; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = __wasm_i64_mul($18_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$1; + $377_1 = i64toi32_i32$4; + $377$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + $378_1 = $4_1; + $378$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $508_1 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + $508_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$2 | 0) | 0; + } + $22_1 = $508_1; + $22$hi = i64toi32_i32$4; + i64toi32_i32$4 = $378$hi; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$0 = __wasm_i64_mul($378_1 | 0, i64toi32_i32$4 | 0, $22_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $382_1 = i64toi32_i32$0; + $382$hi = i64toi32_i32$4; + i64toi32_i32$4 = $377$hi; + i64toi32_i32$1 = $377_1; + i64toi32_i32$0 = $382$hi; + i64toi32_i32$3 = $382_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $20_1 = i64toi32_i32$2; + $20$hi = i64toi32_i32$5; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + $509_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$0 | 0) | 0; + $509_1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + } + $385$hi = i64toi32_i32$1; + i64toi32_i32$1 = $373$hi; + i64toi32_i32$5 = $373_1; + i64toi32_i32$4 = $385$hi; + i64toi32_i32$3 = $509_1; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $18_1 = i64toi32_i32$0; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$3 = $19_1; + i64toi32_i32$1 = 0; + $390_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + $390$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $510_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $510_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + $392_1 = $510_1; + $392$hi = i64toi32_i32$2; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$1 = $20_1; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $21_1; + $395_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = $395_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $512_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $512_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $397$hi = i64toi32_i32$2; + i64toi32_i32$2 = $392$hi; + i64toi32_i32$1 = $392_1; + i64toi32_i32$5 = $397$hi; + i64toi32_i32$3 = $512_1; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $398_1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $398$hi = i64toi32_i32$5; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$1 = __wasm_i64_mul($16_1 | 0, i64toi32_i32$5 | 0, $22_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $401_1 = i64toi32_i32$1; + $401$hi = i64toi32_i32$5; + i64toi32_i32$5 = $398$hi; + i64toi32_i32$2 = $398_1; + i64toi32_i32$1 = $401$hi; + i64toi32_i32$3 = $401_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $402$hi = i64toi32_i32$0; + i64toi32_i32$0 = $390$hi; + i64toi32_i32$5 = $390_1; + i64toi32_i32$2 = $402$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $403_1 = i64toi32_i32$1; + $403$hi = i64toi32_i32$4; + i64toi32_i32$4 = $18$hi; + $404_1 = $18_1; + $404$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$2 = i64toi32_i32$0 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$4 - i64toi32_i32$1 | 0; + $2_1 = i64toi32_i32$2; + $2$hi = i64toi32_i32$1; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $514_1 = i64toi32_i32$1 >>> i64toi32_i32$5 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$5 | 0; + $514_1 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$5 | 0) | 0; + } + $20_1 = $514_1; + $20$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = __wasm_i64_mul($20_1 | 0, i64toi32_i32$0 | 0, $4_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $19_1 = i64toi32_i32$4; + $19$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $21_1 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $21$hi = i64toi32_i32$4; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $21$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = __wasm_i64_mul($21_1 | 0, i64toi32_i32$4 | 0, $16_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $417_1 = i64toi32_i32$1; + $417$hi = i64toi32_i32$4; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$0 = $19_1; + i64toi32_i32$1 = $417$hi; + i64toi32_i32$3 = $417_1; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $515_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$1 | 0) | 0; + $515_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $22_1 = $515_1; + $22$hi = i64toi32_i32$0; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = __wasm_i64_mul($21_1 | 0, i64toi32_i32$0 | 0, $4_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $424_1 = i64toi32_i32$4; + $424$hi = i64toi32_i32$0; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$2 = $22_1; + i64toi32_i32$4 = $424$hi; + i64toi32_i32$3 = $424_1; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $425$hi = i64toi32_i32$5; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$5 = $425$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$3 = $22_1; + $427_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $428_1 = $427_1; + $428$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 32; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $519_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $519_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + $430_1 = $519_1; + $430$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$2 = $19_1; + $433_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $433_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $520_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $520_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $435$hi = i64toi32_i32$5; + i64toi32_i32$5 = $430$hi; + i64toi32_i32$0 = $430_1; + i64toi32_i32$2 = $435$hi; + i64toi32_i32$3 = $520_1; + i64toi32_i32$2 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + $436_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $436$hi = i64toi32_i32$2; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$0 = __wasm_i64_mul($20_1 | 0, i64toi32_i32$2 | 0, $16_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $439_1 = i64toi32_i32$0; + $439$hi = i64toi32_i32$2; + i64toi32_i32$2 = $436$hi; + i64toi32_i32$5 = $436_1; + i64toi32_i32$0 = $439$hi; + i64toi32_i32$3 = $439_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $440$hi = i64toi32_i32$1; + i64toi32_i32$1 = $428$hi; + i64toi32_i32$2 = $428_1; + i64toi32_i32$5 = $440$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $441$hi = i64toi32_i32$4; + i64toi32_i32$4 = $404$hi; + i64toi32_i32$1 = $404_1; + i64toi32_i32$2 = $441$hi; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$3 = $18_1; + $445_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $446$hi = i64toi32_i32$4; + i64toi32_i32$4 = $403$hi; + i64toi32_i32$3 = $403_1; + i64toi32_i32$0 = $446$hi; + i64toi32_i32$1 = $445_1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $447_1 = i64toi32_i32$2; + $447$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$4 = $2_1; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = -2; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $19_1 = i64toi32_i32$0; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$1 = $2_1; + $452_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $453$hi = i64toi32_i32$5; + i64toi32_i32$5 = $447$hi; + i64toi32_i32$1 = $447_1; + i64toi32_i32$2 = $453$hi; + i64toi32_i32$4 = $452_1; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$1 = -1; + i64toi32_i32$4 = -1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $20_1 = i64toi32_i32$2; + $20$hi = i64toi32_i32$3; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$5 = i64toi32_i32$3 & i64toi32_i32$5 | 0; + $2_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $2$hi = i64toi32_i32$5; + $458_1 = $2_1; + $458$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 62; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $521_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $521_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $460_1 = $521_1; + $460$hi = i64toi32_i32$0; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$5 = $14_1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = 2; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + $522_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$1 | 0) | 0; + $522_1 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + } + $462$hi = i64toi32_i32$3; + i64toi32_i32$3 = $460$hi; + i64toi32_i32$0 = $460_1; + i64toi32_i32$5 = $462$hi; + i64toi32_i32$4 = $522_1; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$0 | i64toi32_i32$4 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$0 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $458$hi; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = __wasm_i64_mul($458_1 | 0, i64toi32_i32$0 | 0, $4_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $18_1 = i64toi32_i32$3; + $18$hi = i64toi32_i32$0; + $467_1 = i64toi32_i32$3; + $467$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = 30; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $523_1 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + $523_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + i64toi32_i32$0 = $523_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$5 = i64toi32_i32$3 & i64toi32_i32$5 | 0; + $16_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $16$hi = i64toi32_i32$5; + $471_1 = $16_1; + $471$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 32; + i64toi32_i32$1 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $525_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $525_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $20_1 = $525_1; + $20$hi = i64toi32_i32$0; + i64toi32_i32$0 = $471$hi; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$3 = __wasm_i64_mul($471_1 | 0, i64toi32_i32$0 | 0, $20_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $475_1 = i64toi32_i32$3; + $475$hi = i64toi32_i32$0; + i64toi32_i32$0 = $467$hi; + i64toi32_i32$5 = $467_1; + i64toi32_i32$3 = $475$hi; + i64toi32_i32$4 = $475_1; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$2; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$5 = $18$hi; + i64toi32_i32$4 = $18_1; + $479_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $480_1 = $479_1; + $480$hi = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$2; + $481_1 = i64toi32_i32$1; + $481$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$4 = $19_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $528_1 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + $528_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $18_1 = $528_1; + $18$hi = i64toi32_i32$2; + $484_1 = $18_1; + $484$hi = i64toi32_i32$2; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$0 = $14_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 30; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $529_1 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + $529_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$3 | 0) | 0; + } + i64toi32_i32$2 = $529_1; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = -262145; + i64toi32_i32$0 = i64toi32_i32$4 & i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 262144; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $14_1 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $14$hi = i64toi32_i32$2; + i64toi32_i32$2 = $484$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$4 = __wasm_i64_mul($484_1 | 0, i64toi32_i32$2 | 0, $14_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $490_1 = i64toi32_i32$4; + $490$hi = i64toi32_i32$2; + i64toi32_i32$2 = $481$hi; + i64toi32_i32$0 = $481_1; + i64toi32_i32$4 = $490$hi; + i64toi32_i32$5 = $490_1; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $22_1 = i64toi32_i32$3; + $22$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$2 = i64toi32_i32$3; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$5 = $21_1; + $494_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $495$hi = i64toi32_i32$2; + i64toi32_i32$2 = $480$hi; + i64toi32_i32$5 = $480_1; + i64toi32_i32$1 = $495$hi; + i64toi32_i32$0 = $494_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $496$hi = i64toi32_i32$3; + i64toi32_i32$3 = $14$hi; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$3 = $14$hi; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = __wasm_i64_mul($14_1 | 0, i64toi32_i32$3 | 0, $20_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $499_1 = i64toi32_i32$5; + $499$hi = i64toi32_i32$3; + i64toi32_i32$3 = $496$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$5 = $499$hi; + i64toi32_i32$0 = $499_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $500_1 = i64toi32_i32$1; + $500$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$4 | 0, $14_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $23_1 = i64toi32_i32$2; + $23$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = __wasm_i64_mul($4_1 | 0, i64toi32_i32$4 | 0, $20_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $507_1 = i64toi32_i32$2; + $507$hi = i64toi32_i32$4; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$3 = $23_1; + i64toi32_i32$2 = $507$hi; + i64toi32_i32$0 = $507_1; + i64toi32_i32$5 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$1; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$0 = $23_1; + $511_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = $511_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $530_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $530_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $513_1 = $530_1; + $513$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$4 = $21_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $531_1 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + $531_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$2 | 0) | 0; + } + $515$hi = i64toi32_i32$0; + i64toi32_i32$0 = $513$hi; + i64toi32_i32$1 = $513_1; + i64toi32_i32$4 = $515$hi; + i64toi32_i32$3 = $531_1; + i64toi32_i32$4 = i64toi32_i32$0 | i64toi32_i32$4 | 0; + $516_1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $516$hi = i64toi32_i32$4; + i64toi32_i32$4 = $500$hi; + i64toi32_i32$0 = $500_1; + i64toi32_i32$1 = $516$hi; + i64toi32_i32$3 = $516_1; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $517_1 = i64toi32_i32$2; + $517$hi = i64toi32_i32$5; + i64toi32_i32$5 = $22$hi; + $518_1 = $22_1; + $518$hi = i64toi32_i32$5; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$4 = $21_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $532_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$1 | 0) | 0; + $532_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $520$hi = i64toi32_i32$0; + i64toi32_i32$0 = $518$hi; + i64toi32_i32$5 = $518_1; + i64toi32_i32$4 = $520$hi; + i64toi32_i32$3 = $532_1; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$2; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$3 = $22_1; + $524_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $525$hi = i64toi32_i32$0; + i64toi32_i32$0 = $517$hi; + i64toi32_i32$3 = $517_1; + i64toi32_i32$2 = $525$hi; + i64toi32_i32$5 = $524_1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $526_1 = i64toi32_i32$4; + $526$hi = i64toi32_i32$1; + i64toi32_i32$1 = $21$hi; + $527_1 = $21_1; + $527$hi = i64toi32_i32$1; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$3 = __wasm_i64_mul($18_1 | 0, i64toi32_i32$1 | 0, $16_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $23_1 = i64toi32_i32$3; + $23$hi = i64toi32_i32$1; + i64toi32_i32$1 = $19$hi; + i64toi32_i32$0 = $19_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $19_1 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + $19$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $19$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = __wasm_i64_mul($19_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $536_1 = i64toi32_i32$0; + $536$hi = i64toi32_i32$3; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$1 = $23_1; + i64toi32_i32$0 = $536$hi; + i64toi32_i32$5 = $536_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $22_1 = i64toi32_i32$2; + $22$hi = i64toi32_i32$4; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$5 = $23_1; + i64toi32_i32$3 = 0; + $541_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + $541$hi = i64toi32_i32$3; + i64toi32_i32$3 = i64toi32_i32$4; + $542_1 = i64toi32_i32$2; + $542$hi = i64toi32_i32$4; + i64toi32_i32$3 = $2$hi; + $543_1 = $2_1; + $543$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 2; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $533_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$0 | 0) | 0; + $533_1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + i64toi32_i32$3 = $533_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = -4; + i64toi32_i32$5 = i64toi32_i32$4 & i64toi32_i32$5 | 0; + $23_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $23$hi = i64toi32_i32$5; + i64toi32_i32$5 = $543$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = __wasm_i64_mul($543_1 | 0, i64toi32_i32$5 | 0, $23_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $548_1 = i64toi32_i32$3; + $548$hi = i64toi32_i32$5; + i64toi32_i32$5 = $542$hi; + i64toi32_i32$4 = $542_1; + i64toi32_i32$3 = $548$hi; + i64toi32_i32$1 = $548_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $24_1 = i64toi32_i32$0; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = $22$hi; + i64toi32_i32$2 = $24$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$1 = $22_1; + $552_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $553$hi = i64toi32_i32$5; + i64toi32_i32$5 = $541$hi; + i64toi32_i32$1 = $541_1; + i64toi32_i32$2 = $553$hi; + i64toi32_i32$4 = $552_1; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $554$hi = i64toi32_i32$0; + i64toi32_i32$0 = $527$hi; + i64toi32_i32$5 = $527_1; + i64toi32_i32$1 = $554$hi; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $22_1 = i64toi32_i32$2; + $22$hi = i64toi32_i32$3; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$4 = $21_1; + $558_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $559$hi = i64toi32_i32$0; + i64toi32_i32$0 = $526$hi; + i64toi32_i32$4 = $526_1; + i64toi32_i32$3 = $559$hi; + i64toi32_i32$5 = $558_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $560_1 = i64toi32_i32$1; + $560$hi = i64toi32_i32$2; + i64toi32_i32$2 = $22$hi; + $561_1 = $22_1; + $561$hi = i64toi32_i32$2; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$4 = __wasm_i64_mul($23_1 | 0, i64toi32_i32$2 | 0, $20_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$4; + $21$hi = i64toi32_i32$2; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$4 = __wasm_i64_mul($19_1 | 0, i64toi32_i32$2 | 0, $14_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $568_1 = i64toi32_i32$4; + $568$hi = i64toi32_i32$2; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$0 = $21_1; + i64toi32_i32$4 = $568$hi; + i64toi32_i32$5 = $568_1; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $20_1 = i64toi32_i32$3; + $20$hi = i64toi32_i32$1; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = __wasm_i64_mul($18_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $573_1 = i64toi32_i32$0; + $573$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$2 = i64toi32_i32$3; + i64toi32_i32$0 = $573$hi; + i64toi32_i32$5 = $573_1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $4_1 = i64toi32_i32$4; + $4$hi = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$3 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $578_1 = i64toi32_i32$2; + $578$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = $578$hi; + i64toi32_i32$5 = $578_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $2_1 = i64toi32_i32$0; + $2$hi = i64toi32_i32$4; + i64toi32_i32$3 = i64toi32_i32$0; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $534_1 = i64toi32_i32$4 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$4 >>> i64toi32_i32$2 | 0; + $534_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$2 | 0) | 0; + } + $581_1 = $534_1; + $581$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$4 = $20_1; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$5 = $21_1; + $584_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $585$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$3 = $20_1; + $588_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $589$hi = i64toi32_i32$5; + i64toi32_i32$5 = $585$hi; + i64toi32_i32$3 = $584_1; + i64toi32_i32$4 = $589$hi; + i64toi32_i32$1 = $588_1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $590$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$5 = $2_1; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$1 = $4_1; + $593_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $594$hi = i64toi32_i32$5; + i64toi32_i32$5 = $590$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$0 = $594$hi; + i64toi32_i32$3 = $593_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $535_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $535_1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + $596$hi = i64toi32_i32$1; + i64toi32_i32$1 = $581$hi; + i64toi32_i32$2 = $581_1; + i64toi32_i32$5 = $596$hi; + i64toi32_i32$3 = $535_1; + i64toi32_i32$5 = i64toi32_i32$1 | i64toi32_i32$5 | 0; + $597_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $597$hi = i64toi32_i32$5; + i64toi32_i32$5 = $561$hi; + i64toi32_i32$1 = $561_1; + i64toi32_i32$2 = $597$hi; + i64toi32_i32$3 = $597_1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $20_1 = i64toi32_i32$0; + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $22$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$3 = $22_1; + $601_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $602$hi = i64toi32_i32$5; + i64toi32_i32$5 = $560$hi; + i64toi32_i32$3 = $560_1; + i64toi32_i32$4 = $602$hi; + i64toi32_i32$1 = $601_1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $603_1 = i64toi32_i32$2; + $603$hi = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + $604_1 = $20_1; + $604$hi = i64toi32_i32$0; + i64toi32_i32$0 = $24$hi; + $605_1 = $24_1; + $605$hi = i64toi32_i32$0; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = $23$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$3 = __wasm_i64_mul($18_1 | 0, i64toi32_i32$0 | 0, $23_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $4_1 = i64toi32_i32$3; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$3 = __wasm_i64_mul($19_1 | 0, i64toi32_i32$0 | 0, $16_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $612_1 = i64toi32_i32$3; + $612$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$3 = $612$hi; + i64toi32_i32$1 = $612_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $16_1 = i64toi32_i32$4; + $16$hi = i64toi32_i32$2; + i64toi32_i32$0 = i64toi32_i32$4; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 32; + i64toi32_i32$3 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $537_1 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + $537_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$3 | 0) | 0; + } + $615_1 = $537_1; + $615$hi = i64toi32_i32$5; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$2 = $16_1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$1 = $4_1; + $618_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $618_1; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$1 << i64toi32_i32$3 | 0; + $538_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$3 | 0) | 0; + $538_1 = i64toi32_i32$1 << i64toi32_i32$3 | 0; + } + $620$hi = i64toi32_i32$5; + i64toi32_i32$5 = $615$hi; + i64toi32_i32$2 = $615_1; + i64toi32_i32$1 = $620$hi; + i64toi32_i32$0 = $538_1; + i64toi32_i32$1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $621_1 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $621$hi = i64toi32_i32$1; + i64toi32_i32$1 = $605$hi; + i64toi32_i32$5 = $605_1; + i64toi32_i32$2 = $621$hi; + i64toi32_i32$0 = $621_1; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $4_1 = i64toi32_i32$3; + $4$hi = i64toi32_i32$4; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$0 = $24_1; + $625_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $626_1 = $625_1; + $626$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$4; + $627_1 = i64toi32_i32$3; + $627$hi = i64toi32_i32$4; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $539_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$2 | 0) | 0; + $539_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $629$hi = i64toi32_i32$4; + i64toi32_i32$4 = $627$hi; + i64toi32_i32$1 = $627_1; + i64toi32_i32$0 = $629$hi; + i64toi32_i32$5 = $539_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $630$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $630$hi; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$5 = $4_1; + $632_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $633$hi = i64toi32_i32$4; + i64toi32_i32$4 = $626$hi; + i64toi32_i32$5 = $626_1; + i64toi32_i32$3 = $633$hi; + i64toi32_i32$1 = $632_1; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $634$hi = i64toi32_i32$2; + i64toi32_i32$2 = $604$hi; + i64toi32_i32$4 = $604_1; + i64toi32_i32$5 = $634$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$3 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$5 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $4_1 = i64toi32_i32$3; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = i64toi32_i32$3; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$1 = $20_1; + $638_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $639$hi = i64toi32_i32$2; + i64toi32_i32$2 = $603$hi; + i64toi32_i32$1 = $603_1; + i64toi32_i32$0 = $639$hi; + i64toi32_i32$4 = $638_1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$3; + i64toi32_i32$2 = i64toi32_i32$5; + i64toi32_i32$1 = 131071; + i64toi32_i32$4 = -1; + if (i64toi32_i32$3 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 > i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$15 + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 49; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + $540_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $540_1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + } + $644$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = -1; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $1_1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + $1$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = -1; + i64toi32_i32$2 = i64toi32_i32$4 & i64toi32_i32$2 | 0; + $16_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$3 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $16_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $20_1 = i64toi32_i32$3; + $20$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 0; + $653_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$3 | 0) | 0; + i64toi32_i32$4 = 0; + $654$hi = i64toi32_i32$4; + i64toi32_i32$4 = $644$hi; + i64toi32_i32$1 = $540_1; + i64toi32_i32$2 = $654$hi; + i64toi32_i32$3 = $653_1; + i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$4 - i64toi32_i32$5 | 0; + $655_1 = i64toi32_i32$0; + $655$hi = i64toi32_i32$5; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$2 = i64toi32_i32$4 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$0 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + $19_1 = i64toi32_i32$2; + $19$hi = i64toi32_i32$0; + $658_1 = i64toi32_i32$2; + $658$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $544_1 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$0 >>> i64toi32_i32$1 | 0; + $544_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + $20_1 = $544_1; + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$5 = __wasm_i64_mul($20_1 | 0, i64toi32_i32$4 | 0, $16_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$5; + $21$hi = i64toi32_i32$4; + $664_1 = i64toi32_i32$5; + $664$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + $665_1 = $1_1; + $665$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $545_1 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$4 >>> i64toi32_i32$1 | 0; + $545_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$1 | 0) | 0; + } + $18_1 = $545_1; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = $665$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = __wasm_i64_mul($665_1 | 0, i64toi32_i32$5 | 0, $18_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $669_1 = i64toi32_i32$0; + $669$hi = i64toi32_i32$5; + i64toi32_i32$5 = $664$hi; + i64toi32_i32$4 = $664_1; + i64toi32_i32$0 = $669$hi; + i64toi32_i32$3 = $669_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $14_1 = i64toi32_i32$1; + $14$hi = i64toi32_i32$2; + i64toi32_i32$5 = i64toi32_i32$1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $546_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $546_1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + $22_1 = $546_1; + $22$hi = i64toi32_i32$4; + i64toi32_i32$4 = $658$hi; + i64toi32_i32$2 = $658_1; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$3 = $22_1; + $674_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $675$hi = i64toi32_i32$2; + i64toi32_i32$2 = $655$hi; + i64toi32_i32$3 = $655_1; + i64toi32_i32$4 = $675$hi; + i64toi32_i32$5 = $674_1; + i64toi32_i32$0 = i64toi32_i32$3 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$1 | 0; + $676_1 = i64toi32_i32$0; + $676$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $678$hi = i64toi32_i32$3; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$3 = $678$hi; + $580_1 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = __wasm_i64_mul($580_1 | 0, i64toi32_i32$3 | 0, $16_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $680_1 = i64toi32_i32$2; + $680$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $13$hi; + i64toi32_i32$1 = $13_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $683_1 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $683$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $683$hi; + i64toi32_i32$1 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $683_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $684_1 = i64toi32_i32$1; + $684$hi = i64toi32_i32$2; + i64toi32_i32$2 = $680$hi; + i64toi32_i32$3 = $680_1; + i64toi32_i32$1 = $684$hi; + i64toi32_i32$5 = $684_1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $685$hi = i64toi32_i32$0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$3 = __wasm_i64_mul($20_1 | 0, i64toi32_i32$0 | 0, $18_1 | 0, i64toi32_i32$3 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $688_1 = i64toi32_i32$3; + $688$hi = i64toi32_i32$0; + i64toi32_i32$0 = $685$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$3 = $688$hi; + i64toi32_i32$5 = $688_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $689_1 = i64toi32_i32$1; + $689$hi = i64toi32_i32$4; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$0 = $14_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $547_1 = i64toi32_i32$4 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >>> i64toi32_i32$3 | 0; + $547_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$3 | 0) | 0; + } + $691_1 = $547_1; + $691$hi = i64toi32_i32$2; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $21$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$4 = $14_1; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$5 = $21_1; + $694_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = $694_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + $549_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$3 | 0) | 0; + $549_1 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + } + $696$hi = i64toi32_i32$2; + i64toi32_i32$2 = $691$hi; + i64toi32_i32$4 = $691_1; + i64toi32_i32$5 = $696$hi; + i64toi32_i32$0 = $549_1; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $697_1 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + $697$hi = i64toi32_i32$5; + i64toi32_i32$5 = $689$hi; + i64toi32_i32$2 = $689_1; + i64toi32_i32$4 = $697$hi; + i64toi32_i32$0 = $697_1; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $698_1 = i64toi32_i32$3; + $698$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + $699_1 = $4_1; + $699$hi = i64toi32_i32$1; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$5 = $17_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $550_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $550_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$4 | 0) | 0; + } + $701$hi = i64toi32_i32$2; + i64toi32_i32$2 = $699$hi; + i64toi32_i32$5 = $701$hi; + i64toi32_i32$5 = __wasm_i64_mul($699_1 | 0, i64toi32_i32$2 | 0, $550_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $702_1 = i64toi32_i32$5; + $702$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + $703_1 = $3_1; + $703$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $551_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $551_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $705$hi = i64toi32_i32$5; + i64toi32_i32$5 = $703$hi; + i64toi32_i32$1 = $705$hi; + i64toi32_i32$1 = __wasm_i64_mul($703_1 | 0, i64toi32_i32$5 | 0, $551_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $706_1 = i64toi32_i32$1; + $706$hi = i64toi32_i32$5; + i64toi32_i32$5 = $702$hi; + i64toi32_i32$2 = $702_1; + i64toi32_i32$1 = $706$hi; + i64toi32_i32$0 = $706_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $707$hi = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$2 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$3 | 0, $18_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $710_1 = i64toi32_i32$2; + $710$hi = i64toi32_i32$3; + i64toi32_i32$3 = $707$hi; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$2 = $710$hi; + i64toi32_i32$0 = $710_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $711$hi = i64toi32_i32$4; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$4 = $13$hi; + i64toi32_i32$4 = $20$hi; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$5 = __wasm_i64_mul($20_1 | 0, i64toi32_i32$4 | 0, $13_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $714_1 = i64toi32_i32$5; + $714$hi = i64toi32_i32$4; + i64toi32_i32$4 = $711$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$5 = $714$hi; + i64toi32_i32$0 = $714_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$5 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$5 | 0; + $553_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$5 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$5 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$5 | 0) | 0; + $553_1 = i64toi32_i32$4 << i64toi32_i32$5 | 0; + } + $716$hi = i64toi32_i32$3; + i64toi32_i32$3 = $698$hi; + i64toi32_i32$1 = $698_1; + i64toi32_i32$4 = $716$hi; + i64toi32_i32$0 = $553_1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $717$hi = i64toi32_i32$2; + i64toi32_i32$2 = $676$hi; + i64toi32_i32$3 = $676_1; + i64toi32_i32$1 = $717$hi; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$4 = i64toi32_i32$3 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + $16_1 = i64toi32_i32$4; + $16$hi = i64toi32_i32$5; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$2 = $19_1; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$0 = $22_1; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + $1_1 = i64toi32_i32$1; + $1$hi = i64toi32_i32$4; + $6_1 = $6_1 + -1 | 0; + break label$14; + } + i64toi32_i32$4 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 33; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $554_1 = i64toi32_i32$4 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >>> i64toi32_i32$3 | 0; + $554_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0; + } + $18_1 = $554_1; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$4 << i64toi32_i32$3 | 0; + $555_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$3 | 0) | 0; + $555_1 = i64toi32_i32$4 << i64toi32_i32$3 | 0; + } + $727_1 = $555_1; + $727$hi = i64toi32_i32$5; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $556_1 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + $556_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$3 | 0) | 0; + } + $729_1 = $556_1; + $729$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$5 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 63; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + $557_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$3 | 0) | 0; + $557_1 = i64toi32_i32$5 << i64toi32_i32$3 | 0; + } + $731$hi = i64toi32_i32$2; + i64toi32_i32$2 = $729$hi; + i64toi32_i32$4 = $729_1; + i64toi32_i32$5 = $731$hi; + i64toi32_i32$0 = $557_1; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $4_1 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + $4$hi = i64toi32_i32$5; + i64toi32_i32$2 = $4_1; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = -1; + i64toi32_i32$4 = i64toi32_i32$5 & i64toi32_i32$4 | 0; + $1_1 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $1$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = -1; + i64toi32_i32$2 = i64toi32_i32$4 & i64toi32_i32$2 | 0; + $16_1 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$5 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $16_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $20_1 = i64toi32_i32$5; + $20$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = 0; + $741_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$2 | 0) != (i64toi32_i32$5 | 0) | 0; + i64toi32_i32$4 = 0; + $742$hi = i64toi32_i32$4; + i64toi32_i32$4 = $727$hi; + i64toi32_i32$0 = $727_1; + i64toi32_i32$2 = $742$hi; + i64toi32_i32$5 = $741_1; + i64toi32_i32$3 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$4 - i64toi32_i32$1 | 0; + $743_1 = i64toi32_i32$3; + $743$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$5 = $20_1; + i64toi32_i32$2 = i64toi32_i32$4 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$1 - i64toi32_i32$3 | 0; + $19_1 = i64toi32_i32$2; + $19$hi = i64toi32_i32$3; + $746_1 = i64toi32_i32$2; + $746$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + $747_1 = $1_1; + $747$hi = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $559_1 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + $559_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$0 | 0) | 0; + } + $20_1 = $559_1; + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $747$hi; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = __wasm_i64_mul($747_1 | 0, i64toi32_i32$4 | 0, $20_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + $752_1 = i64toi32_i32$1; + $752$hi = i64toi32_i32$4; + i64toi32_i32$4 = $18$hi; + $753_1 = $18_1; + $753$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 31; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $562_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $562_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + $755$hi = i64toi32_i32$1; + i64toi32_i32$1 = $753$hi; + i64toi32_i32$4 = $753_1; + i64toi32_i32$3 = $755$hi; + i64toi32_i32$5 = $562_1; + i64toi32_i32$3 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $22_1 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $22$hi = i64toi32_i32$3; + i64toi32_i32$1 = $22_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + $14_1 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $14$hi = i64toi32_i32$4; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = __wasm_i64_mul($14_1 | 0, i64toi32_i32$4 | 0, $16_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $761_1 = i64toi32_i32$1; + $761$hi = i64toi32_i32$4; + i64toi32_i32$4 = $752$hi; + i64toi32_i32$3 = $752_1; + i64toi32_i32$1 = $761$hi; + i64toi32_i32$5 = $761_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $18_1 = i64toi32_i32$0; + $18$hi = i64toi32_i32$2; + i64toi32_i32$4 = i64toi32_i32$0; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + $563_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$1 | 0) | 0; + $563_1 = i64toi32_i32$4 << i64toi32_i32$1 | 0; + } + $23_1 = $563_1; + $23$hi = i64toi32_i32$3; + i64toi32_i32$3 = $746$hi; + i64toi32_i32$2 = $746_1; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$5 = $23_1; + $766_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $767$hi = i64toi32_i32$2; + i64toi32_i32$2 = $743$hi; + i64toi32_i32$5 = $743_1; + i64toi32_i32$3 = $767$hi; + i64toi32_i32$4 = $766_1; + i64toi32_i32$1 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + $768_1 = i64toi32_i32$1; + $768$hi = i64toi32_i32$0; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$5 = __wasm_i64_mul($14_1 | 0, i64toi32_i32$0 | 0, $20_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $771_1 = i64toi32_i32$5; + $771$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 1; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $564_1 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + $564_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$3 | 0) | 0; + } + $14_1 = $564_1; + $14$hi = i64toi32_i32$5; + i64toi32_i32$0 = $14_1; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$2 = i64toi32_i32$5 & i64toi32_i32$2 | 0; + $775$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $775$hi; + $582_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$0 = __wasm_i64_mul($582_1 | 0, i64toi32_i32$2 | 0, $16_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $777_1 = i64toi32_i32$0; + $777$hi = i64toi32_i32$2; + i64toi32_i32$2 = $771$hi; + i64toi32_i32$5 = $771_1; + i64toi32_i32$0 = $777$hi; + i64toi32_i32$4 = $777_1; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $778$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$2 = $13_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $781_1 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + $781$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$2 = $781$hi; + i64toi32_i32$2 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$5 | 0, $781_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $782_1 = i64toi32_i32$2; + $782$hi = i64toi32_i32$5; + i64toi32_i32$5 = $778$hi; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$2 = $782$hi; + i64toi32_i32$4 = $782_1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $783_1 = i64toi32_i32$0; + $783$hi = i64toi32_i32$3; + i64toi32_i32$3 = $18$hi; + i64toi32_i32$5 = $18_1; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 32; + i64toi32_i32$2 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $565_1 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + $565_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$2 | 0) | 0; + } + $785_1 = $565_1; + $785$hi = i64toi32_i32$1; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = $18$hi; + i64toi32_i32$3 = $18_1; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$4 = $21_1; + $788_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = $788_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$4 << i64toi32_i32$2 | 0; + $566_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$2 | 0) | 0; + $566_1 = i64toi32_i32$4 << i64toi32_i32$2 | 0; + } + $790$hi = i64toi32_i32$1; + i64toi32_i32$1 = $785$hi; + i64toi32_i32$3 = $785_1; + i64toi32_i32$4 = $790$hi; + i64toi32_i32$5 = $566_1; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + $791_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $791$hi = i64toi32_i32$4; + i64toi32_i32$4 = $783$hi; + i64toi32_i32$1 = $783_1; + i64toi32_i32$3 = $791$hi; + i64toi32_i32$5 = $791_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $792_1 = i64toi32_i32$2; + $792$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + $793_1 = $4_1; + $793$hi = i64toi32_i32$0; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$4 = $17_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $567_1 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + $567_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $795$hi = i64toi32_i32$1; + i64toi32_i32$1 = $793$hi; + i64toi32_i32$4 = $795$hi; + i64toi32_i32$4 = __wasm_i64_mul($793_1 | 0, i64toi32_i32$1 | 0, $567_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $796_1 = i64toi32_i32$4; + $796$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + $797_1 = $3_1; + $797$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 33; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $569_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $569_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$3 | 0) | 0; + } + $799$hi = i64toi32_i32$4; + i64toi32_i32$4 = $797$hi; + i64toi32_i32$0 = $799$hi; + i64toi32_i32$0 = __wasm_i64_mul($797_1 | 0, i64toi32_i32$4 | 0, $569_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $800_1 = i64toi32_i32$0; + $800$hi = i64toi32_i32$4; + i64toi32_i32$4 = $796$hi; + i64toi32_i32$1 = $796_1; + i64toi32_i32$0 = $800$hi; + i64toi32_i32$5 = $800_1; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $801$hi = i64toi32_i32$2; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = __wasm_i64_mul($14_1 | 0, i64toi32_i32$2 | 0, $20_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $804_1 = i64toi32_i32$1; + $804$hi = i64toi32_i32$2; + i64toi32_i32$2 = $801$hi; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$1 = $804$hi; + i64toi32_i32$5 = $804_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $805$hi = i64toi32_i32$3; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$3 = $13$hi; + i64toi32_i32$3 = $22$hi; + i64toi32_i32$4 = $13$hi; + i64toi32_i32$4 = __wasm_i64_mul($22_1 | 0, i64toi32_i32$3 | 0, $13_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $808_1 = i64toi32_i32$4; + $808$hi = i64toi32_i32$3; + i64toi32_i32$3 = $805$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$4 = $808$hi; + i64toi32_i32$5 = $808_1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $570_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $570_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + $810$hi = i64toi32_i32$2; + i64toi32_i32$2 = $792$hi; + i64toi32_i32$0 = $792_1; + i64toi32_i32$3 = $810$hi; + i64toi32_i32$5 = $570_1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $811$hi = i64toi32_i32$1; + i64toi32_i32$1 = $768$hi; + i64toi32_i32$2 = $768_1; + i64toi32_i32$0 = $811$hi; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$4 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$4 | 0; + $16_1 = i64toi32_i32$3; + $16$hi = i64toi32_i32$4; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$4 = $23$hi; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$1 = $19_1; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$5 = $23_1; + i64toi32_i32$0 = i64toi32_i32$1 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$3 = i64toi32_i32$4 - i64toi32_i32$3 | 0; + $1_1 = i64toi32_i32$0; + $1$hi = i64toi32_i32$3; + i64toi32_i32$3 = $14$hi; + $2_1 = $14_1; + $2$hi = i64toi32_i32$3; + } + label$16 : { + if (($6_1 | 0) < (16384 | 0)) { + break label$16 + } + i64toi32_i32$3 = $15$hi; + i64toi32_i32$4 = $15_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $15_1 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$4; + } + $7_1 = $6_1 + 16383 | 0; + label$17 : { + if (($6_1 | 0) > (-16383 | 0)) { + break label$17 + } + label$18 : { + if ($7_1) { + break label$18 + } + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$4 = 65535; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$1 & i64toi32_i32$4 | 0; + $827_1 = i64toi32_i32$3 & i64toi32_i32$5 | 0; + $827$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + $828_1 = $4_1; + $828$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + $571_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $571_1 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + } + $830$hi = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $830$hi; + i64toi32_i32$4 = $571_1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$5 = $3_1; + $832_1 = i64toi32_i32$3 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$4 >>> 0 > i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$5 = $16_1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 1; + i64toi32_i32$2 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$2 | 0; + $572_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $572_1 = i64toi32_i32$5 << i64toi32_i32$2 | 0; + } + $834_1 = $572_1; + $834$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 63; + i64toi32_i32$2 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $574_1 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + $574_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$2 | 0) | 0; + } + $836$hi = i64toi32_i32$5; + i64toi32_i32$5 = $834$hi; + i64toi32_i32$3 = $834_1; + i64toi32_i32$4 = $836$hi; + i64toi32_i32$1 = $574_1; + i64toi32_i32$4 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $1_1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $1$hi = i64toi32_i32$4; + i64toi32_i32$4 = $17$hi; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = $17$hi; + i64toi32_i32$1 = $17_1; + $840_1 = i64toi32_i32$4 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$1 = $1_1; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$3 = $17_1; + $844_1 = (i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$4 | 0) | 0 ? $832_1 : $840_1; + i64toi32_i32$1 = 0; + $845$hi = i64toi32_i32$1; + i64toi32_i32$1 = $828$hi; + i64toi32_i32$3 = $828_1; + i64toi32_i32$5 = $845$hi; + i64toi32_i32$4 = $844_1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $1_1 = i64toi32_i32$2; + $1$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$4 = $4_1; + $849_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $850$hi = i64toi32_i32$1; + i64toi32_i32$1 = $827$hi; + i64toi32_i32$4 = $827_1; + i64toi32_i32$0 = $850$hi; + i64toi32_i32$3 = $849_1; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $3_1 = i64toi32_i32$5; + $3$hi = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$4 = 65536; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + if (!(i64toi32_i32$1 & i64toi32_i32$3 | 0 | i64toi32_i32$4 | 0)) { + break label$18 + } + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $15$hi; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$3 = $15_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $15$hi = i64toi32_i32$1; + break label$4; + } + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$4; + } + i64toi32_i32$1 = 0; + i64toi32_i32$4 = $7_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + $575_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $575_1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + } + $860$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$4 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$4 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + $862_1 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $862$hi = i64toi32_i32$4; + i64toi32_i32$4 = $860$hi; + i64toi32_i32$2 = $575_1; + i64toi32_i32$1 = $862$hi; + i64toi32_i32$3 = $862_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $863_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $863$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + $864_1 = $4_1; + $864$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 1; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + $576_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $576_1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + } + $866$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $866$hi; + i64toi32_i32$1 = $576_1; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$3 = $3_1; + $868_1 = i64toi32_i32$2 >>> 0 > i64toi32_i32$4 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$3 = $16_1; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = 1; + i64toi32_i32$0 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $577_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $577_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + $870_1 = $577_1; + $870$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = 63; + i64toi32_i32$0 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $579_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $579_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$0 | 0) | 0; + } + $872$hi = i64toi32_i32$3; + i64toi32_i32$3 = $870$hi; + i64toi32_i32$2 = $870_1; + i64toi32_i32$1 = $872$hi; + i64toi32_i32$4 = $579_1; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $1_1 = i64toi32_i32$2 | i64toi32_i32$4 | 0; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$4 = $17_1; + $876_1 = i64toi32_i32$1 >>> 0 > i64toi32_i32$2 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$3 >>> 0 >= i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$4 = $1_1; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$2 = $17_1; + $880_1 = (i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & (i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) | 0 ? $868_1 : $876_1; + i64toi32_i32$4 = 0; + $881$hi = i64toi32_i32$4; + i64toi32_i32$4 = $864$hi; + i64toi32_i32$2 = $864_1; + i64toi32_i32$3 = $881$hi; + i64toi32_i32$1 = $880_1; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $1_1 = i64toi32_i32$0; + $1$hi = i64toi32_i32$5; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$4 = i64toi32_i32$0; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + $885_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $886$hi = i64toi32_i32$4; + i64toi32_i32$4 = $863$hi; + i64toi32_i32$1 = $863_1; + i64toi32_i32$5 = $886$hi; + i64toi32_i32$2 = $885_1; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $887$hi = i64toi32_i32$0; + i64toi32_i32$0 = $15$hi; + i64toi32_i32$0 = $887$hi; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$2 = $15_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $15_1 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $15$hi = i64toi32_i32$1; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$4 = $0_1; + HEAP32[i64toi32_i32$4 >> 2] = $1_1; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = $15$hi; + HEAP32[(i64toi32_i32$4 + 8 | 0) >> 2] = $15_1; + HEAP32[(i64toi32_i32$4 + 12 | 0) >> 2] = i64toi32_i32$1; + label$19 : { + $11_1 = $5_1 + 192 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + return; + } + i64toi32_i32$4 = $0_1; + i64toi32_i32$1 = 0; + HEAP32[i64toi32_i32$4 >> 2] = 0; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = (i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$4 | 0) != (i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$4 = 2147450880; + i64toi32_i32$0 = i64toi32_i32$5 ? $15_1 : 0; + i64toi32_i32$2 = i64toi32_i32$5 ? i64toi32_i32$1 : i64toi32_i32$4; + $907_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $907_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + label$21 : { + $12_1 = $5_1 + 192 | 0; + if ($12_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + } + + function $938($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = +$1_1; + var i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $8_1 = 0, $8$hi = 0, $2_1 = 0, $6_1 = 0, $9_1 = 0, $9$hi = 0, $6$hi = 0, $7$hi = 0, $28_1 = 0, $29_1 = 0, $30_1 = 0, $31_1 = 0, $32_1 = 0, $3_1 = 0, $33_1 = 0, $5_1 = 0, $4_1 = 0, $7_1 = 0, $41_1 = 0, $42_1 = 0, $42$hi = 0, $46_1 = 0, $59_1 = 0, $59$hi = 0, $63$hi = 0, $72_1 = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $4_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + wasm2js_scratch_store_f64(+$1_1); + i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; + $6_1 = wasm2js_scratch_load_i32(0 | 0) | 0; + $6$hi = i64toi32_i32$0; + i64toi32_i32$2 = $6_1; + i64toi32_i32$1 = -2147483648; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $7_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $7$hi = i64toi32_i32$1; + label$3 : { + label$4 : { + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $8_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $8$hi = i64toi32_i32$2; + i64toi32_i32$1 = $8_1; + i64toi32_i32$0 = -1048576; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$1 = 2145386495; + i64toi32_i32$3 = -1; + if (i64toi32_i32$5 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$4 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$4 + } + i64toi32_i32$2 = $8$hi; + i64toi32_i32$3 = $8_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 60; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $28_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $28_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + $9_1 = $28_1; + $9$hi = i64toi32_i32$5; + i64toi32_i32$5 = $8$hi; + i64toi32_i32$2 = $8_1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 4; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $29_1 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + $29_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$0 | 0) | 0; + } + i64toi32_i32$5 = $29_1; + i64toi32_i32$2 = 1006632960; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $8_1 = i64toi32_i32$0; + $8$hi = i64toi32_i32$4; + break label$3; + } + label$5 : { + i64toi32_i32$4 = $8$hi; + i64toi32_i32$3 = $8_1; + i64toi32_i32$5 = 2146435072; + i64toi32_i32$1 = 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$5 + } + i64toi32_i32$3 = $6$hi; + i64toi32_i32$1 = $6_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 60; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + $30_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$2 | 0) | 0; + $30_1 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + } + $9_1 = $30_1; + $9$hi = i64toi32_i32$4; + i64toi32_i32$4 = $6$hi; + i64toi32_i32$3 = $6_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 4; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $31_1 = i64toi32_i32$4 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$4 >>> i64toi32_i32$2 | 0; + $31_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$2 | 0) | 0; + } + i64toi32_i32$4 = $31_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $8_1 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $8$hi = i64toi32_i32$3; + break label$3; + } + label$6 : { + i64toi32_i32$3 = $8$hi; + if (!!($8_1 | i64toi32_i32$3 | 0)) { + break label$6 + } + i64toi32_i32$3 = 0; + $9_1 = 0; + $9$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + $8_1 = 0; + $8$hi = i64toi32_i32$3; + break label$3; + } + $41_1 = $2_1; + i64toi32_i32$3 = $8$hi; + $42_1 = $8_1; + $42$hi = i64toi32_i32$3; + i64toi32_i32$3 = $6$hi; + $46_1 = Math_clz32($6_1) + 32 | 0; + i64toi32_i32$3 = $8$hi; + i64toi32_i32$1 = $8_1; + i64toi32_i32$4 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$2 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $32_1 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$3 >>> i64toi32_i32$2 | 0; + $32_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$2 | 0) | 0; + } + i64toi32_i32$4 = $8$hi; + i64toi32_i32$3 = $8_1; + i64toi32_i32$1 = 1; + i64toi32_i32$5 = 0; + $3_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0 ? $46_1 : Math_clz32($32_1); + i64toi32_i32$3 = $42$hi; + i64toi32_i32$4 = 0; + $934($41_1 | 0, $42_1 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$4 | 0, $3_1 + 49 | 0 | 0); + i64toi32_i32$5 = $2_1 + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$4 = 65536; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = i64toi32_i32$3 ^ i64toi32_i32$4 | 0; + $59_1 = i64toi32_i32$5 ^ i64toi32_i32$1 | 0; + $59$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 15372 - $3_1 | 0; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 48; + i64toi32_i32$2 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$3 << i64toi32_i32$2 | 0; + $33_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $33_1 = i64toi32_i32$3 << i64toi32_i32$2 | 0; + } + $63$hi = i64toi32_i32$5; + i64toi32_i32$5 = $59$hi; + i64toi32_i32$4 = $59_1; + i64toi32_i32$3 = $63$hi; + i64toi32_i32$1 = $33_1; + i64toi32_i32$3 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $8_1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $8$hi = i64toi32_i32$3; + i64toi32_i32$5 = $2_1; + i64toi32_i32$3 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $9_1 = i64toi32_i32$3; + $9$hi = i64toi32_i32$4; + } + i64toi32_i32$4 = $9$hi; + i64toi32_i32$3 = $0_1; + HEAP32[i64toi32_i32$3 >> 2] = $9_1; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$4; + i64toi32_i32$4 = $8$hi; + i64toi32_i32$4 = $7$hi; + i64toi32_i32$4 = $8$hi; + i64toi32_i32$5 = $8_1; + i64toi32_i32$3 = $7$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + $72_1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + i64toi32_i32$5 = $0_1; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $72_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$3; + label$7 : { + $5_1 = $2_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + } + + function $939($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = Math_fround($1_1); + var i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $5_1 = 0, i64toi32_i32$4 = 0, $2_1 = 0, $8_1 = 0, $8$hi = 0, $9_1 = 0, $9$hi = 0, $3_1 = 0, $27_1 = 0, $28_1 = 0, $29_1 = 0, $30_1 = 0, $7_1 = 0, $6_1 = 0, $4_1 = 0, $39_1 = 0, $47_1 = 0, $47$hi = 0, $51$hi = 0, $57_1 = 0, $58_1 = 0, $58$hi = 0, $61$hi = 0, $62_1 = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $6_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + $3_1 = (wasm2js_scratch_store_f32($1_1), wasm2js_scratch_load_i32(0)); + $4_1 = $3_1 & -2147483648 | 0; + label$3 : { + label$4 : { + $5_1 = $3_1 & 2147483647 | 0; + if (($5_1 + -8388608 | 0) >>> 0 > 2130706431 >>> 0) { + break label$4 + } + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $5_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 25; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $27_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $27_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + i64toi32_i32$0 = $27_1; + i64toi32_i32$2 = 1065353216; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $8_1 = i64toi32_i32$4; + $8$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + $9_1 = 0; + $9$hi = i64toi32_i32$5; + break label$3; + } + label$5 : { + if ($5_1 >>> 0 < 2139095040 >>> 0) { + break label$5 + } + i64toi32_i32$5 = 0; + i64toi32_i32$1 = $3_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 25; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + $28_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$2 | 0) | 0; + $28_1 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + } + i64toi32_i32$5 = $28_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $8_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $9_1 = 0; + $9$hi = i64toi32_i32$1; + break label$3; + } + label$6 : { + if ($5_1) { + break label$6 + } + i64toi32_i32$1 = 0; + $9_1 = 0; + $9$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $8_1 = 0; + $8$hi = i64toi32_i32$1; + break label$3; + } + i64toi32_i32$1 = 0; + $39_1 = $5_1; + $5_1 = Math_clz32($5_1); + i64toi32_i32$5 = 0; + $934($2_1 | 0, $39_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, $5_1 + 81 | 0 | 0); + i64toi32_i32$0 = $2_1 + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$5 = 65536; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = i64toi32_i32$1 ^ i64toi32_i32$5 | 0; + $47_1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0; + $47$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 16265 - $5_1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + $29_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$2 | 0) | 0; + $29_1 = i64toi32_i32$1 << i64toi32_i32$2 | 0; + } + $51$hi = i64toi32_i32$0; + i64toi32_i32$0 = $47$hi; + i64toi32_i32$5 = $47_1; + i64toi32_i32$1 = $51$hi; + i64toi32_i32$3 = $29_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $8_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $8$hi = i64toi32_i32$1; + i64toi32_i32$0 = $2_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $9_1 = i64toi32_i32$1; + $9$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $9$hi; + i64toi32_i32$1 = $0_1; + HEAP32[i64toi32_i32$1 >> 2] = $9_1; + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$5; + $57_1 = i64toi32_i32$1; + i64toi32_i32$5 = $8$hi; + $58_1 = $8_1; + $58$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$0 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $30_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$2 | 0) | 0; + $30_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $61$hi = i64toi32_i32$1; + i64toi32_i32$1 = $58$hi; + i64toi32_i32$5 = $58_1; + i64toi32_i32$0 = $61$hi; + i64toi32_i32$3 = $30_1; + i64toi32_i32$0 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $62_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + i64toi32_i32$5 = $57_1; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $62_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$0; + label$7 : { + $7_1 = $2_1 + 16 | 0; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + } + + function $940($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, $3_1 = 0, i64toi32_i32$4 = 0, $2_1 = 0, $6_1 = 0, $6$hi = 0, $7_1 = 0, $7$hi = 0, $23_1 = 0, $24_1 = 0, $5_1 = 0, $4_1 = 0, $25_1 = 0, $33_1 = 0, $33$hi = 0, $37$hi = 0, $38_1 = 0, $38$hi = 0, $42$hi = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $4_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + if ($1_1) { + break label$4 + } + i64toi32_i32$0 = 0; + $6_1 = 0; + $6$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $7_1 = 0; + $7$hi = i64toi32_i32$0; + break label$3; + } + $3_1 = $1_1 >> 31 | 0; + $3_1 = ($1_1 + $3_1 | 0) ^ $3_1 | 0; + i64toi32_i32$0 = 0; + $25_1 = $3_1; + $3_1 = Math_clz32($3_1); + i64toi32_i32$1 = 0; + $934($2_1 | 0, $25_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0, $3_1 + 81 | 0 | 0); + i64toi32_i32$2 = $2_1 + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = 65536; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$1 | 0; + $33_1 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0; + $33$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 16414 - $3_1 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $23_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $23_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $37$hi = i64toi32_i32$2; + i64toi32_i32$2 = $33$hi; + i64toi32_i32$1 = $33_1; + i64toi32_i32$0 = $37$hi; + i64toi32_i32$3 = $23_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $38_1 = i64toi32_i32$4; + $38$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = $1_1 & -2147483648 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + $24_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$0 | 0) | 0; + $24_1 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + } + $42$hi = i64toi32_i32$1; + i64toi32_i32$1 = $38$hi; + i64toi32_i32$5 = $38_1; + i64toi32_i32$2 = $42$hi; + i64toi32_i32$3 = $24_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $7_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $7$hi = i64toi32_i32$2; + i64toi32_i32$1 = $2_1; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $6_1 = i64toi32_i32$2; + $6$hi = i64toi32_i32$5; + } + i64toi32_i32$5 = $6$hi; + i64toi32_i32$2 = $0_1; + HEAP32[i64toi32_i32$2 >> 2] = $6_1; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$5; + i64toi32_i32$5 = $7$hi; + HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] = $7_1; + HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] = i64toi32_i32$5; + label$5 : { + $5_1 = $2_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + } + + function $941($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $2_1 = 0, $5_1 = 0, $5$hi = 0, $6_1 = 0, $6$hi = 0, $19_1 = 0, $4_1 = 0, $3_1 = 0, $17_1 = 0, $26_1 = 0, $26$hi = 0, $30$hi = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $3_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $3_1; + } + label$3 : { + label$4 : { + if ($1_1) { + break label$4 + } + i64toi32_i32$0 = 0; + $5_1 = 0; + $5$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $6_1 = 0; + $6$hi = i64toi32_i32$0; + break label$3; + } + i64toi32_i32$0 = 0; + $17_1 = $1_1; + $1_1 = Math_clz32($1_1) ^ 31 | 0; + i64toi32_i32$1 = 0; + $934($2_1 | 0, $17_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$1 | 0, 112 - $1_1 | 0 | 0); + i64toi32_i32$2 = $2_1 + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$1 = 65536; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$1 | 0; + $26_1 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0; + $26$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = $1_1 + 16383 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $19_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $19_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $30$hi = i64toi32_i32$2; + i64toi32_i32$2 = $26$hi; + i64toi32_i32$1 = $26_1; + i64toi32_i32$0 = $30$hi; + i64toi32_i32$3 = $19_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $6_1 = i64toi32_i32$4; + $6$hi = i64toi32_i32$5; + i64toi32_i32$2 = $2_1; + i64toi32_i32$5 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $5_1 = i64toi32_i32$5; + $5$hi = i64toi32_i32$1; + } + i64toi32_i32$1 = $5$hi; + i64toi32_i32$5 = $0_1; + HEAP32[i64toi32_i32$5 >> 2] = $5_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$1 = $6$hi; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $6_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$1; + label$5 : { + $4_1 = $2_1 + 16 | 0; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + } + + function $942($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $4$hi = 0, $18_1 = 0, $20_1 = 0, $21_1 = 0, $22_1 = 0, $11$hi = 0, $18$hi = 0, $19_1 = 0, $19$hi = 0, $4_1 = 0, $24$hi = 0; + label$1 : { + label$2 : { + if (!($3_1 & 64 | 0)) { + break label$2 + } + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = 0; + $11$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = $11$hi; + i64toi32_i32$3 = $3_1 + -64 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $18_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $18_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $1_1 = $18_1; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $2_1 = 0; + $2$hi = i64toi32_i32$1; + break label$1; + } + if (!$3_1) { + break label$1 + } + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = 0; + $18$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$3 = 64 - $3_1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $20_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $20_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $19_1 = $20_1; + $19$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = 0; + $4_1 = $3_1; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $21_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $21_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $24$hi = i64toi32_i32$0; + i64toi32_i32$0 = $19$hi; + i64toi32_i32$2 = $19_1; + i64toi32_i32$1 = $24$hi; + i64toi32_i32$3 = $21_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $1_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $1$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $22_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $22_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $2_1 = $22_1; + $2$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $0_1; + HEAP32[i64toi32_i32$0 >> 2] = $1_1; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $2_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$2; + } + + function $943($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, $5_1 = 0, $16$hi = 0, $16_1 = 0, $14$hi = 0, $13$hi = 0, $12$hi = 0, $17$hi = 0, $14_1 = 0, $6_1 = 0, $17_1 = 0, $13_1 = 0, $12_1 = 0, $20$hi = 0, $8_1 = 0, $20_1 = 0, $15$hi = 0, $18$hi = 0, $19$hi = 0, $7_1 = 0, $15_1 = 0, $18_1 = 0, $19_1 = 0, $21$hi = 0, $24$hi = 0, $21_1 = 0, $9_1 = 0, $22$hi = 0, $23$hi = 0, $25$hi = 0, $26$hi = 0, $230_1 = 0, $231_1 = 0, $232_1 = 0, $234_1 = 0, $235_1 = 0, $236_1 = 0, $237_1 = 0, $238_1 = 0, $239_1 = 0, $240_1 = 0, $241_1 = 0, $243_1 = 0, $244_1 = 0, $245_1 = 0, $246_1 = 0, $247_1 = 0, $248_1 = 0, $250_1 = 0, $252_1 = 0, $254_1 = 0, $255_1 = 0, $257_1 = 0, $22_1 = 0, $258_1 = 0, $260_1 = 0, $23_1 = 0, $24_1 = 0, $262_1 = 0, $26_1 = 0, $263_1 = 0, $264_1 = 0, $265_1 = 0, $266_1 = 0, $267_1 = 0, $268_1 = 0, $269_1 = 0, $271_1 = 0, $272_1 = 0, $273_1 = 0, $274_1 = 0, $276_1 = 0, $277_1 = 0, $278_1 = 0, $279_1 = 0, $280_1 = 0, $11_1 = 0, $10_1 = 0, $35_1 = 0, $35$hi = 0, $37$hi = 0, $40_1 = 0, $40$hi = 0, $42$hi = 0, $45_1 = 0, $45$hi = 0, $49$hi = 0, $76_1 = 0, $80_1 = 0, $87_1 = 0, $91_1 = 0, $100_1 = 0, $100$hi = 0, $112_1 = 0, $112$hi = 0, $134_1 = 0, $135_1 = 0, $135$hi = 0, $136_1 = 0, $136$hi = 0, $143$hi = 0, $146$hi = 0, $156_1 = 0, $156$hi = 0, $161$hi = 0, $168_1 = 0, $169_1 = 0, $169$hi = 0, $170_1 = 0, $170$hi = 0, $177$hi = 0, $180$hi = 0, $192_1 = 0, $192$hi = 0, $197$hi = 0, $200_1 = 0, $200$hi = 0, $202$hi = 0, $213_1 = 0, $213$hi = 0, $221_1 = 0, $221$hi = 0, $228_1 = 0, $228$hi = 0, $233_1 = 0, $233$hi = 0, $242_1 = 0, $242$hi = 0, $249_1 = 0, $249$hi = 0, $251_1 = 0, $251$hi = 0, $253_1 = 0, $253$hi = 0, $256_1 = 0, $258$hi = 0, $259_1 = 0, $259$hi = 0, $261_1 = 0, $261$hi = 0, $270_1 = 0, $270$hi = 0, $275_1 = 0, $275$hi = 0, $283_1 = 0, $283$hi = 0, $286$hi = 0, $25_1 = 0, $302_1 = 0, $302$hi = 0, $306_1 = 0, $307_1 = 0, $307$hi = 0, $311_1 = 0, $311$hi = 0, $315_1 = 0, $316$hi = 0, $317_1 = 0, $317$hi = 0, $318_1 = 0, $318$hi = 0, $321_1 = 0, $322$hi = 0, $325_1 = 0, $326$hi = 0, $327$hi = 0, $331_1 = 0, $332$hi = 0, $333$hi = 0, $336_1 = 0, $336$hi = 0, $337_1 = 0, $337$hi = 0, $344_1 = 0, $344$hi = 0, $350_1 = 0, $350$hi = 0, $352$hi = 0, $353_1 = 0, $353$hi = 0, $354_1 = 0, $354$hi = 0, $355_1 = 0, $355$hi = 0, $357$hi = 0, $361_1 = 0, $362$hi = 0, $363_1 = 0, $363$hi = 0, $364_1 = 0, $364$hi = 0, $366_1 = 0, $366$hi = 0, $369_1 = 0, $370$hi = 0, $373_1 = 0, $374$hi = 0, $375$hi = 0, $378_1 = 0, $379$hi = 0, $381$hi = 0, $382_1 = 0, $382$hi = 0, $386_1 = 0, $387$hi = 0, $388_1 = 0, $388$hi = 0, $389_1 = 0, $389$hi = 0, $392_1 = 0, $393$hi = 0, $396_1 = 0, $397$hi = 0, $398$hi = 0, $402_1 = 0, $403$hi = 0, $413_1 = 0, $413$hi = 0, $415$hi = 0, $418_1 = 0, $418$hi = 0, $420$hi = 0, $424_1 = 0, $424$hi = 0, $426$hi = 0, $460_1 = 0, $460$hi = 0, $462_1 = 0, $462$hi = 0, $463_1 = 0, $463$hi = 0, $465_1 = 0, $465$hi = 0, $469_1 = 0, $469$hi = 0, $471_1 = 0, $472$hi = 0, $477_1 = 0, $477$hi = 0, $481_1 = 0, $481$hi = 0, $490$hi = 0, $492_1 = 0, $492$hi = 0, $498_1 = 0, $504_1 = 0, $504$hi = 0, $509_1 = 0, $510$hi = 0, $514_1 = 0, $514$hi = 0, $518_1 = 0, $518$hi = 0, $521_1 = 0, $521$hi = 0, $525_1 = 0, $526$hi = 0; + label$1 : { + $5_1 = global$0 - 96 | 0; + $10_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $230_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $230_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $35_1 = $230_1; + $35$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $231_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $231_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $37$hi = i64toi32_i32$2; + i64toi32_i32$2 = $35$hi; + i64toi32_i32$1 = $35_1; + i64toi32_i32$0 = $37$hi; + i64toi32_i32$3 = $231_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $12_1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 17; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $232_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $232_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $40_1 = $232_1; + $40$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 47; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $234_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $234_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $42$hi = i64toi32_i32$2; + i64toi32_i32$2 = $40$hi; + i64toi32_i32$1 = $40_1; + i64toi32_i32$0 = $42$hi; + i64toi32_i32$3 = $234_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $13_1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $13$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 49; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $235_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $235_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $45_1 = $235_1; + $45$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$2 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $14_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $14$hi = i64toi32_i32$2; + i64toi32_i32$1 = $14_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 15; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $236_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $236_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $49$hi = i64toi32_i32$0; + i64toi32_i32$0 = $45$hi; + i64toi32_i32$2 = $45_1; + i64toi32_i32$1 = $49$hi; + i64toi32_i32$3 = $236_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $15_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $15$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$2 = i64toi32_i32$1 ^ i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$3 | 0; + i64toi32_i32$0 = -2147483648; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $16_1 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $17_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $17$hi = i64toi32_i32$1; + i64toi32_i32$0 = $17_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $237_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $237_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $18_1 = $237_1; + $18$hi = i64toi32_i32$2; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$1 = $14_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 17; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $238_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $238_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $19_1 = $238_1; + $19$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $239_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $239_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $6_1 = $239_1 & 32767 | 0; + label$3 : { + label$4 : { + label$5 : { + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $240_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $240_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $7_1 = $240_1 & 32767 | 0; + if (($7_1 + -1 | 0) >>> 0 > 32765 >>> 0) { + break label$5 + } + $8_1 = 0; + if (($6_1 + -1 | 0) >>> 0 < 32766 >>> 0) { + break label$4 + } + } + label$6 : { + i64toi32_i32$2 = $1$hi; + $76_1 = !($1_1 | i64toi32_i32$2 | 0); + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$0 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $20_1 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $20$hi = i64toi32_i32$0; + i64toi32_i32$2 = $20_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$3 = 0; + $80_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$3 = $20_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$1 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) | 0 ? $76_1 : $80_1) { + break label$6 + } + i64toi32_i32$3 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$2 = 32768; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + $16_1 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $16$hi = i64toi32_i32$2; + break label$3; + } + label$7 : { + i64toi32_i32$2 = $3$hi; + $87_1 = !($3_1 | i64toi32_i32$2 | 0); + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$0 = -1; + i64toi32_i32$1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + $2_1 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + $2$hi = i64toi32_i32$1; + i64toi32_i32$2 = $2_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$0 = 0; + $91_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$0 = $2_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$1 | 0) | 0 ? $87_1 : $91_1) { + break label$7 + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$2 = 32768; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $16_1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + $1_1 = $3_1; + $1$hi = i64toi32_i32$2; + break label$3; + } + label$8 : { + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$0 = $20_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0; + $100_1 = i64toi32_i32$0 ^ i64toi32_i32$1 | 0; + $100$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$0 = $100$hi; + i64toi32_i32$1 = $100_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$3 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$2 | 0) | 0) { + break label$8 + } + label$9 : { + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + if (!!(i64toi32_i32$1 | i64toi32_i32$2 | 0 | i64toi32_i32$0 | 0)) { + break label$9 + } + i64toi32_i32$0 = 2147450880; + $16_1 = 0; + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$0; + break label$3; + } + i64toi32_i32$0 = $16$hi; + i64toi32_i32$3 = $16_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $16_1 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + $16$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$3; + } + label$10 : { + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = i64toi32_i32$1 ^ i64toi32_i32$3 | 0; + $112_1 = i64toi32_i32$0 ^ i64toi32_i32$2 | 0; + $112$hi = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$0 = $112$hi; + i64toi32_i32$2 = $112_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$3 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0) { + break label$10 + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$0 = $20$hi; + i64toi32_i32$1 = $20_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + $2_1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$0; + label$11 : { + i64toi32_i32$0 = $2$hi; + if (!!($2_1 | i64toi32_i32$0 | 0)) { + break label$11 + } + i64toi32_i32$0 = 2147450880; + $16_1 = 0; + $16$hi = i64toi32_i32$0; + break label$3; + } + i64toi32_i32$0 = $16$hi; + i64toi32_i32$3 = $16_1; + i64toi32_i32$2 = 2147418112; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $16_1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $16$hi = i64toi32_i32$2; + break label$3; + } + label$12 : { + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $20$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$1 = $20_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$1 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$1 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$0 | 0) | 0) { + break label$12 + } + i64toi32_i32$2 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$2; + break label$3; + } + label$13 : { + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $3_1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) != (i64toi32_i32$0 | 0) | (i64toi32_i32$3 | 0) != (i64toi32_i32$1 | 0) | 0) { + break label$13 + } + i64toi32_i32$2 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$2; + break label$3; + } + $8_1 = 0; + label$14 : { + i64toi32_i32$2 = $20$hi; + i64toi32_i32$0 = $20_1; + i64toi32_i32$3 = 65535; + i64toi32_i32$1 = -1; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$14 + } + $134_1 = $5_1 + 80 | 0; + i64toi32_i32$0 = $1$hi; + $135_1 = $1_1; + $135$hi = i64toi32_i32$0; + i64toi32_i32$0 = $17$hi; + $136_1 = $17_1; + $136$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $17$hi; + $8_1 = !($17_1 | i64toi32_i32$0 | 0); + i64toi32_i32$4 = $8_1; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$3 = i64toi32_i32$4 ? $1_1 : $17_1; + i64toi32_i32$1 = i64toi32_i32$4 ? i64toi32_i32$0 : i64toi32_i32$2; + i64toi32_i32$0 = Math_clz32(i64toi32_i32$1); + i64toi32_i32$4 = 0; + if ((i64toi32_i32$0 | 0) == (32 | 0)) { + $241_1 = Math_clz32(i64toi32_i32$3) + 32 | 0 + } else { + $241_1 = i64toi32_i32$0 + } + $143$hi = i64toi32_i32$4; + i64toi32_i32$4 = 0; + $146$hi = i64toi32_i32$4; + i64toi32_i32$4 = $143$hi; + i64toi32_i32$3 = $241_1; + i64toi32_i32$1 = $146$hi; + i64toi32_i32$0 = $8_1 << 6 | 0; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$1 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $8_1 = i64toi32_i32$2; + i64toi32_i32$5 = $135$hi; + i64toi32_i32$3 = $136$hi; + $934($134_1 | 0, $135_1 | 0, i64toi32_i32$5 | 0, $136_1 | 0, i64toi32_i32$3 | 0, i64toi32_i32$2 + -15 | 0 | 0); + $8_1 = 16 - i64toi32_i32$2 | 0; + i64toi32_i32$4 = $5_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$4 + 80 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$4 + 84 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$5; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $243_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $243_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$1 | 0) | 0; + } + $156_1 = $243_1; + $156$hi = i64toi32_i32$3; + i64toi32_i32$5 = $5_1 + 88 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $17_1 = i64toi32_i32$3; + $17$hi = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + $244_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$1 | 0) | 0; + $244_1 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + } + $161$hi = i64toi32_i32$3; + i64toi32_i32$3 = $156$hi; + i64toi32_i32$4 = $156_1; + i64toi32_i32$5 = $161$hi; + i64toi32_i32$0 = $244_1; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $12_1 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + $12$hi = i64toi32_i32$5; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $245_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $245_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$1 | 0) | 0; + } + $18_1 = $245_1; + $18$hi = i64toi32_i32$4; + } + i64toi32_i32$4 = $2$hi; + i64toi32_i32$5 = $2_1; + i64toi32_i32$3 = 65535; + i64toi32_i32$0 = -1; + if (i64toi32_i32$4 >>> 0 > i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$0 >>> 0 | 0) | 0) { + break label$4 + } + $168_1 = $5_1 + 64 | 0; + i64toi32_i32$5 = $3$hi; + $169_1 = $3_1; + $169$hi = i64toi32_i32$5; + i64toi32_i32$5 = $14$hi; + $170_1 = $14_1; + $170$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = $14$hi; + $9_1 = !($14_1 | i64toi32_i32$5 | 0); + i64toi32_i32$1 = $9_1; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$1 ? $3_1 : $14_1; + i64toi32_i32$0 = i64toi32_i32$1 ? i64toi32_i32$5 : i64toi32_i32$4; + i64toi32_i32$5 = Math_clz32(i64toi32_i32$0); + i64toi32_i32$1 = 0; + if ((i64toi32_i32$5 | 0) == (32 | 0)) { + $246_1 = Math_clz32(i64toi32_i32$3) + 32 | 0 + } else { + $246_1 = i64toi32_i32$5 + } + $177$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $180$hi = i64toi32_i32$1; + i64toi32_i32$1 = $177$hi; + i64toi32_i32$3 = $246_1; + i64toi32_i32$0 = $180$hi; + i64toi32_i32$5 = $9_1 << 6 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $9_1 = i64toi32_i32$4; + i64toi32_i32$2 = $169$hi; + i64toi32_i32$3 = $170$hi; + $934($168_1 | 0, $169_1 | 0, i64toi32_i32$2 | 0, $170_1 | 0, i64toi32_i32$3 | 0, i64toi32_i32$4 + -15 | 0 | 0); + $8_1 = ($8_1 - i64toi32_i32$4 | 0) + 16 | 0; + i64toi32_i32$1 = $5_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] | 0; + $3_1 = i64toi32_i32$3; + $3$hi = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 49; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $247_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $247_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$0 | 0) | 0; + } + $192_1 = $247_1; + $192$hi = i64toi32_i32$3; + i64toi32_i32$2 = $5_1 + 72 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$1; + i64toi32_i32$2 = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 15; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + $248_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $248_1 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + } + $197$hi = i64toi32_i32$3; + i64toi32_i32$3 = $192$hi; + i64toi32_i32$1 = $192_1; + i64toi32_i32$2 = $197$hi; + i64toi32_i32$5 = $248_1; + i64toi32_i32$2 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + $15_1 = i64toi32_i32$1 | i64toi32_i32$5 | 0; + $15$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 17; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $250_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $250_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $200_1 = $250_1; + $200$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = $2_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 47; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + $252_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$0 | 0) | 0; + $252_1 = i64toi32_i32$2 << i64toi32_i32$0 | 0; + } + $202$hi = i64toi32_i32$3; + i64toi32_i32$3 = $200$hi; + i64toi32_i32$1 = $200_1; + i64toi32_i32$2 = $202$hi; + i64toi32_i32$5 = $252_1; + i64toi32_i32$2 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + $13_1 = i64toi32_i32$1 | i64toi32_i32$5 | 0; + $13$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 17; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $254_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $254_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $19_1 = $254_1; + $19$hi = i64toi32_i32$1; + } + i64toi32_i32$1 = $13$hi; + i64toi32_i32$2 = $13_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $2_1 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + $2$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $4_1 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$2 | 0, $4_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$2; + $213_1 = i64toi32_i32$1; + $213$hi = i64toi32_i32$2; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 15; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $255_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $255_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + i64toi32_i32$2 = $255_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = -32768; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $1_1 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + $1$hi = i64toi32_i32$3; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = -1; + i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $3_1 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $3$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $3_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $221_1 = i64toi32_i32$1; + $221$hi = i64toi32_i32$2; + i64toi32_i32$2 = $213$hi; + i64toi32_i32$3 = $213_1; + i64toi32_i32$1 = $221$hi; + i64toi32_i32$5 = $221_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $12_1 = i64toi32_i32$0; + $12$hi = i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 32; + i64toi32_i32$1 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + $257_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$1 | 0) | 0; + $257_1 = i64toi32_i32$2 << i64toi32_i32$1 | 0; + } + $14_1 = $257_1; + $14$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $228_1 = i64toi32_i32$2; + $228$hi = i64toi32_i32$3; + i64toi32_i32$3 = $14$hi; + i64toi32_i32$4 = $14_1; + i64toi32_i32$2 = $228$hi; + i64toi32_i32$5 = $228_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $13_1 = i64toi32_i32$1; + $13$hi = i64toi32_i32$0; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$5 = $14_1; + i64toi32_i32$3 = 0; + $233_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + $233$hi = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$3 | 0, $3_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $22_1 = i64toi32_i32$0; + $22$hi = i64toi32_i32$3; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $17$hi; + i64toi32_i32$5 = $17_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$0 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + $14_1 = i64toi32_i32$5 & i64toi32_i32$4 | 0; + $14$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$0 | 0, $14_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $242_1 = i64toi32_i32$5; + $242$hi = i64toi32_i32$0; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$3 = $22_1; + i64toi32_i32$5 = $242$hi; + i64toi32_i32$4 = $242_1; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $20_1 = i64toi32_i32$2; + $20$hi = i64toi32_i32$1; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$0 = $15_1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = -1; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + $17_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $17$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $17$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = __wasm_i64_mul($17_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$HIGH_BITS; + $249_1 = i64toi32_i32$0; + $249$hi = i64toi32_i32$3; + i64toi32_i32$3 = $20$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$0 = $249$hi; + i64toi32_i32$4 = $249_1; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $15_1 = i64toi32_i32$5; + $15$hi = i64toi32_i32$2; + $251_1 = i64toi32_i32$5; + $251$hi = i64toi32_i32$2; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$3 = $12_1; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 32; + i64toi32_i32$0 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $258_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $258_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $253_1 = $258_1; + $253$hi = i64toi32_i32$1; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = $21$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$2 = $12_1; + i64toi32_i32$3 = $21$hi; + i64toi32_i32$4 = $21_1; + $256_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$4 = $256_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + $260_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$4 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$0 | 0) | 0; + $260_1 = i64toi32_i32$4 << i64toi32_i32$0 | 0; + } + $258$hi = i64toi32_i32$1; + i64toi32_i32$1 = $253$hi; + i64toi32_i32$2 = $253_1; + i64toi32_i32$4 = $258$hi; + i64toi32_i32$3 = $260_1; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + $259_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $259$hi = i64toi32_i32$4; + i64toi32_i32$4 = $251$hi; + i64toi32_i32$1 = $251_1; + i64toi32_i32$2 = $259$hi; + i64toi32_i32$3 = $259_1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $21_1 = i64toi32_i32$0; + $21$hi = i64toi32_i32$5; + $261_1 = i64toi32_i32$0; + $261$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$5 | 0, $14_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $23_1 = i64toi32_i32$1; + $23$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $18$hi; + i64toi32_i32$4 = $18_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 65536; + i64toi32_i32$1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $12_1 = i64toi32_i32$4 | i64toi32_i32$3 | 0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$4 = $12$hi; + i64toi32_i32$4 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$1 | 0, $12_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $270_1 = i64toi32_i32$4; + $270$hi = i64toi32_i32$1; + i64toi32_i32$1 = $23$hi; + i64toi32_i32$5 = $23_1; + i64toi32_i32$4 = $270$hi; + i64toi32_i32$3 = $270_1; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $18_1 = i64toi32_i32$2; + $18$hi = i64toi32_i32$0; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $17$hi; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = __wasm_i64_mul($17_1 | 0, i64toi32_i32$0 | 0, $3_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $275_1 = i64toi32_i32$5; + $275$hi = i64toi32_i32$0; + i64toi32_i32$0 = $18$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$5 = $275$hi; + i64toi32_i32$3 = $275_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $24_1 = i64toi32_i32$4; + $24$hi = i64toi32_i32$2; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$0 = $19_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 2147483647; + i64toi32_i32$1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -2147483648; + i64toi32_i32$0 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $1_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $1$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$0 | 0, $4_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $283_1 = i64toi32_i32$2; + $283$hi = i64toi32_i32$0; + i64toi32_i32$0 = $24$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = $283$hi; + i64toi32_i32$3 = $283_1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $19_1 = i64toi32_i32$5; + $19$hi = i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + $262_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$2 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$2 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$2 | 0) | 0; + $262_1 = i64toi32_i32$0 << i64toi32_i32$2 | 0; + } + $286$hi = i64toi32_i32$1; + i64toi32_i32$1 = $261$hi; + i64toi32_i32$4 = $261_1; + i64toi32_i32$0 = $286$hi; + i64toi32_i32$3 = $262_1; + i64toi32_i32$2 = i64toi32_i32$4 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $25_1 = i64toi32_i32$2; + $25$hi = i64toi32_i32$5; + i64toi32_i32$5 = $233$hi; + i64toi32_i32$1 = $233_1; + i64toi32_i32$4 = $25$hi; + i64toi32_i32$3 = i64toi32_i32$2; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $4_1 = i64toi32_i32$0; + $4$hi = i64toi32_i32$2; + $6_1 = (($7_1 + $6_1 | 0) + $8_1 | 0) + -16383 | 0; + label$15 : { + label$16 : { + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = $14$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$1 = $14$hi; + i64toi32_i32$1 = __wasm_i64_mul($17_1 | 0, i64toi32_i32$2 | 0, $14_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $26_1 = i64toi32_i32$1; + $26$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$2 | 0, $12_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $302_1 = i64toi32_i32$1; + $302$hi = i64toi32_i32$2; + i64toi32_i32$2 = $26$hi; + i64toi32_i32$5 = $26_1; + i64toi32_i32$1 = $302$hi; + i64toi32_i32$3 = $302_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $2_1 = i64toi32_i32$4; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $26$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$5 = $26$hi; + i64toi32_i32$3 = $26_1; + $306_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $307_1 = $306_1; + $307$hi = i64toi32_i32$2; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $3_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $311_1 = i64toi32_i32$0; + $311$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$0 = $311$hi; + i64toi32_i32$5 = $311_1; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $3_1 = i64toi32_i32$1; + $3$hi = i64toi32_i32$4; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$5 = $2_1; + $315_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $316$hi = i64toi32_i32$2; + i64toi32_i32$2 = $307$hi; + i64toi32_i32$5 = $307_1; + i64toi32_i32$4 = $316$hi; + i64toi32_i32$3 = $315_1; + i64toi32_i32$0 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $317_1 = i64toi32_i32$0; + $317$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + $318_1 = $3_1; + $318$hi = i64toi32_i32$1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$1 = $22$hi; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$2 = $20_1; + i64toi32_i32$5 = $22$hi; + i64toi32_i32$3 = $22_1; + $321_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $322$hi = i64toi32_i32$2; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$2 = i64toi32_i32$1; + i64toi32_i32$2 = $15$hi; + i64toi32_i32$3 = $15_1; + i64toi32_i32$5 = $20_1; + $325_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$3 = 0; + $326$hi = i64toi32_i32$3; + i64toi32_i32$3 = $322$hi; + i64toi32_i32$5 = $321_1; + i64toi32_i32$2 = $326$hi; + i64toi32_i32$1 = $325_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $327$hi = i64toi32_i32$0; + i64toi32_i32$0 = $318$hi; + i64toi32_i32$3 = $318_1; + i64toi32_i32$5 = $327$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$3 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $2_1 = i64toi32_i32$2; + $2$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$1 = $3_1; + $331_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $332$hi = i64toi32_i32$0; + i64toi32_i32$0 = $317$hi; + i64toi32_i32$1 = $317_1; + i64toi32_i32$4 = $332$hi; + i64toi32_i32$3 = $331_1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $333$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$1 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$2 | 0, $12_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$2 = i64toi32_i32$HIGH_BITS; + $336_1 = i64toi32_i32$1; + $336$hi = i64toi32_i32$2; + i64toi32_i32$2 = $333$hi; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$1 = $336$hi; + i64toi32_i32$3 = $336_1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $337_1 = i64toi32_i32$4; + $337$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $14$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$0 = $14$hi; + i64toi32_i32$0 = __wasm_i64_mul($1_1 | 0, i64toi32_i32$5 | 0, $14_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $3_1 = i64toi32_i32$0; + $3$hi = i64toi32_i32$5; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$5 = $12$hi; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = __wasm_i64_mul($17_1 | 0, i64toi32_i32$5 | 0, $12_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$HIGH_BITS; + $344_1 = i64toi32_i32$0; + $344$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$0 = $344$hi; + i64toi32_i32$3 = $344_1; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $1_1 = i64toi32_i32$1; + $1$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = i64toi32_i32$1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$3 = $3_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = 32; + i64toi32_i32$0 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + $263_1 = 0; + } else { + i64toi32_i32$4 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$0 | 0) | 0; + $263_1 = i64toi32_i32$3 << i64toi32_i32$0 | 0; + } + $350_1 = $263_1; + $350$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 32; + i64toi32_i32$0 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $264_1 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + $264_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$0 | 0) | 0; + } + $352$hi = i64toi32_i32$3; + i64toi32_i32$3 = $350$hi; + i64toi32_i32$4 = $350_1; + i64toi32_i32$5 = $352$hi; + i64toi32_i32$2 = $264_1; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $353_1 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $353$hi = i64toi32_i32$5; + i64toi32_i32$5 = $337$hi; + i64toi32_i32$3 = $337_1; + i64toi32_i32$4 = $353$hi; + i64toi32_i32$2 = $353_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $354_1 = i64toi32_i32$0; + $354$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + $355_1 = $2_1; + $355$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 32; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $265_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $265_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $357$hi = i64toi32_i32$3; + i64toi32_i32$3 = $355$hi; + i64toi32_i32$1 = $355_1; + i64toi32_i32$5 = $357$hi; + i64toi32_i32$2 = $265_1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $1_1 = i64toi32_i32$4; + $1$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = $2_1; + $361_1 = i64toi32_i32$0 >>> 0 < i64toi32_i32$1 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$3 = 0; + $362$hi = i64toi32_i32$3; + i64toi32_i32$3 = $354$hi; + i64toi32_i32$2 = $354_1; + i64toi32_i32$0 = $362$hi; + i64toi32_i32$1 = $361_1; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $363_1 = i64toi32_i32$5; + $363$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + $364_1 = $1_1; + $364$hi = i64toi32_i32$4; + i64toi32_i32$4 = $19$hi; + i64toi32_i32$3 = $19_1; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 32; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $266_1 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >>> i64toi32_i32$0 | 0; + $266_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $366_1 = $266_1; + $366$hi = i64toi32_i32$2; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$2 = $23$hi; + i64toi32_i32$2 = $18$hi; + i64toi32_i32$4 = $18_1; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$1 = $23_1; + $369_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$4 = 0; + $370$hi = i64toi32_i32$4; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$4 = i64toi32_i32$2; + i64toi32_i32$4 = $24$hi; + i64toi32_i32$1 = $24_1; + i64toi32_i32$3 = $18_1; + $373_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $374$hi = i64toi32_i32$1; + i64toi32_i32$1 = $370$hi; + i64toi32_i32$3 = $369_1; + i64toi32_i32$4 = $374$hi; + i64toi32_i32$2 = $373_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $375$hi = i64toi32_i32$5; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$5 = $24$hi; + i64toi32_i32$5 = $19$hi; + i64toi32_i32$1 = $19_1; + i64toi32_i32$3 = $24$hi; + i64toi32_i32$2 = $24_1; + $378_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $379$hi = i64toi32_i32$1; + i64toi32_i32$1 = $375$hi; + i64toi32_i32$2 = i64toi32_i32$0; + i64toi32_i32$5 = $379$hi; + i64toi32_i32$3 = $378_1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$5 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$1 << i64toi32_i32$5 | 0; + $267_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$5 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$5 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$5 | 0) | 0; + $267_1 = i64toi32_i32$1 << i64toi32_i32$5 | 0; + } + $381$hi = i64toi32_i32$2; + i64toi32_i32$2 = $366$hi; + i64toi32_i32$0 = $366_1; + i64toi32_i32$1 = $381$hi; + i64toi32_i32$3 = $267_1; + i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $382_1 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $382$hi = i64toi32_i32$1; + i64toi32_i32$1 = $364$hi; + i64toi32_i32$2 = $364_1; + i64toi32_i32$0 = $382$hi; + i64toi32_i32$3 = $382_1; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $3_1 = i64toi32_i32$5; + $3$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$3 = $1_1; + $386_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $387$hi = i64toi32_i32$1; + i64toi32_i32$1 = $363$hi; + i64toi32_i32$3 = $363_1; + i64toi32_i32$4 = $387$hi; + i64toi32_i32$2 = $386_1; + i64toi32_i32$0 = i64toi32_i32$3 + i64toi32_i32$2 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $388_1 = i64toi32_i32$0; + $388$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + $389_1 = $3_1; + $389$hi = i64toi32_i32$5; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$5 = $15$hi; + i64toi32_i32$5 = $21$hi; + i64toi32_i32$1 = $21_1; + i64toi32_i32$3 = $15$hi; + i64toi32_i32$2 = $15_1; + $392_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $393$hi = i64toi32_i32$1; + i64toi32_i32$1 = $25$hi; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$1 = $25$hi; + i64toi32_i32$2 = $25_1; + i64toi32_i32$3 = $21_1; + $396_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$2 = 0; + $397$hi = i64toi32_i32$2; + i64toi32_i32$2 = $393$hi; + i64toi32_i32$3 = $392_1; + i64toi32_i32$1 = $397$hi; + i64toi32_i32$5 = $396_1; + i64toi32_i32$4 = i64toi32_i32$3 + i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $398$hi = i64toi32_i32$0; + i64toi32_i32$0 = $389$hi; + i64toi32_i32$2 = $389_1; + i64toi32_i32$3 = $398$hi; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$4 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $2_1 = i64toi32_i32$1; + $2$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$5 = $3_1; + $402_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$0 = 0; + $403$hi = i64toi32_i32$0; + i64toi32_i32$0 = $388$hi; + i64toi32_i32$5 = $388_1; + i64toi32_i32$4 = $403$hi; + i64toi32_i32$2 = $402_1; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$5 = 65536; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + if (!(i64toi32_i32$0 & i64toi32_i32$2 | 0 | i64toi32_i32$5 | 0)) { + break label$16 + } + $6_1 = $6_1 + 1 | 0; + break label$15; + } + i64toi32_i32$5 = $13$hi; + i64toi32_i32$1 = $13_1; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = 63; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $268_1 = i64toi32_i32$5 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$5 >>> i64toi32_i32$4 | 0; + $268_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $3_1 = $268_1; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $269_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $269_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $413_1 = $269_1; + $413$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 63; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $271_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $271_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $415$hi = i64toi32_i32$5; + i64toi32_i32$5 = $413$hi; + i64toi32_i32$1 = $413_1; + i64toi32_i32$0 = $415$hi; + i64toi32_i32$2 = $271_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $1_1 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $1$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 63; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $272_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $272_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$4 | 0) | 0; + } + $418_1 = $272_1; + $418$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $273_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $273_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $420$hi = i64toi32_i32$5; + i64toi32_i32$5 = $418$hi; + i64toi32_i32$1 = $418_1; + i64toi32_i32$0 = $420$hi; + i64toi32_i32$2 = $273_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $2_1 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$5 = $13_1; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $274_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $274_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $13_1 = $274_1; + $13$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + $424_1 = $3_1; + $424$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $276_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $276_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $426$hi = i64toi32_i32$5; + i64toi32_i32$5 = $424$hi; + i64toi32_i32$1 = $424_1; + i64toi32_i32$0 = $426$hi; + i64toi32_i32$2 = $276_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $4_1 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $4$hi = i64toi32_i32$0; + } + label$17 : { + if (($6_1 | 0) < (32767 | 0)) { + break label$17 + } + i64toi32_i32$0 = $16$hi; + i64toi32_i32$5 = $16_1; + i64toi32_i32$1 = 2147418112; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $16_1 = i64toi32_i32$5 | i64toi32_i32$2 | 0; + $16$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$1; + break label$3; + } + label$18 : { + label$19 : { + if (($6_1 | 0) > (0 | 0)) { + break label$19 + } + label$20 : { + $7_1 = 1 - $6_1 | 0; + if ($7_1 >>> 0 > 127 >>> 0) { + break label$20 + } + i64toi32_i32$1 = $13$hi; + i64toi32_i32$1 = $4$hi; + $6_1 = $6_1 + 127 | 0; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$5 = $4$hi; + $934($5_1 + 48 | 0 | 0, $13_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$5 | 0, $6_1 | 0); + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$1 = $1$hi; + $934($5_1 + 32 | 0 | 0, $2_1 | 0, i64toi32_i32$5 | 0, $1_1 | 0, i64toi32_i32$1 | 0, $6_1 | 0); + i64toi32_i32$1 = $13$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $13$hi; + i64toi32_i32$5 = $4$hi; + $942($5_1 + 16 | 0 | 0, $13_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$5 | 0, $7_1 | 0); + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$1 = $1$hi; + $942($5_1 | 0, $2_1 | 0, i64toi32_i32$5 | 0, $1_1 | 0, i64toi32_i32$1 | 0, $7_1 | 0); + i64toi32_i32$0 = $5_1; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $460_1 = i64toi32_i32$1; + $460$hi = i64toi32_i32$5; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $462_1 = i64toi32_i32$5; + $462$hi = i64toi32_i32$1; + i64toi32_i32$1 = $460$hi; + i64toi32_i32$0 = $460_1; + i64toi32_i32$5 = $462$hi; + i64toi32_i32$2 = $462_1; + i64toi32_i32$5 = i64toi32_i32$1 | i64toi32_i32$5 | 0; + $463_1 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $463$hi = i64toi32_i32$5; + i64toi32_i32$1 = $5_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 48 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 52 | 0) >> 2] | 0; + $465_1 = i64toi32_i32$5; + $465$hi = i64toi32_i32$0; + i64toi32_i32$1 = (i64toi32_i32$1 + 48 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $469_1 = i64toi32_i32$0; + $469$hi = i64toi32_i32$5; + i64toi32_i32$5 = $465$hi; + i64toi32_i32$1 = $465_1; + i64toi32_i32$0 = $469$hi; + i64toi32_i32$2 = $469_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$2 = 0; + $471_1 = (i64toi32_i32$5 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0; + i64toi32_i32$5 = 0; + $472$hi = i64toi32_i32$5; + i64toi32_i32$5 = $463$hi; + i64toi32_i32$2 = $463_1; + i64toi32_i32$0 = $472$hi; + i64toi32_i32$1 = $471_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $13_1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + $13$hi = i64toi32_i32$0; + i64toi32_i32$5 = ($5_1 + 32 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $477_1 = i64toi32_i32$0; + $477$hi = i64toi32_i32$2; + i64toi32_i32$5 = ($5_1 + 16 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$5 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] | 0; + $481_1 = i64toi32_i32$2; + $481$hi = i64toi32_i32$0; + i64toi32_i32$0 = $477$hi; + i64toi32_i32$5 = $477_1; + i64toi32_i32$2 = $481$hi; + i64toi32_i32$1 = $481_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $4_1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$0 = $5_1 + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $1_1 = i64toi32_i32$2; + $1$hi = i64toi32_i32$5; + i64toi32_i32$0 = $5_1; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$5; + $2$hi = i64toi32_i32$2; + break label$18; + } + i64toi32_i32$2 = 0; + $1_1 = 0; + $1$hi = i64toi32_i32$2; + break label$3; + } + i64toi32_i32$2 = 0; + i64toi32_i32$0 = $6_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 48; + i64toi32_i32$4 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $277_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $277_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $490$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$0 = 65535; + i64toi32_i32$1 = -1; + i64toi32_i32$0 = i64toi32_i32$5 & i64toi32_i32$0 | 0; + $492_1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + $492$hi = i64toi32_i32$0; + i64toi32_i32$0 = $490$hi; + i64toi32_i32$5 = $277_1; + i64toi32_i32$2 = $492$hi; + i64toi32_i32$1 = $492_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $1_1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + $1$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $1$hi; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$1 = $16_1; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + $16_1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $16$hi = i64toi32_i32$5; + label$21 : { + i64toi32_i32$5 = $13$hi; + $498_1 = !($13_1 | i64toi32_i32$5 | 0); + i64toi32_i32$5 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$0 = -1; + i64toi32_i32$1 = -1; + if ((i64toi32_i32$5 | 0) > (i64toi32_i32$0 | 0)) { + $278_1 = 1 + } else { + if ((i64toi32_i32$5 | 0) >= (i64toi32_i32$0 | 0)) { + if (i64toi32_i32$2 >>> 0 <= i64toi32_i32$1 >>> 0) { + $279_1 = 0 + } else { + $279_1 = 1 + } + $280_1 = $279_1; + } else { + $280_1 = 0 + } + $278_1 = $280_1; + } + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) | 0 ? $498_1 : $278_1) { + break label$21 + } + i64toi32_i32$1 = $16$hi; + $504_1 = $16_1; + $504$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $1_1 = i64toi32_i32$4; + $1$hi = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$5 = $2_1; + $509_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $510$hi = i64toi32_i32$1; + i64toi32_i32$1 = $504$hi; + i64toi32_i32$5 = $504_1; + i64toi32_i32$3 = $510$hi; + i64toi32_i32$0 = $509_1; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $16_1 = i64toi32_i32$2; + $16$hi = i64toi32_i32$4; + break label$3; + } + label$22 : { + i64toi32_i32$4 = $13$hi; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$5 = -2147483648; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = i64toi32_i32$4 ^ i64toi32_i32$5 | 0; + $514_1 = i64toi32_i32$1 ^ i64toi32_i32$0 | 0; + $514$hi = i64toi32_i32$5; + i64toi32_i32$5 = $13$hi; + i64toi32_i32$4 = $13_1; + i64toi32_i32$1 = $514$hi; + i64toi32_i32$0 = $514_1; + i64toi32_i32$1 = i64toi32_i32$5 | i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$0 | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$5 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$4 | 0) | 0) { + break label$22 + } + i64toi32_i32$5 = $2$hi; + $1_1 = $2_1; + $1$hi = i64toi32_i32$5; + break label$3; + } + i64toi32_i32$5 = $16$hi; + $518_1 = $16_1; + $518$hi = i64toi32_i32$5; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$0 = $2_1; + i64toi32_i32$1 = 0; + i64toi32_i32$4 = 1; + i64toi32_i32$1 = i64toi32_i32$5 & i64toi32_i32$1 | 0; + $521_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $521$hi = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$0 = $521$hi; + i64toi32_i32$4 = $521_1; + i64toi32_i32$3 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $1_1 = i64toi32_i32$3; + $1$hi = i64toi32_i32$2; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$4 = $2_1; + $525_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$4 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $526$hi = i64toi32_i32$1; + i64toi32_i32$1 = $518$hi; + i64toi32_i32$4 = $518_1; + i64toi32_i32$2 = $526$hi; + i64toi32_i32$5 = $525_1; + i64toi32_i32$0 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $16_1 = i64toi32_i32$0; + $16$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$4 = $0_1; + HEAP32[i64toi32_i32$4 >> 2] = $1_1; + HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$3 = $16$hi; + HEAP32[(i64toi32_i32$4 + 8 | 0) >> 2] = $16_1; + HEAP32[(i64toi32_i32$4 + 12 | 0) >> 2] = i64toi32_i32$3; + label$23 : { + $11_1 = $5_1 + 96 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + } + + function $944($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $46_1 = 0, $48_1 = 0, $49_1 = 0, $50_1 = 0, $53_1 = 0, $54_1 = 0, $6_1 = 0, $9_1 = 0, $9$hi = 0, $12_1 = 0, $12$hi = 0, $13_1 = 0, $13$hi = 0, $16_1 = 0, $16$hi = 0, $20_1 = 0, $20$hi = 0, $21_1 = 0, $21$hi = 0, $5_1 = 0, $5$hi = 0, $30$hi = 0, $33_1 = 0, $33$hi = 0, $36$hi = 0, $37_1 = 0, $37$hi = 0, $39_1 = 0, $39$hi = 0, $42_1 = 0, $42$hi = 0, $45$hi = 0, $47_1 = 0, $49$hi = 0, $51_1 = 0, $51$hi = 0, $52_1 = 0; + $6_1 = $0_1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = __wasm_i64_mul($4_1 | 0, i64toi32_i32$0 | 0, $1_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $9_1 = i64toi32_i32$1; + $9$hi = i64toi32_i32$0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = __wasm_i64_mul($2_1 | 0, i64toi32_i32$0 | 0, $3_1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $12_1 = i64toi32_i32$1; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = $9$hi; + i64toi32_i32$2 = $9_1; + i64toi32_i32$1 = $12$hi; + i64toi32_i32$3 = $12_1; + i64toi32_i32$4 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $13_1 = i64toi32_i32$4; + $13$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $46_1 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$5 >>> i64toi32_i32$1 | 0; + $46_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$1 | 0) | 0; + } + $4_1 = $46_1; + $4$hi = i64toi32_i32$2; + $16_1 = $4_1; + $16$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $48_1 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$2 >>> i64toi32_i32$1 | 0; + $48_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + $2_1 = $48_1; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = __wasm_i64_mul($16_1 | 0, i64toi32_i32$0 | 0, $2_1 | 0, i64toi32_i32$5 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $20_1 = i64toi32_i32$5; + $20$hi = i64toi32_i32$0; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$2 = $13_1; + i64toi32_i32$5 = $20$hi; + i64toi32_i32$3 = $20_1; + i64toi32_i32$1 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$5 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $21_1 = i64toi32_i32$1; + $21$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$2 = i64toi32_i32$4 & i64toi32_i32$2 | 0; + $3_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $3$hi = i64toi32_i32$2; + i64toi32_i32$2 = $1$hi; + i64toi32_i32$4 = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + $1_1 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + $1$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$4 = __wasm_i64_mul($3_1 | 0, i64toi32_i32$0 | 0, $1_1 | 0, i64toi32_i32$4 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $5_1 = i64toi32_i32$4; + $5$hi = i64toi32_i32$0; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$5 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $49_1 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$0 >>> i64toi32_i32$5 | 0; + $49_1 = (((1 << i64toi32_i32$5 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$5 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$5 | 0) | 0; + } + $30$hi = i64toi32_i32$4; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$4 = $2$hi; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$2 = __wasm_i64_mul($3_1 | 0, i64toi32_i32$4 | 0, $2_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$HIGH_BITS; + $33_1 = i64toi32_i32$2; + $33$hi = i64toi32_i32$4; + i64toi32_i32$4 = $30$hi; + i64toi32_i32$0 = $49_1; + i64toi32_i32$2 = $33$hi; + i64toi32_i32$3 = $33_1; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $3_1 = i64toi32_i32$5; + $3$hi = i64toi32_i32$1; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$2 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $50_1 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$2 | 0; + $50_1 = (((1 << i64toi32_i32$2 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$2 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$2 | 0) | 0; + } + $36$hi = i64toi32_i32$0; + i64toi32_i32$0 = $21$hi; + i64toi32_i32$1 = $21_1; + i64toi32_i32$4 = $36$hi; + i64toi32_i32$3 = $50_1; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$0 + i64toi32_i32$4 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $37_1 = i64toi32_i32$2; + $37$hi = i64toi32_i32$5; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$5 & i64toi32_i32$1 | 0; + $39_1 = i64toi32_i32$0 & i64toi32_i32$3 | 0; + $39$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = __wasm_i64_mul($4_1 | 0, i64toi32_i32$1 | 0, $1_1 | 0, i64toi32_i32$0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + $42_1 = i64toi32_i32$0; + $42$hi = i64toi32_i32$1; + i64toi32_i32$1 = $39$hi; + i64toi32_i32$5 = $39_1; + i64toi32_i32$0 = $42$hi; + i64toi32_i32$3 = $42_1; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $3_1 = i64toi32_i32$4; + $3$hi = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$4; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $53_1 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$2 >>> i64toi32_i32$0 | 0; + $53_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$0 | 0) | 0; + } + $45$hi = i64toi32_i32$5; + i64toi32_i32$5 = $37$hi; + i64toi32_i32$2 = $37_1; + i64toi32_i32$1 = $45$hi; + i64toi32_i32$3 = $53_1; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$1 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + i64toi32_i32$2 = $6_1; + HEAP32[(i64toi32_i32$2 + 8 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(i64toi32_i32$2 + 12 | 0) >> 2] = i64toi32_i32$4; + $47_1 = $0_1; + i64toi32_i32$4 = $3$hi; + i64toi32_i32$5 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$1 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + $54_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$1 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$1 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$1 | 0) | 0; + $54_1 = i64toi32_i32$5 << i64toi32_i32$1 | 0; + } + $49$hi = i64toi32_i32$2; + i64toi32_i32$2 = $5$hi; + i64toi32_i32$4 = $5_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = -1; + i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + $51_1 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + $51$hi = i64toi32_i32$5; + i64toi32_i32$5 = $49$hi; + i64toi32_i32$2 = $54_1; + i64toi32_i32$4 = $51$hi; + i64toi32_i32$3 = $51_1; + i64toi32_i32$4 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + $52_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$2 = $47_1; + HEAP32[i64toi32_i32$2 >> 2] = $52_1; + HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] = i64toi32_i32$4; + } + + function $945($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$0 = 0, $5_1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, $7_1 = 0, $6_1 = 0, $20_1 = 0, $20$hi = 0, $23_1 = 0, $26_1 = 0; + label$1 : { + $5_1 = global$0 - 16 | 0; + $6_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = -2147483648; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = i64toi32_i32$0 ^ i64toi32_i32$1 | 0; + $20_1 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0; + $20$hi = i64toi32_i32$1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$3 = $20$hi; + $933($5_1 | 0, $1_1 | 0, i64toi32_i32$1 | 0, $2_1 | 0, i64toi32_i32$2 | 0, $3_1 | 0, i64toi32_i32$0 | 0, $20_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$2 = $5_1; + i64toi32_i32$3 = HEAP32[$5_1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + $23_1 = i64toi32_i32$3; + i64toi32_i32$3 = $0_1; + HEAP32[i64toi32_i32$3 >> 2] = $23_1; + HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$2 = $5_1; + i64toi32_i32$0 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + $26_1 = i64toi32_i32$0; + i64toi32_i32$0 = $0_1; + HEAP32[(i64toi32_i32$0 + 8 | 0) >> 2] = $26_1; + HEAP32[(i64toi32_i32$0 + 12 | 0) >> 2] = i64toi32_i32$3; + label$3 : { + $7_1 = $5_1 + 16 | 0; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + } + + function $946($0_1, $0$hi, $1_1, $1$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$1 = 0, $6_1 = 0, $6$hi = 0, $7$hi = 0, $7_1 = 0, $2_1 = 0, $3_1 = 0, $44_1 = 0, $46_1 = 0, $47_1 = 0, $48_1 = 0, $49_1 = 0, $51_1 = 0, $52_1 = 0, $5_1 = 0, $4_1 = 0, $18_1 = 0, $18$hi = 0, $20$hi = 0, $23_1 = 0, $23$hi = 0, $25$hi = 0, $39$hi = 0, $43_1 = 0, $45_1 = 0, $50_1 = 0, $50$hi = 0, $52$hi = 0, $80_1 = 0, $80$hi = 0, $84$hi = 0, $87_1 = 0, $87$hi = 0, $89_1 = 0, $89$hi = 0, $93_1 = 0, $93$hi = 0, $95_1 = 0, $96$hi = 0, $106$hi = 0, $117_1 = 0, $117$hi = 0; + label$1 : { + $2_1 = global$0 - 32 | 0; + $4_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $6_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $6$hi = i64toi32_i32$1; + i64toi32_i32$0 = $6_1; + i64toi32_i32$2 = -1006698496; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $18_1 = i64toi32_i32$4; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = $6$hi; + i64toi32_i32$1 = $6_1; + i64toi32_i32$0 = -1140785152; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$5 = $18_1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$3 = i64toi32_i32$2; + if (i64toi32_i32$4 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$4 + } + i64toi32_i32$5 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 60; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $44_1 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + $44_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $23_1 = $44_1; + $23$hi = i64toi32_i32$4; + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 4; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + $46_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$0 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$0 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$0 | 0) | 0; + $46_1 = i64toi32_i32$5 << i64toi32_i32$0 | 0; + } + $25$hi = i64toi32_i32$3; + i64toi32_i32$3 = $23$hi; + i64toi32_i32$4 = $23_1; + i64toi32_i32$5 = $25$hi; + i64toi32_i32$1 = $46_1; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $6_1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $6$hi = i64toi32_i32$5; + label$5 : { + i64toi32_i32$5 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$4 = 268435455; + i64toi32_i32$1 = -1; + i64toi32_i32$4 = i64toi32_i32$5 & i64toi32_i32$4 | 0; + $0_1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $0$hi = i64toi32_i32$4; + i64toi32_i32$5 = $0_1; + i64toi32_i32$3 = 134217728; + i64toi32_i32$1 = 1; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0) { + break label$5 + } + i64toi32_i32$5 = $6$hi; + i64toi32_i32$1 = $6_1; + i64toi32_i32$4 = 1073741824; + i64toi32_i32$3 = 1; + i64toi32_i32$0 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$2 = i64toi32_i32$5 + i64toi32_i32$4 | 0; + if (i64toi32_i32$0 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$2 = i64toi32_i32$2 + 1 | 0 + } + $7_1 = i64toi32_i32$0; + $7$hi = i64toi32_i32$2; + break label$3; + } + i64toi32_i32$2 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$1 = 1073741824; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + i64toi32_i32$0 = i64toi32_i32$2 + i64toi32_i32$1 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$0 = i64toi32_i32$0 + 1 | 0 + } + $7_1 = i64toi32_i32$4; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0_1; + i64toi32_i32$5 = 134217728; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = i64toi32_i32$0 ^ i64toi32_i32$5 | 0; + i64toi32_i32$0 = i64toi32_i32$2 ^ i64toi32_i32$3 | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$0 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$2 | 0) | 0) { + break label$3 + } + i64toi32_i32$0 = $7$hi; + i64toi32_i32$3 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$5 = i64toi32_i32$0 & i64toi32_i32$5 | 0; + $39$hi = i64toi32_i32$5; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$5 = $39$hi; + i64toi32_i32$0 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + i64toi32_i32$3 = $7$hi; + i64toi32_i32$2 = $7_1; + i64toi32_i32$1 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$3 | 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $7_1 = i64toi32_i32$1; + $7$hi = i64toi32_i32$4; + break label$3; + } + label$6 : { + i64toi32_i32$4 = $0$hi; + $43_1 = !($0_1 | i64toi32_i32$4 | 0); + i64toi32_i32$4 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$0 = 2147418112; + i64toi32_i32$2 = 0; + $45_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$5 = i64toi32_i32$4; + i64toi32_i32$2 = $6_1; + i64toi32_i32$4 = 2147418112; + i64toi32_i32$0 = 0; + if ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$4 | 0) | 0 ? $43_1 : $45_1) { + break label$6 + } + i64toi32_i32$2 = $0$hi; + i64toi32_i32$0 = $0_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 60; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $47_1 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$2 >>> i64toi32_i32$3 | 0; + $47_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$3 | 0) | 0; + } + $50_1 = $47_1; + $50$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 4; + i64toi32_i32$3 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $48_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0; + $48_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $52$hi = i64toi32_i32$0; + i64toi32_i32$0 = $50$hi; + i64toi32_i32$5 = $50_1; + i64toi32_i32$2 = $52$hi; + i64toi32_i32$4 = $48_1; + i64toi32_i32$2 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$4 | 0; + i64toi32_i32$5 = 524287; + i64toi32_i32$4 = -1; + i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + i64toi32_i32$2 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + i64toi32_i32$0 = 2146959360; + i64toi32_i32$4 = 0; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $7_1 = i64toi32_i32$2 | i64toi32_i32$4 | 0; + $7$hi = i64toi32_i32$0; + break label$3; + } + i64toi32_i32$0 = 2146435072; + $7_1 = 0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$2 = 1140785151; + i64toi32_i32$4 = -1; + if (i64toi32_i32$0 >>> 0 > i64toi32_i32$2 >>> 0 | ((i64toi32_i32$0 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$5 >>> 0 > i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$3 + } + i64toi32_i32$5 = 0; + $7_1 = 0; + $7$hi = i64toi32_i32$5; + i64toi32_i32$5 = $6$hi; + i64toi32_i32$4 = $6_1; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = 48; + i64toi32_i32$3 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$0 = 0; + $49_1 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$0 = i64toi32_i32$5 >>> i64toi32_i32$3 | 0; + $49_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $3_1 = $49_1; + if ($3_1 >>> 0 < 15249 >>> 0) { + break label$3 + } + i64toi32_i32$0 = $0$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$4 = 65535; + i64toi32_i32$2 = -1; + i64toi32_i32$4 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + i64toi32_i32$0 = i64toi32_i32$5 & i64toi32_i32$2 | 0; + i64toi32_i32$5 = 65536; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $6_1 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + $6$hi = i64toi32_i32$5; + i64toi32_i32$5 = $0$hi; + i64toi32_i32$0 = $6$hi; + $934($2_1 + 16 | 0 | 0, $0_1 | 0, i64toi32_i32$5 | 0, $6_1 | 0, i64toi32_i32$0 | 0, $3_1 + -15233 | 0 | 0); + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$0 = $6$hi; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$5 = $6$hi; + $942($2_1 | 0, $0_1 | 0, i64toi32_i32$0 | 0, $6_1 | 0, i64toi32_i32$5 | 0, 15361 - $3_1 | 0 | 0); + i64toi32_i32$4 = $2_1; + i64toi32_i32$5 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $6_1 = i64toi32_i32$5; + $6$hi = i64toi32_i32$0; + i64toi32_i32$4 = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 60; + i64toi32_i32$3 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $51_1 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$0 >>> i64toi32_i32$3 | 0; + $51_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$3 | 0) | 0; + } + $80_1 = $51_1; + $80$hi = i64toi32_i32$5; + i64toi32_i32$0 = $2_1 + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 4; + i64toi32_i32$3 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$3 | 0; + $52_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$4 << i64toi32_i32$3 | 0) | 0; + $52_1 = i64toi32_i32$0 << i64toi32_i32$3 | 0; + } + $84$hi = i64toi32_i32$5; + i64toi32_i32$5 = $80$hi; + i64toi32_i32$4 = $80_1; + i64toi32_i32$0 = $84$hi; + i64toi32_i32$2 = $52_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $7_1 = i64toi32_i32$4 | i64toi32_i32$2 | 0; + $7$hi = i64toi32_i32$0; + label$7 : { + i64toi32_i32$0 = $6$hi; + i64toi32_i32$5 = $6_1; + i64toi32_i32$4 = 268435455; + i64toi32_i32$2 = -1; + i64toi32_i32$4 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $87_1 = i64toi32_i32$5 & i64toi32_i32$2 | 0; + $87$hi = i64toi32_i32$4; + i64toi32_i32$0 = $2_1; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 16 | 0) >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 20 | 0) >> 2] | 0; + $89_1 = i64toi32_i32$4; + $89$hi = i64toi32_i32$5; + i64toi32_i32$0 = (i64toi32_i32$0 + 16 | 0) + 8 | 0; + i64toi32_i32$5 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $93_1 = i64toi32_i32$5; + $93$hi = i64toi32_i32$4; + i64toi32_i32$4 = $89$hi; + i64toi32_i32$0 = $89_1; + i64toi32_i32$5 = $93$hi; + i64toi32_i32$2 = $93_1; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$0 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = 0; + $95_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$0 | 0) | 0; + i64toi32_i32$4 = 0; + $96$hi = i64toi32_i32$4; + i64toi32_i32$4 = $87$hi; + i64toi32_i32$2 = $87_1; + i64toi32_i32$5 = $96$hi; + i64toi32_i32$0 = $95_1; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + $6_1 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $6$hi = i64toi32_i32$5; + i64toi32_i32$4 = $6_1; + i64toi32_i32$2 = 134217728; + i64toi32_i32$0 = 1; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0 | 0) | 0) { + break label$7 + } + i64toi32_i32$4 = $7$hi; + i64toi32_i32$0 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 1; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + i64toi32_i32$1 = i64toi32_i32$4 + i64toi32_i32$5 | 0; + if (i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0) { + i64toi32_i32$1 = i64toi32_i32$1 + 1 | 0 + } + $7_1 = i64toi32_i32$3; + $7$hi = i64toi32_i32$1; + break label$3; + } + i64toi32_i32$1 = $6$hi; + i64toi32_i32$4 = $6_1; + i64toi32_i32$0 = 134217728; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = i64toi32_i32$1 ^ i64toi32_i32$0 | 0; + i64toi32_i32$1 = i64toi32_i32$4 ^ i64toi32_i32$2 | 0; + i64toi32_i32$4 = 0; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$4 | 0) | 0) { + break label$3 + } + i64toi32_i32$1 = $7$hi; + i64toi32_i32$2 = $7_1; + i64toi32_i32$0 = 0; + i64toi32_i32$4 = 1; + i64toi32_i32$0 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $106$hi = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$1; + i64toi32_i32$0 = $106$hi; + i64toi32_i32$1 = i64toi32_i32$2 & i64toi32_i32$4 | 0; + i64toi32_i32$2 = $7$hi; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$0 + i64toi32_i32$2 | 0; + if (i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0) { + i64toi32_i32$3 = i64toi32_i32$3 + 1 | 0 + } + $7_1 = i64toi32_i32$5; + $7$hi = i64toi32_i32$3; + } + label$8 : { + $5_1 = $2_1 + 32 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + i64toi32_i32$3 = $7$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$0 = $1_1; + i64toi32_i32$1 = -2147483648; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = i64toi32_i32$3 & i64toi32_i32$1 | 0; + $117_1 = i64toi32_i32$0 & i64toi32_i32$4 | 0; + $117$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$3 = $7_1; + i64toi32_i32$0 = $117$hi; + i64toi32_i32$4 = $117_1; + i64toi32_i32$0 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$3 | i64toi32_i32$4 | 0 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$0 | 0); + return +(+wasm2js_scratch_load_f64()); + } + + function $947($0_1, $0$hi, $1_1, $1$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$5 = 0, i64toi32_i32$0 = 0, $7_1 = 0, $3_1 = 0, $7$hi = 0, $2_1 = 0, i64toi32_i32$2 = 0, $4_1 = 0, $39_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $6_1 = 0, $44_1 = 0, $5_1 = 0, $18_1 = 0, $18$hi = 0, $20$hi = 0, $26_1 = 0, $30_1 = 0, $40_1 = 0, $40$hi = 0, $48_1 = 0, $50_1 = 0, $87_1 = 0, $87$hi = 0, $89_1 = 0, $89$hi = 0, $93_1 = 0, $93$hi = 0, $95_1 = 0, $96$hi = 0, $99_1 = 0, $103_1 = 0, $111_1 = 0, $111$hi = 0, $124_1 = 0; + label$1 : { + $2_1 = global$0 - 32 | 0; + $5_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + label$3 : { + label$4 : { + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 2147483647; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $7_1 = $1_1 & i64toi32_i32$3 | 0; + $7$hi = i64toi32_i32$1; + i64toi32_i32$0 = $7_1; + i64toi32_i32$2 = -1065418752; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = i64toi32_i32$1 + i64toi32_i32$2 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + $18_1 = i64toi32_i32$4; + $18$hi = i64toi32_i32$5; + i64toi32_i32$5 = $7$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$0 = -1082064896; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = i64toi32_i32$1 + i64toi32_i32$3 | 0; + i64toi32_i32$4 = i64toi32_i32$5 + i64toi32_i32$0 | 0; + if (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$4 = i64toi32_i32$4 + 1 | 0 + } + $20$hi = i64toi32_i32$4; + i64toi32_i32$4 = $18$hi; + i64toi32_i32$5 = $18_1; + i64toi32_i32$1 = $20$hi; + i64toi32_i32$3 = i64toi32_i32$2; + if (i64toi32_i32$4 >>> 0 > i64toi32_i32$1 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$1 | 0) & i64toi32_i32$5 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$4 + } + i64toi32_i32$5 = $1$hi; + i64toi32_i32$3 = $1_1; + i64toi32_i32$4 = 0; + i64toi32_i32$1 = 25; + i64toi32_i32$0 = i64toi32_i32$1 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$1 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $39_1 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$5 >>> i64toi32_i32$0 | 0; + $39_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$5 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$0 | 0) | 0; + } + $3_1 = $39_1; + label$5 : { + i64toi32_i32$4 = $0$hi; + $26_1 = !($0_1 | i64toi32_i32$4 | 0); + i64toi32_i32$4 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$1 = 33554431; + i64toi32_i32$3 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + $7_1 = i64toi32_i32$5 & i64toi32_i32$1 | 0; + $7$hi = i64toi32_i32$3; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 16777216; + $30_1 = i64toi32_i32$3 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$4 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$4 = i64toi32_i32$3; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 16777216; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & (i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) | 0 ? $26_1 : $30_1) { + break label$5 + } + $3_1 = $3_1 + 1073741825 | 0; + break label$3; + } + $3_1 = $3_1 + 1073741824 | 0; + i64toi32_i32$1 = $0$hi; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$5 = $7_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 16777216; + i64toi32_i32$4 = i64toi32_i32$1 ^ i64toi32_i32$4 | 0; + $40_1 = i64toi32_i32$5 ^ i64toi32_i32$3 | 0; + $40$hi = i64toi32_i32$4; + i64toi32_i32$4 = $0$hi; + i64toi32_i32$1 = $0_1; + i64toi32_i32$5 = $40$hi; + i64toi32_i32$3 = $40_1; + i64toi32_i32$5 = i64toi32_i32$4 | i64toi32_i32$5 | 0; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 0; + if ((i64toi32_i32$4 | 0) != (i64toi32_i32$3 | 0) | (i64toi32_i32$5 | 0) != (i64toi32_i32$1 | 0) | 0) { + break label$3 + } + $3_1 = ($3_1 & 1 | 0) + $3_1 | 0; + break label$3; + } + label$6 : { + i64toi32_i32$4 = $0$hi; + $48_1 = !($0_1 | i64toi32_i32$4 | 0); + i64toi32_i32$4 = $7$hi; + i64toi32_i32$3 = $7_1; + i64toi32_i32$5 = 2147418112; + i64toi32_i32$1 = 0; + $50_1 = i64toi32_i32$4 >>> 0 < i64toi32_i32$5 >>> 0 | ((i64toi32_i32$4 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$3 >>> 0 < i64toi32_i32$1 >>> 0 | 0) | 0; + i64toi32_i32$3 = i64toi32_i32$4; + i64toi32_i32$1 = $7_1; + i64toi32_i32$4 = 2147418112; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & (i64toi32_i32$3 | 0) == (i64toi32_i32$4 | 0) | 0 ? $48_1 : $50_1) { + break label$6 + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = 25; + i64toi32_i32$0 = i64toi32_i32$4 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$4 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $41_1 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + $41_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$0 | 0) | 0; + } + $3_1 = $41_1 & 4194303 | 0 | 2143289344 | 0; + break label$3; + } + $3_1 = 2139095040; + i64toi32_i32$3 = $7$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$5 = 1082064895; + i64toi32_i32$4 = -1; + if (i64toi32_i32$3 >>> 0 > i64toi32_i32$5 >>> 0 | ((i64toi32_i32$3 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$1 >>> 0 > i64toi32_i32$4 >>> 0 | 0) | 0) { + break label$3 + } + $3_1 = 0; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$4 = $7_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 48; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $42_1 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + $42_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$0 | 0) | 0; + } + $4_1 = $42_1; + if ($4_1 >>> 0 < 16145 >>> 0) { + break label$3 + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $1_1; + i64toi32_i32$4 = 65535; + i64toi32_i32$5 = -1; + i64toi32_i32$4 = i64toi32_i32$3 & i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + i64toi32_i32$1 = 65536; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $7_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $7$hi = i64toi32_i32$1; + i64toi32_i32$1 = $0$hi; + i64toi32_i32$3 = $7$hi; + $934($2_1 + 16 | 0 | 0, $0_1 | 0, i64toi32_i32$1 | 0, $7_1 | 0, i64toi32_i32$3 | 0, $4_1 + -16129 | 0 | 0); + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$3 = $7$hi; + i64toi32_i32$3 = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + $942($2_1 | 0, $0_1 | 0, i64toi32_i32$3 | 0, $7_1 | 0, i64toi32_i32$1 | 0, 16257 - $4_1 | 0 | 0); + i64toi32_i32$4 = $2_1 + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$4 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$4 + 4 | 0) >> 2] | 0; + $7_1 = i64toi32_i32$1; + $7$hi = i64toi32_i32$3; + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 25; + i64toi32_i32$0 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $43_1 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$0 | 0; + $43_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$4 >>> i64toi32_i32$0 | 0) | 0; + } + $3_1 = $43_1; + label$7 : { + i64toi32_i32$3 = $2_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $87_1 = i64toi32_i32$1; + $87$hi = i64toi32_i32$4; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 16 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$3 + 20 | 0) >> 2] | 0; + $89_1 = i64toi32_i32$4; + $89$hi = i64toi32_i32$1; + i64toi32_i32$3 = (i64toi32_i32$3 + 16 | 0) + 8 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$3 >> 2] | 0; + i64toi32_i32$4 = HEAP32[(i64toi32_i32$3 + 4 | 0) >> 2] | 0; + $93_1 = i64toi32_i32$1; + $93$hi = i64toi32_i32$4; + i64toi32_i32$4 = $89$hi; + i64toi32_i32$3 = $89_1; + i64toi32_i32$1 = $93$hi; + i64toi32_i32$5 = $93_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 0; + $95_1 = (i64toi32_i32$4 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$1 | 0) != (i64toi32_i32$3 | 0) | 0; + i64toi32_i32$4 = 0; + $96$hi = i64toi32_i32$4; + i64toi32_i32$4 = $87$hi; + i64toi32_i32$5 = $87_1; + i64toi32_i32$1 = $96$hi; + i64toi32_i32$3 = $95_1; + i64toi32_i32$1 = i64toi32_i32$4 | i64toi32_i32$1 | 0; + $0_1 = i64toi32_i32$5 | i64toi32_i32$3 | 0; + $0$hi = i64toi32_i32$1; + $99_1 = !($0_1 | i64toi32_i32$1 | 0); + i64toi32_i32$1 = $7$hi; + i64toi32_i32$4 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 33554431; + i64toi32_i32$5 = i64toi32_i32$1 & i64toi32_i32$5 | 0; + $7_1 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + $7$hi = i64toi32_i32$5; + i64toi32_i32$1 = $7_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 16777216; + $103_1 = i64toi32_i32$5 >>> 0 < i64toi32_i32$4 >>> 0 | ((i64toi32_i32$5 | 0) == (i64toi32_i32$4 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$5; + i64toi32_i32$3 = $7_1; + i64toi32_i32$5 = 0; + i64toi32_i32$4 = 16777216; + if ((i64toi32_i32$3 | 0) == (i64toi32_i32$4 | 0) & (i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) | 0 ? $99_1 : $103_1) { + break label$7 + } + $3_1 = $3_1 + 1 | 0; + break label$3; + } + i64toi32_i32$3 = $0$hi; + i64toi32_i32$3 = $7$hi; + i64toi32_i32$4 = $7_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 16777216; + i64toi32_i32$1 = i64toi32_i32$3 ^ i64toi32_i32$1 | 0; + $111_1 = i64toi32_i32$4 ^ i64toi32_i32$5 | 0; + $111$hi = i64toi32_i32$1; + i64toi32_i32$1 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$4 = $111$hi; + i64toi32_i32$5 = $111_1; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$1 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$4 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$3 + } + $3_1 = ($3_1 & 1 | 0) + $3_1 | 0; + } + label$8 : { + $6_1 = $2_1 + 32 | 0; + if ($6_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + $124_1 = $3_1; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$5 = $1_1; + i64toi32_i32$4 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$0 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$4 = 0; + $44_1 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + } else { + i64toi32_i32$4 = i64toi32_i32$1 >>> i64toi32_i32$0 | 0; + $44_1 = (((1 << i64toi32_i32$0 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$0 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$0 | 0) | 0; + } + return Math_fround((wasm2js_scratch_store_i32(0, $124_1 | ($44_1 & -2147483648 | 0) | 0), wasm2js_scratch_load_f32())); + } + + function $948($0_1) { + $0_1 = +$0_1; + var $1_1 = 0.0; + $0_1 = $0_1 * $0_1; + $1_1 = $0_1 * $0_1; + return Math_fround(Math_fround($0_1 * -.499999997251031 + 1.0 + $1_1 * .04166662332373906 + $0_1 * $1_1 * ($0_1 * 2.439044879627741e-05 + -.001388676377460993))); + } + + function $949($0_1) { + $0_1 = +$0_1; + var $1_1 = 0.0, $2_1 = 0.0; + $1_1 = $0_1 * $0_1; + $2_1 = $1_1 * $0_1; + return Math_fround(Math_fround($2_1 * ($1_1 * $1_1) * ($1_1 * 2.718311493989822e-06 + -1.9839334836096632e-04) + ($2_1 * ($1_1 * .008333329385889463 + -.16666666641626524) + $0_1))); + } + + function $950($0_1) { + $0_1 = +$0_1; + return +Math_floor($0_1); + } + + function $951($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var $25_1 = 0.0, $11_1 = 0, $6_1 = 0, $5_1 = 0, $26_1 = 0.0, $9_1 = 0, $10_1 = 0, $14_1 = 0, $21_1 = 0, $8_1 = 0, $12_1 = 0, $19_1 = 0, $18_1 = 0, $27_1 = 0.0, $7_1 = 0, $13_1 = 0, $16_1 = 0, $17_1 = 0, $20_1 = 0, i64toi32_i32$0 = 0, $23_1 = 0, $22_1 = 0, $15_1 = 0, $214_1 = 0, $217_1 = 0, $545_1 = 0.0, $579_1 = 0.0, i64toi32_i32$1 = 0, $616_1 = 0; + label$1 : { + $5_1 = global$0 - 560 | 0; + $22_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $22_1; + } + $6_1 = ($2_1 + -3 | 0 | 0) / (24 | 0) | 0; + $7_1 = ($6_1 | 0) > (0 | 0) ? $6_1 : 0; + $8_1 = Math_imul($7_1, -24) + $2_1 | 0; + label$3 : { + $9_1 = HEAP32[(($4_1 << 2 | 0) + 21104 | 0) >> 2] | 0; + $10_1 = $3_1 + -1 | 0; + if (($9_1 + $10_1 | 0 | 0) < (0 | 0)) { + break label$3 + } + $11_1 = $9_1 + $3_1 | 0; + $2_1 = $7_1 - $10_1 | 0; + $6_1 = 0; + label$4 : while (1) { + label$5 : { + label$6 : { + if (($2_1 | 0) >= (0 | 0)) { + break label$6 + } + $25_1 = 0.0; + break label$5; + } + $25_1 = +(HEAP32[(($2_1 << 2 | 0) + 21120 | 0) >> 2] | 0 | 0); + } + HEAPF64[(($5_1 + 320 | 0) + ($6_1 << 3 | 0) | 0) >> 3] = $25_1; + $2_1 = $2_1 + 1 | 0; + $6_1 = $6_1 + 1 | 0; + if (($6_1 | 0) != ($11_1 | 0)) { + continue label$4 + } + break label$4; + }; + } + $12_1 = $8_1 + -24 | 0; + $11_1 = 0; + $13_1 = ($9_1 | 0) > (0 | 0) ? $9_1 : 0; + $14_1 = ($3_1 | 0) < (1 | 0); + label$7 : while (1) { + label$8 : { + label$9 : { + if (!$14_1) { + break label$9 + } + $25_1 = 0.0; + break label$8; + } + $6_1 = $11_1 + $10_1 | 0; + $2_1 = 0; + $25_1 = 0.0; + label$10 : while (1) { + $25_1 = $25_1 + +HEAPF64[($0_1 + ($2_1 << 3 | 0) | 0) >> 3] * +HEAPF64[(($5_1 + 320 | 0) + (($6_1 - $2_1 | 0) << 3 | 0) | 0) >> 3]; + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != ($3_1 | 0)) { + continue label$10 + } + break label$10; + }; + } + HEAPF64[($5_1 + ($11_1 << 3 | 0) | 0) >> 3] = $25_1; + $2_1 = ($11_1 | 0) == ($13_1 | 0); + $11_1 = $11_1 + 1 | 0; + if (!$2_1) { + continue label$7 + } + break label$7; + }; + $15_1 = 47 - $8_1 | 0; + $16_1 = 48 - $8_1 | 0; + $17_1 = $8_1 + -25 | 0; + $11_1 = $9_1; + label$11 : { + label$12 : while (1) { + $25_1 = +HEAPF64[($5_1 + ($11_1 << 3 | 0) | 0) >> 3]; + $2_1 = 0; + $6_1 = $11_1; + label$13 : { + $18_1 = ($11_1 | 0) < (1 | 0); + if ($18_1) { + break label$13 + } + label$14 : while (1) { + $14_1 = $2_1 << 2 | 0; + label$15 : { + label$16 : { + $26_1 = $25_1 * 5.9604644775390625e-08; + if (!(Math_abs($26_1) < 2147483648.0)) { + break label$16 + } + $10_1 = ~~$26_1; + break label$15; + } + $10_1 = -2147483648; + } + $14_1 = ($5_1 + 480 | 0) + $14_1 | 0; + label$17 : { + label$18 : { + $26_1 = +($10_1 | 0); + $25_1 = $25_1 + $26_1 * -16777216.0; + if (!(Math_abs($25_1) < 2147483648.0)) { + break label$18 + } + $10_1 = ~~$25_1; + break label$17; + } + $10_1 = -2147483648; + } + HEAP32[$14_1 >> 2] = $10_1; + $6_1 = $6_1 + -1 | 0; + $25_1 = +HEAPF64[($5_1 + ($6_1 << 3 | 0) | 0) >> 3] + $26_1; + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != ($11_1 | 0)) { + continue label$14 + } + break label$14; + }; + } + $25_1 = +$970(+$25_1, $12_1 | 0); + label$19 : { + label$20 : { + $25_1 = $25_1 + +$950(+($25_1 * .125)) * -8.0; + if (!(Math_abs($25_1) < 2147483648.0)) { + break label$20 + } + $19_1 = ~~$25_1; + break label$19; + } + $19_1 = -2147483648; + } + $25_1 = $25_1 - +($19_1 | 0); + label$21 : { + label$22 : { + label$23 : { + label$24 : { + label$25 : { + $20_1 = ($12_1 | 0) < (1 | 0); + if ($20_1) { + break label$25 + } + $2_1 = (($11_1 << 2 | 0) + ($5_1 + 480 | 0) | 0) + -4 | 0; + $214_1 = $2_1; + $2_1 = HEAP32[$2_1 >> 2] | 0; + $217_1 = $2_1; + $2_1 = $2_1 >> $16_1 | 0; + $6_1 = $217_1 - ($2_1 << $16_1 | 0) | 0; + HEAP32[$214_1 >> 2] = $6_1; + $21_1 = $6_1 >> $15_1 | 0; + $19_1 = $2_1 + $19_1 | 0; + break label$24; + } + if ($12_1) { + break label$23 + } + $21_1 = (HEAP32[((($11_1 << 2 | 0) + ($5_1 + 480 | 0) | 0) + -4 | 0) >> 2] | 0) >> 23 | 0; + } + if (($21_1 | 0) < (1 | 0)) { + break label$21 + } + break label$22; + } + $21_1 = 2; + if (!($25_1 >= .5 ^ 1 | 0)) { + break label$22 + } + $21_1 = 0; + break label$21; + } + $2_1 = 0; + $10_1 = 0; + label$26 : { + if ($18_1) { + break label$26 + } + label$27 : while (1) { + $18_1 = ($5_1 + 480 | 0) + ($2_1 << 2 | 0) | 0; + $6_1 = HEAP32[$18_1 >> 2] | 0; + $14_1 = 16777215; + label$28 : { + label$29 : { + if ($10_1) { + break label$29 + } + $14_1 = 16777216; + if ($6_1) { + break label$29 + } + $10_1 = 0; + break label$28; + } + HEAP32[$18_1 >> 2] = $14_1 - $6_1 | 0; + $10_1 = 1; + } + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != ($11_1 | 0)) { + continue label$27 + } + break label$27; + }; + } + label$30 : { + if ($20_1) { + break label$30 + } + if ($17_1 >>> 0 > 1 >>> 0) { + break label$30 + } + label$31 : { + switch ($17_1 | 0) { + default: + $2_1 = (($11_1 << 2 | 0) + ($5_1 + 480 | 0) | 0) + -4 | 0; + HEAP32[$2_1 >> 2] = (HEAP32[$2_1 >> 2] | 0) & 8388607 | 0; + break label$30; + case 1: + break label$31; + }; + } + $2_1 = (($11_1 << 2 | 0) + ($5_1 + 480 | 0) | 0) + -4 | 0; + HEAP32[$2_1 >> 2] = (HEAP32[$2_1 >> 2] | 0) & 4194303 | 0; + } + $19_1 = $19_1 + 1 | 0; + if (($21_1 | 0) != (2 | 0)) { + break label$21 + } + $25_1 = 1.0 - $25_1; + $21_1 = 2; + if (!$10_1) { + break label$21 + } + $25_1 = $25_1 - +$970(+(1.0), $12_1 | 0); + } + label$33 : { + if ($25_1 != 0.0) { + break label$33 + } + $6_1 = 0; + $2_1 = $11_1; + label$34 : { + if (($2_1 | 0) <= ($9_1 | 0)) { + break label$34 + } + label$35 : while (1) { + $2_1 = $2_1 + -1 | 0; + $6_1 = HEAP32[(($5_1 + 480 | 0) + ($2_1 << 2 | 0) | 0) >> 2] | 0 | $6_1 | 0; + if (($2_1 | 0) > ($9_1 | 0)) { + continue label$35 + } + break label$35; + }; + if (!$6_1) { + break label$34 + } + $8_1 = $12_1; + label$36 : while (1) { + $8_1 = $8_1 + -24 | 0; + $11_1 = $11_1 + -1 | 0; + if (!(HEAP32[(($5_1 + 480 | 0) + ($11_1 << 2 | 0) | 0) >> 2] | 0)) { + continue label$36 + } + break label$11; + }; + } + $2_1 = 1; + label$37 : while (1) { + $6_1 = $2_1; + $2_1 = $2_1 + 1 | 0; + if (!(HEAP32[(($5_1 + 480 | 0) + (($9_1 - $6_1 | 0) << 2 | 0) | 0) >> 2] | 0)) { + continue label$37 + } + break label$37; + }; + $14_1 = $6_1 + $11_1 | 0; + label$38 : while (1) { + $6_1 = $11_1 + $3_1 | 0; + $11_1 = $11_1 + 1 | 0; + HEAPF64[(($5_1 + 320 | 0) + ($6_1 << 3 | 0) | 0) >> 3] = +(HEAP32[((($11_1 + $7_1 | 0) << 2 | 0) + 21120 | 0) >> 2] | 0 | 0); + $2_1 = 0; + $25_1 = 0.0; + label$39 : { + if (($3_1 | 0) < (1 | 0)) { + break label$39 + } + label$40 : while (1) { + $25_1 = $25_1 + +HEAPF64[($0_1 + ($2_1 << 3 | 0) | 0) >> 3] * +HEAPF64[(($5_1 + 320 | 0) + (($6_1 - $2_1 | 0) << 3 | 0) | 0) >> 3]; + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != ($3_1 | 0)) { + continue label$40 + } + break label$40; + }; + } + HEAPF64[($5_1 + ($11_1 << 3 | 0) | 0) >> 3] = $25_1; + if (($11_1 | 0) < ($14_1 | 0)) { + continue label$38 + } + break label$38; + }; + $11_1 = $14_1; + continue label$12; + } + break label$12; + }; + label$41 : { + label$42 : { + $25_1 = +$970(+$25_1, 0 - $12_1 | 0 | 0); + if ($25_1 >= 16777216.0 ^ 1 | 0) { + break label$42 + } + $3_1 = $11_1 << 2 | 0; + label$43 : { + label$44 : { + $26_1 = $25_1 * 5.9604644775390625e-08; + if (!(Math_abs($26_1) < 2147483648.0)) { + break label$44 + } + $2_1 = ~~$26_1; + break label$43; + } + $2_1 = -2147483648; + } + $3_1 = ($5_1 + 480 | 0) + $3_1 | 0; + label$45 : { + label$46 : { + $25_1 = $25_1 + +($2_1 | 0) * -16777216.0; + if (!(Math_abs($25_1) < 2147483648.0)) { + break label$46 + } + $6_1 = ~~$25_1; + break label$45; + } + $6_1 = -2147483648; + } + HEAP32[$3_1 >> 2] = $6_1; + $11_1 = $11_1 + 1 | 0; + break label$41; + } + label$47 : { + label$48 : { + if (!(Math_abs($25_1) < 2147483648.0)) { + break label$48 + } + $2_1 = ~~$25_1; + break label$47; + } + $2_1 = -2147483648; + } + $8_1 = $12_1; + } + HEAP32[(($5_1 + 480 | 0) + ($11_1 << 2 | 0) | 0) >> 2] = $2_1; + } + $25_1 = +$970(+(1.0), $8_1 | 0); + label$49 : { + if (($11_1 | 0) < (0 | 0)) { + break label$49 + } + $2_1 = $11_1; + label$50 : while (1) { + HEAPF64[($5_1 + ($2_1 << 3 | 0) | 0) >> 3] = $25_1 * +(HEAP32[(($5_1 + 480 | 0) + ($2_1 << 2 | 0) | 0) >> 2] | 0 | 0); + $25_1 = $25_1 * 5.9604644775390625e-08; + $9_1 = 0; + $3_1 = ($2_1 | 0) > (0 | 0); + $2_1 = $2_1 + -1 | 0; + if ($3_1) { + continue label$50 + } + break label$50; + }; + $6_1 = $11_1; + label$51 : while (1) { + $0_1 = $13_1 >>> 0 < $9_1 >>> 0 ? $13_1 : $9_1; + $14_1 = $11_1 - $6_1 | 0; + $2_1 = 0; + $25_1 = 0.0; + label$52 : while (1) { + $25_1 = $25_1 + +HEAPF64[(($2_1 << 3 | 0) + 23888 | 0) >> 3] * +HEAPF64[($5_1 + (($2_1 + $6_1 | 0) << 3 | 0) | 0) >> 3]; + $3_1 = ($2_1 | 0) != ($0_1 | 0); + $2_1 = $2_1 + 1 | 0; + if ($3_1) { + continue label$52 + } + break label$52; + }; + HEAPF64[(($5_1 + 160 | 0) + ($14_1 << 3 | 0) | 0) >> 3] = $25_1; + $6_1 = $6_1 + -1 | 0; + $2_1 = ($9_1 | 0) != ($11_1 | 0); + $9_1 = $9_1 + 1 | 0; + if ($2_1) { + continue label$51 + } + break label$51; + }; + } + label$53 : { + if ($4_1 >>> 0 > 3 >>> 0) { + break label$53 + } + label$54 : { + label$55 : { + switch ($4_1 | 0) { + case 3: + $27_1 = 0.0; + label$58 : { + if (($11_1 | 0) < (1 | 0)) { + break label$58 + } + $0_1 = ($5_1 + 160 | 0) + ($11_1 << 3 | 0) | 0; + $25_1 = +HEAPF64[$0_1 >> 3]; + $2_1 = $11_1; + label$59 : while (1) { + $3_1 = $2_1 + -1 | 0; + $6_1 = ($5_1 + 160 | 0) + ($3_1 << 3 | 0) | 0; + $26_1 = +HEAPF64[$6_1 >> 3]; + $545_1 = $26_1; + $26_1 = $26_1 + $25_1; + HEAPF64[(($5_1 + 160 | 0) + ($2_1 << 3 | 0) | 0) >> 3] = $25_1 + ($545_1 - $26_1); + HEAPF64[$6_1 >> 3] = $26_1; + $6_1 = ($2_1 | 0) > (1 | 0); + $25_1 = $26_1; + $2_1 = $3_1; + if ($6_1) { + continue label$59 + } + break label$59; + }; + if (($11_1 | 0) < (2 | 0)) { + break label$58 + } + $25_1 = +HEAPF64[$0_1 >> 3]; + $2_1 = $11_1; + label$60 : while (1) { + $3_1 = $2_1 + -1 | 0; + $6_1 = ($5_1 + 160 | 0) + ($3_1 << 3 | 0) | 0; + $26_1 = +HEAPF64[$6_1 >> 3]; + $579_1 = $26_1; + $26_1 = $26_1 + $25_1; + HEAPF64[(($5_1 + 160 | 0) + ($2_1 << 3 | 0) | 0) >> 3] = $25_1 + ($579_1 - $26_1); + HEAPF64[$6_1 >> 3] = $26_1; + $6_1 = ($2_1 | 0) > (2 | 0); + $25_1 = $26_1; + $2_1 = $3_1; + if ($6_1) { + continue label$60 + } + break label$60; + }; + $27_1 = 0.0; + label$61 : while (1) { + $27_1 = $27_1 + +HEAPF64[(($5_1 + 160 | 0) + ($11_1 << 3 | 0) | 0) >> 3]; + $2_1 = ($11_1 | 0) > (2 | 0); + $11_1 = $11_1 + -1 | 0; + if ($2_1) { + continue label$61 + } + break label$61; + }; + } + $25_1 = +HEAPF64[($5_1 + 160 | 0) >> 3]; + if ($21_1) { + break label$54 + } + HEAPF64[$1_1 >> 3] = $25_1; + i64toi32_i32$0 = HEAP32[($5_1 + 168 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[($5_1 + 172 | 0) >> 2] | 0; + HEAPF64[($1_1 + 16 | 0) >> 3] = $27_1; + $616_1 = i64toi32_i32$0; + i64toi32_i32$0 = $1_1; + HEAP32[($1_1 + 8 | 0) >> 2] = $616_1; + HEAP32[($1_1 + 12 | 0) >> 2] = i64toi32_i32$1; + break label$53; + default: + $25_1 = 0.0; + label$62 : { + if (($11_1 | 0) < (0 | 0)) { + break label$62 + } + label$63 : while (1) { + $25_1 = $25_1 + +HEAPF64[(($5_1 + 160 | 0) + ($11_1 << 3 | 0) | 0) >> 3]; + $2_1 = ($11_1 | 0) > (0 | 0); + $11_1 = $11_1 + -1 | 0; + if ($2_1) { + continue label$63 + } + break label$63; + }; + } + HEAPF64[$1_1 >> 3] = $21_1 ? -$25_1 : $25_1; + break label$53; + case 1: + case 2: + break label$55; + }; + } + $25_1 = 0.0; + label$64 : { + if (($11_1 | 0) < (0 | 0)) { + break label$64 + } + $2_1 = $11_1; + label$65 : while (1) { + $25_1 = $25_1 + +HEAPF64[(($5_1 + 160 | 0) + ($2_1 << 3 | 0) | 0) >> 3]; + $3_1 = ($2_1 | 0) > (0 | 0); + $2_1 = $2_1 + -1 | 0; + if ($3_1) { + continue label$65 + } + break label$65; + }; + } + HEAPF64[$1_1 >> 3] = $21_1 ? -$25_1 : $25_1; + $25_1 = +HEAPF64[($5_1 + 160 | 0) >> 3] - $25_1; + $2_1 = 1; + label$66 : { + if (($11_1 | 0) < (1 | 0)) { + break label$66 + } + label$67 : while (1) { + $25_1 = $25_1 + +HEAPF64[(($5_1 + 160 | 0) + ($2_1 << 3 | 0) | 0) >> 3]; + $3_1 = ($2_1 | 0) != ($11_1 | 0); + $2_1 = $2_1 + 1 | 0; + if ($3_1) { + continue label$67 + } + break label$67; + }; + } + HEAPF64[($1_1 + 8 | 0) >> 3] = $21_1 ? -$25_1 : $25_1; + break label$53; + } + HEAPF64[$1_1 >> 3] = -$25_1; + $25_1 = +HEAPF64[($5_1 + 168 | 0) >> 3]; + HEAPF64[($1_1 + 16 | 0) >> 3] = -$27_1; + HEAPF64[($1_1 + 8 | 0) >> 3] = -$25_1; + } + label$68 : { + $23_1 = $5_1 + 560 | 0; + if ($23_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $23_1; + } + return $19_1 & 7 | 0 | 0; + } + + function $952($0_1, $1_1) { + $0_1 = Math_fround($0_1); + $1_1 = $1_1 | 0; + var $4_1 = 0, $8_1 = 0.0, $2_1 = 0, $3_1 = 0, $5_1 = 0, $7_1 = 0, $6_1 = 0, $25_1 = 0.0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $6_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $6_1; + } + label$3 : { + label$4 : { + $3_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + $4_1 = $3_1 & 2147483647 | 0; + if ($4_1 >>> 0 > 1305022426 >>> 0) { + break label$4 + } + $8_1 = +$0_1; + $25_1 = $8_1; + $8_1 = $8_1 * .6366197723675814 + 6755399441055744.0 + -6755399441055744.0; + HEAPF64[$1_1 >> 3] = $25_1 + $8_1 * -1.5707963109016418 + $8_1 * -1.5893254773528196e-08; + label$5 : { + if (!(Math_abs($8_1) < 2147483648.0)) { + break label$5 + } + $4_1 = ~~$8_1; + break label$3; + } + $4_1 = -2147483648; + break label$3; + } + label$6 : { + if ($4_1 >>> 0 < 2139095040 >>> 0) { + break label$6 + } + HEAPF64[$1_1 >> 3] = +Math_fround($0_1 - $0_1); + $4_1 = 0; + break label$3; + } + $5_1 = ($4_1 >>> 23 | 0) + -150 | 0; + HEAPF64[($2_1 + 8 | 0) >> 3] = +(wasm2js_scratch_store_i32(0, $4_1 - ($5_1 << 23 | 0) | 0), wasm2js_scratch_load_f32()); + $4_1 = $951($2_1 + 8 | 0 | 0, $2_1 | 0, $5_1 | 0, 1 | 0, 0 | 0) | 0; + $8_1 = +HEAPF64[$2_1 >> 3]; + label$7 : { + if (($3_1 | 0) > (-1 | 0)) { + break label$7 + } + HEAPF64[$1_1 >> 3] = -$8_1; + $4_1 = 0 - $4_1 | 0; + break label$3; + } + HEAPF64[$1_1 >> 3] = $8_1; + } + label$8 : { + $7_1 = $2_1 + 16 | 0; + if ($7_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $7_1; + } + return $4_1 | 0; + } + + function $953($0_1) { + $0_1 = Math_fround($0_1); + var $6_1 = Math_fround(0), $3_1 = 0, $1_1 = 0, $2_1 = 0, $7_1 = 0.0, $5_1 = 0, $4_1 = 0; + label$1 : { + $1_1 = global$0 - 16 | 0; + $4_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + $2_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + $3_1 = $2_1 & 2147483647 | 0; + if ($3_1 >>> 0 > 1061752794 >>> 0) { + break label$4 + } + $6_1 = Math_fround(1.0); + if ($3_1 >>> 0 < 964689920 >>> 0) { + break label$3 + } + $6_1 = Math_fround($948(+(+$0_1))); + break label$3; + } + label$5 : { + if ($3_1 >>> 0 > 1081824209 >>> 0) { + break label$5 + } + $7_1 = +$0_1; + label$6 : { + if ($3_1 >>> 0 < 1075235812 >>> 0) { + break label$6 + } + $6_1 = Math_fround(-Math_fround($948(+((($2_1 | 0) < (0 | 0) ? 3.141592653589793 : -3.141592653589793) + $7_1)))); + break label$3; + } + label$7 : { + if (($2_1 | 0) > (-1 | 0)) { + break label$7 + } + $6_1 = Math_fround($949(+($7_1 + 1.5707963267948966))); + break label$3; + } + $6_1 = Math_fround($949(+(1.5707963267948966 - $7_1))); + break label$3; + } + label$8 : { + if ($3_1 >>> 0 > 1088565717 >>> 0) { + break label$8 + } + label$9 : { + if ($3_1 >>> 0 < 1085271520 >>> 0) { + break label$9 + } + $6_1 = Math_fround($948(+((($2_1 | 0) < (0 | 0) ? 6.283185307179586 : -6.283185307179586) + +$0_1))); + break label$3; + } + label$10 : { + if (($2_1 | 0) > (-1 | 0)) { + break label$10 + } + $6_1 = Math_fround($949(+(-4.71238898038469 - +$0_1))); + break label$3; + } + $6_1 = Math_fround($949(+(+$0_1 + -4.71238898038469))); + break label$3; + } + label$11 : { + if ($3_1 >>> 0 < 2139095040 >>> 0) { + break label$11 + } + $6_1 = Math_fround($0_1 - $0_1); + break label$3; + } + label$12 : { + $3_1 = ($952(Math_fround($0_1), $1_1 + 8 | 0 | 0) | 0) & 3 | 0; + if ($3_1 >>> 0 > 2 >>> 0) { + break label$12 + } + label$13 : { + switch ($3_1 | 0) { + default: + $6_1 = Math_fround($948(+(+HEAPF64[($1_1 + 8 | 0) >> 3]))); + break label$3; + case 1: + $6_1 = Math_fround($949(+-+HEAPF64[($1_1 + 8 | 0) >> 3])); + break label$3; + case 2: + break label$13; + }; + } + $6_1 = Math_fround(-Math_fround($948(+(+HEAPF64[($1_1 + 8 | 0) >> 3])))); + break label$3; + } + $6_1 = Math_fround($949(+(+HEAPF64[($1_1 + 8 | 0) >> 3]))); + } + label$16 : { + $5_1 = $1_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return Math_fround($6_1); + } + + function $954($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $1_1 = 0, $6_1 = 0.0, $2_1 = 0, $5_1 = 0, $4_1 = 0; + label$1 : { + $1_1 = global$0 - 16 | 0; + $4_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + $2_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + $3_1 = $2_1 & 2147483647 | 0; + if ($3_1 >>> 0 > 1061752794 >>> 0) { + break label$4 + } + if ($3_1 >>> 0 < 964689920 >>> 0) { + break label$3 + } + $0_1 = Math_fround($949(+(+$0_1))); + break label$3; + } + label$5 : { + if ($3_1 >>> 0 > 1081824209 >>> 0) { + break label$5 + } + $6_1 = +$0_1; + label$6 : { + if ($3_1 >>> 0 > 1075235811 >>> 0) { + break label$6 + } + label$7 : { + if (($2_1 | 0) > (-1 | 0)) { + break label$7 + } + $0_1 = Math_fround(-Math_fround($948(+($6_1 + 1.5707963267948966)))); + break label$3; + } + $0_1 = Math_fround($948(+($6_1 + -1.5707963267948966))); + break label$3; + } + $0_1 = Math_fround($949(+-((($2_1 | 0) < (0 | 0) ? 3.141592653589793 : -3.141592653589793) + $6_1))); + break label$3; + } + label$8 : { + if ($3_1 >>> 0 > 1088565717 >>> 0) { + break label$8 + } + $6_1 = +$0_1; + label$9 : { + if ($3_1 >>> 0 > 1085271519 >>> 0) { + break label$9 + } + label$10 : { + if (($2_1 | 0) > (-1 | 0)) { + break label$10 + } + $0_1 = Math_fround($948(+($6_1 + 4.71238898038469))); + break label$3; + } + $0_1 = Math_fround(-Math_fround($948(+($6_1 + -4.71238898038469)))); + break label$3; + } + $0_1 = Math_fround($949(+((($2_1 | 0) < (0 | 0) ? 6.283185307179586 : -6.283185307179586) + $6_1))); + break label$3; + } + label$11 : { + if ($3_1 >>> 0 < 2139095040 >>> 0) { + break label$11 + } + $0_1 = Math_fround($0_1 - $0_1); + break label$3; + } + label$12 : { + $3_1 = ($952(Math_fround($0_1), $1_1 + 8 | 0 | 0) | 0) & 3 | 0; + if ($3_1 >>> 0 > 2 >>> 0) { + break label$12 + } + label$13 : { + switch ($3_1 | 0) { + default: + $0_1 = Math_fround($949(+(+HEAPF64[($1_1 + 8 | 0) >> 3]))); + break label$3; + case 1: + $0_1 = Math_fround($948(+(+HEAPF64[($1_1 + 8 | 0) >> 3]))); + break label$3; + case 2: + break label$13; + }; + } + $0_1 = Math_fround($949(+-+HEAPF64[($1_1 + 8 | 0) >> 3])); + break label$3; + } + $0_1 = Math_fround(-Math_fround($948(+(+HEAPF64[($1_1 + 8 | 0) >> 3])))); + } + label$16 : { + $5_1 = $1_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return Math_fround($0_1); + } + + function $955($0_1, $1_1) { + $0_1 = +$0_1; + $1_1 = $1_1 | 0; + var $2_1 = 0.0, $3_1 = 0.0, $16_1 = 0.0; + $2_1 = $0_1 * $0_1; + $3_1 = $2_1 * $0_1; + $16_1 = $3_1 * ($2_1 * .13339200271297674 + .3333313950307914) + $0_1; + $0_1 = $2_1 * $2_1; + $2_1 = $16_1 + $3_1 * $0_1 * ($2_1 * .024528318116654728 + .05338123784456704 + $0_1 * ($2_1 * .009465647849436732 + .002974357433599673)); + return Math_fround(Math_fround($1_1 ? -1.0 / $2_1 : $2_1)); + } + + function $956($0_1) { + $0_1 = Math_fround($0_1); + var $3_1 = 0, $1_1 = 0, $2_1 = 0, $6_1 = 0.0, $5_1 = 0, $4_1 = 0; + label$1 : { + $1_1 = global$0 - 16 | 0; + $4_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + label$3 : { + label$4 : { + $2_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + $3_1 = $2_1 & 2147483647 | 0; + if ($3_1 >>> 0 > 1061752794 >>> 0) { + break label$4 + } + if ($3_1 >>> 0 < 964689920 >>> 0) { + break label$3 + } + $0_1 = Math_fround($955(+(+$0_1), 0 | 0)); + break label$3; + } + label$5 : { + if ($3_1 >>> 0 > 1081824209 >>> 0) { + break label$5 + } + $6_1 = +$0_1; + label$6 : { + if ($3_1 >>> 0 > 1075235811 >>> 0) { + break label$6 + } + $0_1 = Math_fround($955(+((($2_1 | 0) < (0 | 0) ? 1.5707963267948966 : -1.5707963267948966) + $6_1), 1 | 0)); + break label$3; + } + $0_1 = Math_fround($955(+((($2_1 | 0) < (0 | 0) ? 3.141592653589793 : -3.141592653589793) + $6_1), 0 | 0)); + break label$3; + } + label$7 : { + if ($3_1 >>> 0 > 1088565717 >>> 0) { + break label$7 + } + $6_1 = +$0_1; + label$8 : { + if ($3_1 >>> 0 > 1085271519 >>> 0) { + break label$8 + } + $0_1 = Math_fround($955(+((($2_1 | 0) < (0 | 0) ? 4.71238898038469 : -4.71238898038469) + $6_1), 1 | 0)); + break label$3; + } + $0_1 = Math_fround($955(+((($2_1 | 0) < (0 | 0) ? 6.283185307179586 : -6.283185307179586) + $6_1), 0 | 0)); + break label$3; + } + label$9 : { + if ($3_1 >>> 0 < 2139095040 >>> 0) { + break label$9 + } + $0_1 = Math_fround($0_1 - $0_1); + break label$3; + } + $3_1 = $952(Math_fround($0_1), $1_1 + 8 | 0 | 0) | 0; + $0_1 = Math_fround($955(+(+HEAPF64[($1_1 + 8 | 0) >> 3]), $3_1 & 1 | 0 | 0)); + } + label$10 : { + $5_1 = $1_1 + 16 | 0; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $5_1; + } + return Math_fround($0_1); + } + + function $957($0_1, $1_1) { + $0_1 = Math_fround($0_1); + $1_1 = $1_1 | 0; + label$1 : { + label$2 : { + if (($1_1 | 0) < (128 | 0)) { + break label$2 + } + $0_1 = Math_fround($0_1 * Math_fround(1701411834604692317316873.0e14)); + label$3 : { + if (($1_1 | 0) >= (255 | 0)) { + break label$3 + } + $1_1 = $1_1 + -127 | 0; + break label$1; + } + $0_1 = Math_fround($0_1 * Math_fround(1701411834604692317316873.0e14)); + $1_1 = (($1_1 | 0) < (381 | 0) ? $1_1 : 381) + -254 | 0; + break label$1; + } + if (($1_1 | 0) > (-127 | 0)) { + break label$1 + } + $0_1 = Math_fround($0_1 * Math_fround(1.1754943508222875e-38)); + label$4 : { + if (($1_1 | 0) <= (-253 | 0)) { + break label$4 + } + $1_1 = $1_1 + 126 | 0; + break label$1; + } + $0_1 = Math_fround($0_1 * Math_fround(1.1754943508222875e-38)); + $1_1 = (($1_1 | 0) > (-378 | 0) ? $1_1 : -378) + 252 | 0; + } + return Math_fround(Math_fround($0_1 * (wasm2js_scratch_store_i32(0, ($1_1 << 23 | 0) + 1065353216 | 0), wasm2js_scratch_load_f32()))); + } + + function $958($0_1) { + $0_1 = Math_fround($0_1); + var $4_1 = Math_fround(0), $3_1 = 0, $6_1 = Math_fround(0), $1_1 = 0, $2_1 = 0, $5_1 = Math_fround(0); + $1_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + $2_1 = $1_1 >>> 31 | 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + $3_1 = $1_1 & 2147483647 | 0; + if ($3_1 >>> 0 < 1118743632 >>> 0) { + break label$8 + } + label$9 : { + if ($3_1 >>> 0 <= 2139095040 >>> 0) { + break label$9 + } + return Math_fround($0_1); + } + label$10 : { + if (($1_1 | 0) < (0 | 0)) { + break label$10 + } + if ($3_1 >>> 0 < 1118925336 >>> 0) { + break label$10 + } + return Math_fround(Math_fround($0_1 * Math_fround(1701411834604692317316873.0e14))); + } + if (($1_1 | 0) > (-1 | 0)) { + break label$7 + } + $4_1 = Math_fround(0.0); + if ($3_1 >>> 0 <= 1120924084 >>> 0) { + break label$7 + } + break label$2; + } + if ($3_1 >>> 0 < 1051816473 >>> 0) { + break label$4 + } + if ($3_1 >>> 0 < 1065686419 >>> 0) { + break label$6 + } + } + label$11 : { + $4_1 = Math_fround(Math_fround($0_1 * Math_fround(1.4426950216293335)) + Math_fround(HEAPF32[(($2_1 << 2 | 0) + 23952 | 0) >> 2])); + if (!(Math_fround(Math_abs($4_1)) < Math_fround(2147483648.0))) { + break label$11 + } + $3_1 = ~~$4_1; + break label$5; + } + $3_1 = -2147483648; + break label$5; + } + $3_1 = ($2_1 ^ 1 | 0) - $2_1 | 0; + } + $4_1 = Math_fround($3_1 | 0); + $0_1 = Math_fround($0_1 + Math_fround($4_1 * Math_fround(-.693145751953125))); + $5_1 = Math_fround($4_1 * Math_fround(1.428606765330187e-06)); + $4_1 = Math_fround($0_1 - $5_1); + break label$3; + } + if ($3_1 >>> 0 <= 956301312 >>> 0) { + break label$1 + } + $3_1 = 0; + $5_1 = Math_fround(0.0); + $4_1 = $0_1; + } + $6_1 = Math_fround($4_1 * $4_1); + $6_1 = Math_fround($4_1 - Math_fround($6_1 * Math_fround(Math_fround($6_1 * Math_fround(-2.7667332906275988e-03)) + Math_fround(.16666625440120697)))); + $4_1 = Math_fround(Math_fround($0_1 + Math_fround(Math_fround(Math_fround($4_1 * $6_1) / Math_fround(Math_fround(2.0) - $6_1)) - $5_1)) + Math_fround(1.0)); + if (!$3_1) { + break label$2 + } + $4_1 = Math_fround($957(Math_fround($4_1), $3_1 | 0)); + } + return Math_fround($4_1); + } + return Math_fround(Math_fround($0_1 + Math_fround(1.0))); + } + + function $959($0_1) { + $0_1 = Math_fround($0_1); + var $1_1 = 0, $3_1 = Math_fround(0), $2_1 = 0, $4_1 = Math_fround(0), $38_1 = Math_fround(0), $44_1 = Math_fround(0), $46_1 = Math_fround(0), $60_1 = Math_fround(0); + label$1 : { + label$2 : { + label$3 : { + label$4 : { + $1_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + if ($1_1 >>> 0 < 8388608 >>> 0) { + break label$4 + } + if (($1_1 | 0) > (-1 | 0)) { + break label$3 + } + } + label$5 : { + if ($1_1 & 2147483647 | 0) { + break label$5 + } + return Math_fround(Math_fround(Math_fround(-1.0) / Math_fround($0_1 * $0_1))); + } + label$6 : { + if (($1_1 | 0) > (-1 | 0)) { + break label$6 + } + return Math_fround(Math_fround(Math_fround($0_1 - $0_1) / Math_fround(0.0))); + } + $1_1 = (wasm2js_scratch_store_f32(Math_fround($0_1 * Math_fround(33554432.0))), wasm2js_scratch_load_i32(0)); + $2_1 = -152; + break label$2; + } + if ($1_1 >>> 0 > 2139095039 >>> 0) { + break label$1 + } + $2_1 = -127; + $0_1 = Math_fround(0.0); + if (($1_1 | 0) == (1065353216 | 0)) { + break label$1 + } + } + $1_1 = $1_1 + 4913933 | 0; + $3_1 = Math_fround($2_1 + ($1_1 >>> 23 | 0) | 0 | 0); + $38_1 = Math_fround($3_1 * Math_fround(.6931381225585938)); + $0_1 = Math_fround((wasm2js_scratch_store_i32(0, ($1_1 & 8388607 | 0) + 1060439283 | 0), wasm2js_scratch_load_f32()) + Math_fround(-1.0)); + $44_1 = $0_1; + $46_1 = Math_fround($3_1 * Math_fround(9.05800061445916e-06)); + $3_1 = Math_fround($0_1 / Math_fround($0_1 + Math_fround(2.0))); + $4_1 = Math_fround($0_1 * Math_fround($0_1 * Math_fround(.5))); + $0_1 = Math_fround($3_1 * $3_1); + $60_1 = $0_1; + $0_1 = Math_fround($0_1 * $0_1); + $0_1 = Math_fround($38_1 + Math_fround($44_1 + Math_fround(Math_fround($46_1 + Math_fround($3_1 * Math_fround($4_1 + Math_fround(Math_fround($60_1 * Math_fround(Math_fround($0_1 * Math_fround(.2849878668785095)) + Math_fround(.6666666269302368))) + Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(.24279078841209412)) + Math_fround(.40000972151756287))))))) - $4_1))); + } + return Math_fround($0_1); + } + + function $960($0_1) { + $0_1 = Math_fround($0_1); + return Math_fround(Math_fround(Math_sqrt($0_1))); + } + + function $961($0_1) { + $0_1 = Math_fround($0_1); + return Math_fround(Math_fround(Math_abs($0_1))); + } + + function $962($0_1, $1_1) { + $0_1 = Math_fround($0_1); + $1_1 = Math_fround($1_1); + var $9_1 = Math_fround(0), $4_1 = 0, $2_1 = 0, $5_1 = 0, $3_1 = 0, $6_1 = 0, $11_1 = Math_fround(0), $12_1 = Math_fround(0), $10_1 = Math_fround(0), $13_1 = Math_fround(0), $14_1 = Math_fround(0), $7_1 = 0, $8_1 = 0, $15_1 = Math_fround(0), $16_1 = Math_fround(0), $17_1 = Math_fround(0), $233_1 = Math_fround(0), $267_1 = Math_fround(0), $485_1 = Math_fround(0); + $9_1 = Math_fround(1.0); + label$1 : { + $2_1 = (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)); + if (($2_1 | 0) == (1065353216 | 0)) { + break label$1 + } + $3_1 = (wasm2js_scratch_store_f32($1_1), wasm2js_scratch_load_i32(0)); + $4_1 = $3_1 & 2147483647 | 0; + if (!$4_1) { + break label$1 + } + label$2 : { + label$3 : { + $5_1 = $2_1 & 2147483647 | 0; + if ($5_1 >>> 0 > 2139095040 >>> 0) { + break label$3 + } + if ($4_1 >>> 0 < 2139095041 >>> 0) { + break label$2 + } + } + return Math_fround(Math_fround($0_1 + $1_1)); + } + label$4 : { + label$5 : { + if (($2_1 | 0) <= (-1 | 0)) { + break label$5 + } + $6_1 = 0; + break label$4; + } + $6_1 = 2; + if ($4_1 >>> 0 > 1266679807 >>> 0) { + break label$4 + } + label$6 : { + if ($4_1 >>> 0 >= 1065353216 >>> 0) { + break label$6 + } + $6_1 = 0; + break label$4; + } + $6_1 = 0; + $7_1 = 150 - ($4_1 >>> 23 | 0) | 0; + $8_1 = $4_1 >>> $7_1 | 0; + if (($8_1 << $7_1 | 0 | 0) != ($4_1 | 0)) { + break label$4 + } + $6_1 = 2 - ($8_1 & 1 | 0) | 0; + } + label$7 : { + label$8 : { + if (($4_1 | 0) == (1065353216 | 0)) { + break label$8 + } + if (($4_1 | 0) != (2139095040 | 0)) { + break label$7 + } + if (($5_1 | 0) == (1065353216 | 0)) { + break label$1 + } + label$9 : { + if ($5_1 >>> 0 < 1065353217 >>> 0) { + break label$9 + } + return Math_fround(($3_1 | 0) > (-1 | 0) ? $1_1 : Math_fround(0.0)); + } + return Math_fround(($3_1 | 0) > (-1 | 0) ? Math_fround(0.0) : Math_fround(-$1_1)); + } + return Math_fround(($3_1 | 0) > (-1 | 0) ? $0_1 : Math_fround(Math_fround(1.0) / $0_1)); + } + label$10 : { + if (($3_1 | 0) != (1073741824 | 0)) { + break label$10 + } + return Math_fround(Math_fround($0_1 * $0_1)); + } + label$11 : { + if (($2_1 | 0) < (0 | 0)) { + break label$11 + } + if (($3_1 | 0) != (1056964608 | 0)) { + break label$11 + } + return Math_fround(Math_fround($960(Math_fround($0_1)))); + } + $9_1 = Math_fround($961(Math_fround($0_1))); + label$12 : { + label$13 : { + if (($2_1 & 1073741823 | 0 | 0) == (1065353216 | 0)) { + break label$13 + } + if ($5_1) { + break label$12 + } + } + $9_1 = ($3_1 | 0) < (0 | 0) ? Math_fround(Math_fround(1.0) / $9_1) : $9_1; + if (($2_1 | 0) > (-1 | 0)) { + break label$1 + } + label$14 : { + if ($6_1 | ($5_1 + -1065353216 | 0) | 0) { + break label$14 + } + $0_1 = Math_fround($9_1 - $9_1); + return Math_fround(Math_fround($0_1 / $0_1)); + } + return Math_fround(($6_1 | 0) == (1 | 0) ? Math_fround(-$9_1) : $9_1); + } + $10_1 = Math_fround(1.0); + label$15 : { + if (($2_1 | 0) > (-1 | 0)) { + break label$15 + } + if ($6_1 >>> 0 > 1 >>> 0) { + break label$15 + } + label$16 : { + switch ($6_1 | 0) { + default: + $0_1 = Math_fround($0_1 - $0_1); + return Math_fround(Math_fround($0_1 / $0_1)); + case 1: + break label$16; + }; + } + $10_1 = Math_fround(-1.0); + } + label$18 : { + label$19 : { + if ($4_1 >>> 0 < 1291845633 >>> 0) { + break label$19 + } + label$20 : { + if ($5_1 >>> 0 > 1065353207 >>> 0) { + break label$20 + } + return Math_fround(($3_1 | 0) < (0 | 0) ? Math_fround(Math_fround($10_1 * Math_fround(1000000015047466219876688.0e6)) * Math_fround(1000000015047466219876688.0e6)) : Math_fround(Math_fround($10_1 * Math_fround(1.0000000031710769e-30)) * Math_fround(1.0000000031710769e-30))); + } + label$21 : { + if ($5_1 >>> 0 < 1065353224 >>> 0) { + break label$21 + } + return Math_fround(($3_1 | 0) > (0 | 0) ? Math_fround(Math_fround($10_1 * Math_fround(1000000015047466219876688.0e6)) * Math_fround(1000000015047466219876688.0e6)) : Math_fround(Math_fround($10_1 * Math_fround(1.0000000031710769e-30)) * Math_fround(1.0000000031710769e-30))); + } + $0_1 = Math_fround($9_1 + Math_fround(-1.0)); + $9_1 = Math_fround($0_1 * Math_fround(1.44268798828125)); + $11_1 = Math_fround(Math_fround($0_1 * Math_fround(7.052607543300837e-06)) + Math_fround(Math_fround(Math_fround($0_1 * $0_1) * Math_fround(Math_fround(.5) - Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(-.25)) + Math_fround(.3333333432674408))))) * Math_fround(-1.4426950216293335))); + $0_1 = (wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32(Math_fround($9_1 + $11_1)), wasm2js_scratch_load_i32(0)) & -4096 | 0), wasm2js_scratch_load_f32()); + $12_1 = Math_fround($0_1 - $9_1); + break label$18; + } + $4_1 = $5_1 >>> 0 < 8388608 >>> 0; + $6_1 = $4_1 ? (wasm2js_scratch_store_f32(Math_fround($9_1 * Math_fround(16777216.0))), wasm2js_scratch_load_i32(0)) : $5_1; + $5_1 = $6_1 & 8388607 | 0; + $2_1 = $5_1 | 1065353216 | 0; + $6_1 = ($4_1 ? -151 : -127) + ($6_1 >> 23 | 0) | 0; + $4_1 = 0; + label$22 : { + if ($5_1 >>> 0 < 1885298 >>> 0) { + break label$22 + } + label$23 : { + if ($5_1 >>> 0 >= 6140887 >>> 0) { + break label$23 + } + $4_1 = 1; + break label$22; + } + $2_1 = $2_1 + -8388608 | 0; + $6_1 = $6_1 + 1 | 0; + } + $5_1 = $4_1 << 2 | 0; + $13_1 = Math_fround(HEAPF32[($5_1 + 23976 | 0) >> 2]); + $11_1 = (wasm2js_scratch_store_i32(0, $2_1), wasm2js_scratch_load_f32()); + $12_1 = Math_fround(HEAPF32[($5_1 + 23960 | 0) >> 2]); + $14_1 = Math_fround($11_1 - $12_1); + $15_1 = Math_fround(Math_fround(1.0) / Math_fround($12_1 + $11_1)); + $9_1 = Math_fround($14_1 * $15_1); + $0_1 = (wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32($9_1), wasm2js_scratch_load_i32(0)) & -4096 | 0), wasm2js_scratch_load_f32()); + $233_1 = $0_1; + $16_1 = Math_fround($0_1 * $0_1); + $17_1 = (wasm2js_scratch_store_i32(0, ((($2_1 >> 1 | 0) & -536875008 | 0 | 536870912 | 0) + ($4_1 << 21 | 0) | 0) + 4194304 | 0), wasm2js_scratch_load_f32()); + $11_1 = Math_fround($15_1 * Math_fround(Math_fround($14_1 - Math_fround($0_1 * $17_1)) - Math_fround($0_1 * Math_fround($11_1 - Math_fround($17_1 - $12_1))))); + $267_1 = Math_fround(Math_fround($9_1 + $0_1) * $11_1); + $0_1 = Math_fround($9_1 * $9_1); + $12_1 = Math_fround($267_1 + Math_fround(Math_fround($0_1 * $0_1) * Math_fround(Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(Math_fround($0_1 * Math_fround(.20697501301765442)) + Math_fround(.23066075146198273))) + Math_fround(.2727281153202057))) + Math_fround(.3333333432674408))) + Math_fround(.4285714328289032))) + Math_fround(.6000000238418579)))); + $0_1 = (wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32(Math_fround(Math_fround($16_1 + Math_fround(3.0)) + $12_1)), wasm2js_scratch_load_i32(0)) & -4096 | 0), wasm2js_scratch_load_f32()); + $14_1 = Math_fround($233_1 * $0_1); + $9_1 = Math_fround(Math_fround($11_1 * $0_1) + Math_fround($9_1 * Math_fround($12_1 - Math_fround(Math_fround($0_1 + Math_fround(-3.0)) - $16_1)))); + $0_1 = (wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32(Math_fround($14_1 + $9_1)), wasm2js_scratch_load_i32(0)) & -4096 | 0), wasm2js_scratch_load_f32()); + $12_1 = Math_fround($0_1 * Math_fround(.9619140625)); + $11_1 = Math_fround(Math_fround(HEAPF32[($5_1 + 23968 | 0) >> 2]) + Math_fround(Math_fround(Math_fround($9_1 - Math_fround($0_1 - $14_1)) * Math_fround(.9617967009544373)) + Math_fround($0_1 * Math_fround(-1.1736857413779944e-04)))); + $9_1 = Math_fround($6_1 | 0); + $0_1 = (wasm2js_scratch_store_i32(0, (wasm2js_scratch_store_f32(Math_fround(Math_fround($13_1 + Math_fround($12_1 + $11_1)) + $9_1)), wasm2js_scratch_load_i32(0)) & -4096 | 0), wasm2js_scratch_load_f32()); + $12_1 = Math_fround(Math_fround(Math_fround($0_1 - $9_1) - $13_1) - $12_1); + } + label$24 : { + $9_1 = (wasm2js_scratch_store_i32(0, $3_1 & -4096 | 0), wasm2js_scratch_load_f32()); + $13_1 = Math_fround($0_1 * $9_1); + $0_1 = Math_fround(Math_fround(Math_fround($11_1 - $12_1) * $1_1) + Math_fround(Math_fround($1_1 - $9_1) * $0_1)); + $1_1 = Math_fround($13_1 + $0_1); + $2_1 = (wasm2js_scratch_store_f32($1_1), wasm2js_scratch_load_i32(0)); + if (($2_1 | 0) < (1124073473 | 0)) { + break label$24 + } + return Math_fround(Math_fround(Math_fround($10_1 * Math_fround(1000000015047466219876688.0e6)) * Math_fround(1000000015047466219876688.0e6))); + } + $4_1 = 1124073472; + label$25 : { + label$26 : { + label$27 : { + if (($2_1 | 0) != (1124073472 | 0)) { + break label$27 + } + if (Math_fround($0_1 + Math_fround(4.299566569443414e-08)) > Math_fround($1_1 - $13_1) ^ 1 | 0) { + break label$26 + } + return Math_fround(Math_fround(Math_fround($10_1 * Math_fround(1000000015047466219876688.0e6)) * Math_fround(1000000015047466219876688.0e6))); + } + label$28 : { + $4_1 = $2_1 & 2147483647 | 0; + if ($4_1 >>> 0 < 1125515265 >>> 0) { + break label$28 + } + return Math_fround(Math_fround(Math_fround($10_1 * Math_fround(1.0000000031710769e-30)) * Math_fround(1.0000000031710769e-30))); + } + label$29 : { + if (($2_1 | 0) != (-1021968384 | 0)) { + break label$29 + } + if ($0_1 <= Math_fround($1_1 - $13_1) ^ 1 | 0) { + break label$29 + } + return Math_fround(Math_fround(Math_fround($10_1 * Math_fround(1.0000000031710769e-30)) * Math_fround(1.0000000031710769e-30))); + } + $3_1 = 0; + if ($4_1 >>> 0 < 1056964609 >>> 0) { + break label$25 + } + } + $4_1 = (8388608 >>> (($4_1 >>> 23 | 0) + -126 | 0) | 0) + $2_1 | 0; + $5_1 = ($4_1 >>> 23 | 0) & 255 | 0; + $3_1 = ($4_1 & 8388607 | 0 | 8388608 | 0) >>> (150 - $5_1 | 0) | 0; + $3_1 = ($2_1 | 0) < (0 | 0) ? 0 - $3_1 | 0 : $3_1; + $13_1 = Math_fround($13_1 - (wasm2js_scratch_store_i32(0, (-8388608 >> ($5_1 + -127 | 0) | 0) & $4_1 | 0), wasm2js_scratch_load_f32())); + $2_1 = (wasm2js_scratch_store_f32(Math_fround($0_1 + $13_1)), wasm2js_scratch_load_i32(0)); + } + label$30 : { + label$31 : { + $1_1 = (wasm2js_scratch_store_i32(0, $2_1 & -32768 | 0), wasm2js_scratch_load_f32()); + $9_1 = Math_fround($1_1 * Math_fround(.693145751953125)); + $11_1 = Math_fround(Math_fround($1_1 * Math_fround(1.4286065379565116e-06)) + Math_fround(Math_fround($0_1 - Math_fround($1_1 - $13_1)) * Math_fround(.6931471824645996))); + $0_1 = Math_fround($9_1 + $11_1); + $1_1 = Math_fround($0_1 * $0_1); + $1_1 = Math_fround($0_1 - Math_fround($1_1 * Math_fround(Math_fround($1_1 * Math_fround(Math_fround($1_1 * Math_fround(Math_fround($1_1 * Math_fround(Math_fround($1_1 * Math_fround(4.138136944220605e-08)) + Math_fround(-1.6533901998627698e-06))) + Math_fround(6.61375597701408e-05))) + Math_fround(-2.7777778450399637e-03))) + Math_fround(.1666666716337204)))); + $485_1 = Math_fround(Math_fround($0_1 * $1_1) / Math_fround($1_1 + Math_fround(-2.0))); + $1_1 = Math_fround($11_1 - Math_fround($0_1 - $9_1)); + $0_1 = Math_fround(Math_fround($0_1 - Math_fround($485_1 - Math_fround($1_1 + Math_fround($0_1 * $1_1)))) + Math_fround(1.0)); + $2_1 = ($3_1 << 23 | 0) + (wasm2js_scratch_store_f32($0_1), wasm2js_scratch_load_i32(0)) | 0; + if (($2_1 | 0) > (8388607 | 0)) { + break label$31 + } + $0_1 = Math_fround($957(Math_fround($0_1), $3_1 | 0)); + break label$30; + } + $0_1 = (wasm2js_scratch_store_i32(0, $2_1), wasm2js_scratch_load_f32()); + } + $9_1 = Math_fround($10_1 * $0_1); + } + return Math_fround($9_1); + } + + function $963($0_1) { + $0_1 = $0_1 | 0; + var $4_1 = 0, $5_1 = 0, $6_1 = 0, $8_1 = 0, $3_1 = 0, $2_1 = 0, $11_1 = 0, $7_1 = 0, i64toi32_i32$0 = 0, $9_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, $1_1 = 0, $10_1 = 0, $13_1 = 0, $12_1 = 0, $88_1 = 0, $101_1 = 0, $112_1 = 0, $120_1 = 0, $128_1 = 0, $222_1 = 0, $233_1 = 0, $241_1 = 0, $249_1 = 0, $284_1 = 0, $362_1 = 0, $369_1 = 0, $462_1 = 0, $473_1 = 0, $481_1 = 0, $489_1 = 0, $1200 = 0, $1207 = 0, $1329 = 0, $1331 = 0, $1401 = 0, $1408 = 0, $1652 = 0, $1659 = 0; + label$1 : { + $1_1 = global$0 - 16 | 0; + $12_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $12_1; + } + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + label$9 : { + label$10 : { + label$11 : { + label$12 : { + label$13 : { + label$14 : { + if ($0_1 >>> 0 > 244 >>> 0) { + break label$14 + } + label$15 : { + $2_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $3_1 = $0_1 >>> 0 < 11 >>> 0 ? 16 : ($0_1 + 11 | 0) & -8 | 0; + $4_1 = $3_1 >>> 3 | 0; + $0_1 = $2_1 >>> $4_1 | 0; + if (!($0_1 & 3 | 0)) { + break label$15 + } + $3_1 = (($0_1 ^ -1 | 0) & 1 | 0) + $4_1 | 0; + $5_1 = $3_1 << 3 | 0; + $4_1 = HEAP32[($5_1 + 28104 | 0) >> 2] | 0; + $0_1 = $4_1 + 8 | 0; + label$16 : { + label$17 : { + $6_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $5_1 = $5_1 + 28096 | 0; + if (($6_1 | 0) != ($5_1 | 0)) { + break label$17 + } + HEAP32[(0 + 28056 | 0) >> 2] = $2_1 & (__wasm_rotl_i32(-2 | 0, $3_1 | 0) | 0) | 0; + break label$16; + } + HEAP32[(0 + 28072 | 0) >> 2] | 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $6_1; + } + $6_1 = $3_1 << 3 | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $6_1 | 3 | 0; + $4_1 = $4_1 + $6_1 | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = HEAP32[($4_1 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$3; + } + $7_1 = HEAP32[(0 + 28064 | 0) >> 2] | 0; + if ($3_1 >>> 0 <= $7_1 >>> 0) { + break label$13 + } + label$18 : { + if (!$0_1) { + break label$18 + } + label$19 : { + label$20 : { + $88_1 = $0_1 << $4_1 | 0; + $0_1 = 2 << $4_1 | 0; + $0_1 = $88_1 & ($0_1 | (0 - $0_1 | 0) | 0) | 0; + $0_1 = ($0_1 & (0 - $0_1 | 0) | 0) + -1 | 0; + $101_1 = $0_1; + $0_1 = ($0_1 >>> 12 | 0) & 16 | 0; + $4_1 = $101_1 >>> $0_1 | 0; + $6_1 = ($4_1 >>> 5 | 0) & 8 | 0; + $112_1 = $6_1 | $0_1 | 0; + $0_1 = $4_1 >>> $6_1 | 0; + $4_1 = ($0_1 >>> 2 | 0) & 4 | 0; + $120_1 = $112_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 2 | 0; + $128_1 = $120_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 1 | 0; + $6_1 = ($128_1 | $4_1 | 0) + ($0_1 >>> $4_1 | 0) | 0; + $5_1 = $6_1 << 3 | 0; + $4_1 = HEAP32[($5_1 + 28104 | 0) >> 2] | 0; + $0_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + $5_1 = $5_1 + 28096 | 0; + if (($0_1 | 0) != ($5_1 | 0)) { + break label$20 + } + $2_1 = $2_1 & (__wasm_rotl_i32(-2 | 0, $6_1 | 0) | 0) | 0; + HEAP32[(0 + 28056 | 0) >> 2] = $2_1; + break label$19; + } + HEAP32[(0 + 28072 | 0) >> 2] | 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $0_1; + } + $0_1 = $4_1 + 8 | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $5_1 = $4_1 + $3_1 | 0; + $8_1 = $6_1 << 3 | 0; + $6_1 = $8_1 - $3_1 | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = $6_1 | 1 | 0; + HEAP32[($4_1 + $8_1 | 0) >> 2] = $6_1; + label$21 : { + if (!$7_1) { + break label$21 + } + $8_1 = $7_1 >>> 3 | 0; + $3_1 = ($8_1 << 3 | 0) + 28096 | 0; + $4_1 = HEAP32[(0 + 28076 | 0) >> 2] | 0; + label$22 : { + label$23 : { + $8_1 = 1 << $8_1 | 0; + if ($2_1 & $8_1 | 0) { + break label$23 + } + HEAP32[(0 + 28056 | 0) >> 2] = $2_1 | $8_1 | 0; + $8_1 = $3_1; + break label$22; + } + $8_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $8_1; + } + HEAP32[(0 + 28076 | 0) >> 2] = $5_1; + HEAP32[(0 + 28064 | 0) >> 2] = $6_1; + break label$3; + } + $9_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + if (!$9_1) { + break label$13 + } + $0_1 = ($9_1 & (0 - $9_1 | 0) | 0) + -1 | 0; + $222_1 = $0_1; + $0_1 = ($0_1 >>> 12 | 0) & 16 | 0; + $4_1 = $222_1 >>> $0_1 | 0; + $6_1 = ($4_1 >>> 5 | 0) & 8 | 0; + $233_1 = $6_1 | $0_1 | 0; + $0_1 = $4_1 >>> $6_1 | 0; + $4_1 = ($0_1 >>> 2 | 0) & 4 | 0; + $241_1 = $233_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 2 | 0; + $249_1 = $241_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 1 | 0; + $5_1 = HEAP32[(((($249_1 | $4_1 | 0) + ($0_1 >>> $4_1 | 0) | 0) << 2 | 0) + 28360 | 0) >> 2] | 0; + $4_1 = ((HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -8 | 0) - $3_1 | 0; + $6_1 = $5_1; + label$24 : { + label$25 : while (1) { + label$26 : { + $0_1 = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + if ($0_1) { + break label$26 + } + $0_1 = HEAP32[($6_1 + 20 | 0) >> 2] | 0; + if (!$0_1) { + break label$24 + } + } + $6_1 = ((HEAP32[($0_1 + 4 | 0) >> 2] | 0) & -8 | 0) - $3_1 | 0; + $284_1 = $6_1; + $6_1 = $6_1 >>> 0 < $4_1 >>> 0; + $4_1 = $6_1 ? $284_1 : $4_1; + $5_1 = $6_1 ? $0_1 : $5_1; + $6_1 = $0_1; + continue label$25; + }; + } + $10_1 = HEAP32[($5_1 + 24 | 0) >> 2] | 0; + label$27 : { + $8_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + if (($8_1 | 0) == ($5_1 | 0)) { + break label$27 + } + label$28 : { + $0_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + if ((HEAP32[(0 + 28072 | 0) >> 2] | 0) >>> 0 > $0_1 >>> 0) { + break label$28 + } + HEAP32[($0_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 12 | 0) >> 2] = $8_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $0_1; + break label$4; + } + label$29 : { + $6_1 = $5_1 + 20 | 0; + $0_1 = HEAP32[$6_1 >> 2] | 0; + if ($0_1) { + break label$29 + } + $0_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if (!$0_1) { + break label$12 + } + $6_1 = $5_1 + 16 | 0; + } + label$30 : while (1) { + $11_1 = $6_1; + $8_1 = $0_1; + $6_1 = $0_1 + 20 | 0; + $0_1 = HEAP32[$6_1 >> 2] | 0; + if ($0_1) { + continue label$30 + } + $6_1 = $8_1 + 16 | 0; + $0_1 = HEAP32[($8_1 + 16 | 0) >> 2] | 0; + if ($0_1) { + continue label$30 + } + break label$30; + }; + HEAP32[$11_1 >> 2] = 0; + break label$4; + } + $3_1 = -1; + if ($0_1 >>> 0 > -65 >>> 0) { + break label$13 + } + $0_1 = $0_1 + 11 | 0; + $3_1 = $0_1 & -8 | 0; + $7_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + if (!$7_1) { + break label$13 + } + $11_1 = 0; + label$31 : { + $0_1 = $0_1 >>> 8 | 0; + if (!$0_1) { + break label$31 + } + $11_1 = 31; + if ($3_1 >>> 0 > 16777215 >>> 0) { + break label$31 + } + $4_1 = (($0_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $0_1 = $0_1 << $4_1 | 0; + $362_1 = $0_1; + $0_1 = (($0_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $6_1 = $362_1 << $0_1 | 0; + $369_1 = $6_1; + $6_1 = (($6_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $0_1 = (($369_1 << $6_1 | 0) >>> 15 | 0) - ($0_1 | $4_1 | 0 | $6_1 | 0) | 0; + $11_1 = ($0_1 << 1 | 0 | (($3_1 >>> ($0_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + $6_1 = 0 - $3_1 | 0; + label$32 : { + label$33 : { + label$34 : { + label$35 : { + $4_1 = HEAP32[(($11_1 << 2 | 0) + 28360 | 0) >> 2] | 0; + if ($4_1) { + break label$35 + } + $0_1 = 0; + $8_1 = 0; + break label$34; + } + $5_1 = $3_1 << (($11_1 | 0) == (31 | 0) ? 0 : 25 - ($11_1 >>> 1 | 0) | 0) | 0; + $0_1 = 0; + $8_1 = 0; + label$36 : while (1) { + label$37 : { + $2_1 = ((HEAP32[($4_1 + 4 | 0) >> 2] | 0) & -8 | 0) - $3_1 | 0; + if ($2_1 >>> 0 >= $6_1 >>> 0) { + break label$37 + } + $6_1 = $2_1; + $8_1 = $4_1; + if ($6_1) { + break label$37 + } + $6_1 = 0; + $8_1 = $4_1; + $0_1 = $4_1; + break label$33; + } + $2_1 = HEAP32[($4_1 + 20 | 0) >> 2] | 0; + $4_1 = HEAP32[(($4_1 + (($5_1 >>> 29 | 0) & 4 | 0) | 0) + 16 | 0) >> 2] | 0; + $0_1 = $2_1 ? (($2_1 | 0) == ($4_1 | 0) ? $0_1 : $2_1) : $0_1; + $5_1 = $5_1 << (($4_1 | 0) != (0 | 0)) | 0; + if ($4_1) { + continue label$36 + } + break label$36; + }; + } + label$38 : { + if ($0_1 | $8_1 | 0) { + break label$38 + } + $0_1 = 2 << $11_1 | 0; + $0_1 = ($0_1 | (0 - $0_1 | 0) | 0) & $7_1 | 0; + if (!$0_1) { + break label$13 + } + $0_1 = ($0_1 & (0 - $0_1 | 0) | 0) + -1 | 0; + $462_1 = $0_1; + $0_1 = ($0_1 >>> 12 | 0) & 16 | 0; + $4_1 = $462_1 >>> $0_1 | 0; + $5_1 = ($4_1 >>> 5 | 0) & 8 | 0; + $473_1 = $5_1 | $0_1 | 0; + $0_1 = $4_1 >>> $5_1 | 0; + $4_1 = ($0_1 >>> 2 | 0) & 4 | 0; + $481_1 = $473_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 2 | 0; + $489_1 = $481_1 | $4_1 | 0; + $0_1 = $0_1 >>> $4_1 | 0; + $4_1 = ($0_1 >>> 1 | 0) & 1 | 0; + $0_1 = HEAP32[(((($489_1 | $4_1 | 0) + ($0_1 >>> $4_1 | 0) | 0) << 2 | 0) + 28360 | 0) >> 2] | 0; + } + if (!$0_1) { + break label$32 + } + } + label$39 : while (1) { + $2_1 = ((HEAP32[($0_1 + 4 | 0) >> 2] | 0) & -8 | 0) - $3_1 | 0; + $5_1 = $2_1 >>> 0 < $6_1 >>> 0; + label$40 : { + $4_1 = HEAP32[($0_1 + 16 | 0) >> 2] | 0; + if ($4_1) { + break label$40 + } + $4_1 = HEAP32[($0_1 + 20 | 0) >> 2] | 0; + } + $6_1 = $5_1 ? $2_1 : $6_1; + $8_1 = $5_1 ? $0_1 : $8_1; + $0_1 = $4_1; + if ($0_1) { + continue label$39 + } + break label$39; + }; + } + if (!$8_1) { + break label$13 + } + if ($6_1 >>> 0 >= ((HEAP32[(0 + 28064 | 0) >> 2] | 0) - $3_1 | 0) >>> 0) { + break label$13 + } + $11_1 = HEAP32[($8_1 + 24 | 0) >> 2] | 0; + label$41 : { + $5_1 = HEAP32[($8_1 + 12 | 0) >> 2] | 0; + if (($5_1 | 0) == ($8_1 | 0)) { + break label$41 + } + label$42 : { + $0_1 = HEAP32[($8_1 + 8 | 0) >> 2] | 0; + if ((HEAP32[(0 + 28072 | 0) >> 2] | 0) >>> 0 > $0_1 >>> 0) { + break label$42 + } + HEAP32[($0_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $0_1; + break label$5; + } + label$43 : { + $4_1 = $8_1 + 20 | 0; + $0_1 = HEAP32[$4_1 >> 2] | 0; + if ($0_1) { + break label$43 + } + $0_1 = HEAP32[($8_1 + 16 | 0) >> 2] | 0; + if (!$0_1) { + break label$11 + } + $4_1 = $8_1 + 16 | 0; + } + label$44 : while (1) { + $2_1 = $4_1; + $5_1 = $0_1; + $4_1 = $0_1 + 20 | 0; + $0_1 = HEAP32[$4_1 >> 2] | 0; + if ($0_1) { + continue label$44 + } + $4_1 = $5_1 + 16 | 0; + $0_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if ($0_1) { + continue label$44 + } + break label$44; + }; + HEAP32[$2_1 >> 2] = 0; + break label$5; + } + label$45 : { + $0_1 = HEAP32[(0 + 28064 | 0) >> 2] | 0; + if ($0_1 >>> 0 < $3_1 >>> 0) { + break label$45 + } + $4_1 = HEAP32[(0 + 28076 | 0) >> 2] | 0; + label$46 : { + label$47 : { + $6_1 = $0_1 - $3_1 | 0; + if ($6_1 >>> 0 < 16 >>> 0) { + break label$47 + } + HEAP32[(0 + 28064 | 0) >> 2] = $6_1; + $5_1 = $4_1 + $3_1 | 0; + HEAP32[(0 + 28076 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 4 | 0) >> 2] = $6_1 | 1 | 0; + HEAP32[($4_1 + $0_1 | 0) >> 2] = $6_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + break label$46; + } + HEAP32[(0 + 28076 | 0) >> 2] = 0; + HEAP32[(0 + 28064 | 0) >> 2] = 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $0_1 | 3 | 0; + $0_1 = $4_1 + $0_1 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = HEAP32[($0_1 + 4 | 0) >> 2] | 0 | 1 | 0; + } + $0_1 = $4_1 + 8 | 0; + break label$3; + } + label$48 : { + $5_1 = HEAP32[(0 + 28068 | 0) >> 2] | 0; + if ($5_1 >>> 0 <= $3_1 >>> 0) { + break label$48 + } + $4_1 = $5_1 - $3_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $4_1; + $0_1 = HEAP32[(0 + 28080 | 0) >> 2] | 0; + $6_1 = $0_1 + $3_1 | 0; + HEAP32[(0 + 28080 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $4_1 | 1 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $0_1 = $0_1 + 8 | 0; + break label$3; + } + label$49 : { + label$50 : { + if (!(HEAP32[(0 + 28528 | 0) >> 2] | 0)) { + break label$50 + } + $4_1 = HEAP32[(0 + 28536 | 0) >> 2] | 0; + break label$49; + } + i64toi32_i32$1 = 0; + i64toi32_i32$0 = -1; + HEAP32[(i64toi32_i32$1 + 28540 | 0) >> 2] = -1; + HEAP32[(i64toi32_i32$1 + 28544 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 4096; + HEAP32[(i64toi32_i32$1 + 28532 | 0) >> 2] = 4096; + HEAP32[(i64toi32_i32$1 + 28536 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(0 + 28528 | 0) >> 2] = (($1_1 + 12 | 0) & -16 | 0) ^ 1431655768 | 0; + HEAP32[(0 + 28548 | 0) >> 2] = 0; + HEAP32[(0 + 28500 | 0) >> 2] = 0; + $4_1 = 4096; + } + $0_1 = 0; + $7_1 = $3_1 + 47 | 0; + $2_1 = $4_1 + $7_1 | 0; + $11_1 = 0 - $4_1 | 0; + $8_1 = $2_1 & $11_1 | 0; + if ($8_1 >>> 0 <= $3_1 >>> 0) { + break label$3 + } + $0_1 = 0; + label$51 : { + $4_1 = HEAP32[(0 + 28496 | 0) >> 2] | 0; + if (!$4_1) { + break label$51 + } + $6_1 = HEAP32[(0 + 28488 | 0) >> 2] | 0; + $9_1 = $6_1 + $8_1 | 0; + if ($9_1 >>> 0 <= $6_1 >>> 0) { + break label$3 + } + if ($9_1 >>> 0 > $4_1 >>> 0) { + break label$3 + } + } + if ((HEAPU8[(0 + 28500 | 0) >> 0] | 0) & 4 | 0) { + break label$8 + } + label$52 : { + label$53 : { + label$54 : { + $4_1 = HEAP32[(0 + 28080 | 0) >> 2] | 0; + if (!$4_1) { + break label$54 + } + $0_1 = 28504; + label$55 : while (1) { + label$56 : { + $6_1 = HEAP32[$0_1 >> 2] | 0; + if ($6_1 >>> 0 > $4_1 >>> 0) { + break label$56 + } + if (($6_1 + (HEAP32[($0_1 + 4 | 0) >> 2] | 0) | 0) >>> 0 > $4_1 >>> 0) { + break label$53 + } + } + $0_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + if ($0_1) { + continue label$55 + } + break label$55; + }; + } + $5_1 = $968(0 | 0) | 0; + if (($5_1 | 0) == (-1 | 0)) { + break label$9 + } + $2_1 = $8_1; + label$57 : { + $0_1 = HEAP32[(0 + 28532 | 0) >> 2] | 0; + $4_1 = $0_1 + -1 | 0; + if (!($4_1 & $5_1 | 0)) { + break label$57 + } + $2_1 = ($8_1 - $5_1 | 0) + (($4_1 + $5_1 | 0) & (0 - $0_1 | 0) | 0) | 0; + } + if ($2_1 >>> 0 <= $3_1 >>> 0) { + break label$9 + } + if ($2_1 >>> 0 > 2147483646 >>> 0) { + break label$9 + } + label$58 : { + $0_1 = HEAP32[(0 + 28496 | 0) >> 2] | 0; + if (!$0_1) { + break label$58 + } + $4_1 = HEAP32[(0 + 28488 | 0) >> 2] | 0; + $6_1 = $4_1 + $2_1 | 0; + if ($6_1 >>> 0 <= $4_1 >>> 0) { + break label$9 + } + if ($6_1 >>> 0 > $0_1 >>> 0) { + break label$9 + } + } + $0_1 = $968($2_1 | 0) | 0; + if (($0_1 | 0) != ($5_1 | 0)) { + break label$52 + } + break label$7; + } + $2_1 = ($2_1 - $5_1 | 0) & $11_1 | 0; + if ($2_1 >>> 0 > 2147483646 >>> 0) { + break label$9 + } + $5_1 = $968($2_1 | 0) | 0; + if (($5_1 | 0) == ((HEAP32[$0_1 >> 2] | 0) + (HEAP32[($0_1 + 4 | 0) >> 2] | 0) | 0 | 0)) { + break label$10 + } + $0_1 = $5_1; + } + label$59 : { + if (($3_1 + 48 | 0) >>> 0 <= $2_1 >>> 0) { + break label$59 + } + if (($0_1 | 0) == (-1 | 0)) { + break label$59 + } + label$60 : { + $4_1 = HEAP32[(0 + 28536 | 0) >> 2] | 0; + $4_1 = (($7_1 - $2_1 | 0) + $4_1 | 0) & (0 - $4_1 | 0) | 0; + if ($4_1 >>> 0 <= 2147483646 >>> 0) { + break label$60 + } + $5_1 = $0_1; + break label$7; + } + label$61 : { + if (($968($4_1 | 0) | 0 | 0) == (-1 | 0)) { + break label$61 + } + $2_1 = $4_1 + $2_1 | 0; + $5_1 = $0_1; + break label$7; + } + $968(0 - $2_1 | 0 | 0) | 0; + break label$9; + } + $5_1 = $0_1; + if (($0_1 | 0) != (-1 | 0)) { + break label$7 + } + break label$9; + } + $8_1 = 0; + break label$4; + } + $5_1 = 0; + break label$5; + } + if (($5_1 | 0) != (-1 | 0)) { + break label$7 + } + } + HEAP32[(0 + 28500 | 0) >> 2] = HEAP32[(0 + 28500 | 0) >> 2] | 0 | 4 | 0; + } + if ($8_1 >>> 0 > 2147483646 >>> 0) { + break label$6 + } + $5_1 = $968($8_1 | 0) | 0; + $0_1 = $968(0 | 0) | 0; + if ($5_1 >>> 0 >= $0_1 >>> 0) { + break label$6 + } + if (($5_1 | 0) == (-1 | 0)) { + break label$6 + } + if (($0_1 | 0) == (-1 | 0)) { + break label$6 + } + $2_1 = $0_1 - $5_1 | 0; + if ($2_1 >>> 0 <= ($3_1 + 40 | 0) >>> 0) { + break label$6 + } + } + $0_1 = (HEAP32[(0 + 28488 | 0) >> 2] | 0) + $2_1 | 0; + HEAP32[(0 + 28488 | 0) >> 2] = $0_1; + label$62 : { + if ($0_1 >>> 0 <= (HEAP32[(0 + 28492 | 0) >> 2] | 0) >>> 0) { + break label$62 + } + HEAP32[(0 + 28492 | 0) >> 2] = $0_1; + } + label$63 : { + label$64 : { + label$65 : { + label$66 : { + $4_1 = HEAP32[(0 + 28080 | 0) >> 2] | 0; + if (!$4_1) { + break label$66 + } + $0_1 = 28504; + label$67 : while (1) { + $6_1 = HEAP32[$0_1 >> 2] | 0; + $8_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if (($5_1 | 0) == ($6_1 + $8_1 | 0 | 0)) { + break label$65 + } + $0_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + if ($0_1) { + continue label$67 + } + break label$64; + }; + } + label$68 : { + label$69 : { + $0_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + if (!$0_1) { + break label$69 + } + if ($5_1 >>> 0 >= $0_1 >>> 0) { + break label$68 + } + } + HEAP32[(0 + 28072 | 0) >> 2] = $5_1; + } + $0_1 = 0; + HEAP32[(0 + 28508 | 0) >> 2] = $2_1; + HEAP32[(0 + 28504 | 0) >> 2] = $5_1; + HEAP32[(0 + 28088 | 0) >> 2] = -1; + HEAP32[(0 + 28092 | 0) >> 2] = HEAP32[(0 + 28528 | 0) >> 2] | 0; + HEAP32[(0 + 28516 | 0) >> 2] = 0; + label$70 : while (1) { + $4_1 = $0_1 << 3 | 0; + $6_1 = $4_1 + 28096 | 0; + HEAP32[($4_1 + 28104 | 0) >> 2] = $6_1; + HEAP32[($4_1 + 28108 | 0) >> 2] = $6_1; + $0_1 = $0_1 + 1 | 0; + if (($0_1 | 0) != (32 | 0)) { + continue label$70 + } + break label$70; + }; + $0_1 = $2_1 + -40 | 0; + $4_1 = ($5_1 + 8 | 0) & 7 | 0 ? (-8 - $5_1 | 0) & 7 | 0 : 0; + $6_1 = $0_1 - $4_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $6_1; + $4_1 = $5_1 + $4_1 | 0; + HEAP32[(0 + 28080 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 4 | 0) >> 2] = $6_1 | 1 | 0; + HEAP32[(($5_1 + $0_1 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 28084 | 0) >> 2] = HEAP32[(0 + 28544 | 0) >> 2] | 0; + break label$63; + } + if ((HEAPU8[($0_1 + 12 | 0) >> 0] | 0) & 8 | 0) { + break label$64 + } + if ($5_1 >>> 0 <= $4_1 >>> 0) { + break label$64 + } + if ($6_1 >>> 0 > $4_1 >>> 0) { + break label$64 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $8_1 + $2_1 | 0; + $0_1 = ($4_1 + 8 | 0) & 7 | 0 ? (-8 - $4_1 | 0) & 7 | 0 : 0; + $6_1 = $4_1 + $0_1 | 0; + HEAP32[(0 + 28080 | 0) >> 2] = $6_1; + $5_1 = (HEAP32[(0 + 28068 | 0) >> 2] | 0) + $2_1 | 0; + $0_1 = $5_1 - $0_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[(($4_1 + $5_1 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 28084 | 0) >> 2] = HEAP32[(0 + 28544 | 0) >> 2] | 0; + break label$63; + } + label$71 : { + $8_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + if ($5_1 >>> 0 >= $8_1 >>> 0) { + break label$71 + } + HEAP32[(0 + 28072 | 0) >> 2] = $5_1; + $8_1 = $5_1; + } + $6_1 = $5_1 + $2_1 | 0; + $0_1 = 28504; + label$72 : { + label$73 : { + label$74 : { + label$75 : { + label$76 : { + label$77 : { + label$78 : { + label$79 : while (1) { + if ((HEAP32[$0_1 >> 2] | 0 | 0) == ($6_1 | 0)) { + break label$78 + } + $0_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + if ($0_1) { + continue label$79 + } + break label$77; + }; + } + if (!((HEAPU8[($0_1 + 12 | 0) >> 0] | 0) & 8 | 0)) { + break label$76 + } + } + $0_1 = 28504; + label$80 : while (1) { + label$81 : { + $6_1 = HEAP32[$0_1 >> 2] | 0; + if ($6_1 >>> 0 > $4_1 >>> 0) { + break label$81 + } + $6_1 = $6_1 + (HEAP32[($0_1 + 4 | 0) >> 2] | 0) | 0; + if ($6_1 >>> 0 > $4_1 >>> 0) { + break label$75 + } + } + $0_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + continue label$80; + }; + } + HEAP32[$0_1 >> 2] = $5_1; + HEAP32[($0_1 + 4 | 0) >> 2] = (HEAP32[($0_1 + 4 | 0) >> 2] | 0) + $2_1 | 0; + $11_1 = $5_1 + (($5_1 + 8 | 0) & 7 | 0 ? (-8 - $5_1 | 0) & 7 | 0 : 0) | 0; + HEAP32[($11_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $5_1 = $6_1 + (($6_1 + 8 | 0) & 7 | 0 ? (-8 - $6_1 | 0) & 7 | 0 : 0) | 0; + $0_1 = ($5_1 - $11_1 | 0) - $3_1 | 0; + $6_1 = $11_1 + $3_1 | 0; + label$82 : { + if (($4_1 | 0) != ($5_1 | 0)) { + break label$82 + } + HEAP32[(0 + 28080 | 0) >> 2] = $6_1; + $0_1 = (HEAP32[(0 + 28068 | 0) >> 2] | 0) + $0_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + break label$73; + } + label$83 : { + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) != ($5_1 | 0)) { + break label$83 + } + HEAP32[(0 + 28076 | 0) >> 2] = $6_1; + $0_1 = (HEAP32[(0 + 28064 | 0) >> 2] | 0) + $0_1 | 0; + HEAP32[(0 + 28064 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($6_1 + $0_1 | 0) >> 2] = $0_1; + break label$73; + } + label$84 : { + $4_1 = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + if (($4_1 & 3 | 0 | 0) != (1 | 0)) { + break label$84 + } + $7_1 = $4_1 & -8 | 0; + label$85 : { + label$86 : { + if ($4_1 >>> 0 > 255 >>> 0) { + break label$86 + } + $3_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + label$87 : { + $2_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + $9_1 = $4_1 >>> 3 | 0; + $4_1 = ($9_1 << 3 | 0) + 28096 | 0; + if (($2_1 | 0) == ($4_1 | 0)) { + break label$87 + } + } + label$88 : { + if (($3_1 | 0) != ($2_1 | 0)) { + break label$88 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $9_1 | 0) | 0) | 0; + break label$85; + } + label$89 : { + if (($3_1 | 0) == ($4_1 | 0)) { + break label$89 + } + } + HEAP32[($2_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $2_1; + break label$85; + } + $9_1 = HEAP32[($5_1 + 24 | 0) >> 2] | 0; + label$90 : { + label$91 : { + $2_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + if (($2_1 | 0) == ($5_1 | 0)) { + break label$91 + } + label$92 : { + $4_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + if ($8_1 >>> 0 > $4_1 >>> 0) { + break label$92 + } + HEAP32[($4_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $2_1; + HEAP32[($2_1 + 8 | 0) >> 2] = $4_1; + break label$90; + } + label$93 : { + $4_1 = $5_1 + 20 | 0; + $3_1 = HEAP32[$4_1 >> 2] | 0; + if ($3_1) { + break label$93 + } + $4_1 = $5_1 + 16 | 0; + $3_1 = HEAP32[$4_1 >> 2] | 0; + if ($3_1) { + break label$93 + } + $2_1 = 0; + break label$90; + } + label$94 : while (1) { + $8_1 = $4_1; + $2_1 = $3_1; + $4_1 = $3_1 + 20 | 0; + $3_1 = HEAP32[$4_1 >> 2] | 0; + if ($3_1) { + continue label$94 + } + $4_1 = $2_1 + 16 | 0; + $3_1 = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + if ($3_1) { + continue label$94 + } + break label$94; + }; + HEAP32[$8_1 >> 2] = 0; + } + if (!$9_1) { + break label$85 + } + label$95 : { + label$96 : { + $3_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + $4_1 = ($3_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$4_1 >> 2] | 0 | 0) != ($5_1 | 0)) { + break label$96 + } + HEAP32[$4_1 >> 2] = $2_1; + if ($2_1) { + break label$95 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $3_1 | 0) | 0) | 0; + break label$85; + } + HEAP32[($9_1 + ((HEAP32[($9_1 + 16 | 0) >> 2] | 0 | 0) == ($5_1 | 0) ? 16 : 20) | 0) >> 2] = $2_1; + if (!$2_1) { + break label$85 + } + } + HEAP32[($2_1 + 24 | 0) >> 2] = $9_1; + label$97 : { + $4_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if (!$4_1) { + break label$97 + } + HEAP32[($2_1 + 16 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $2_1; + } + $4_1 = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + if (!$4_1) { + break label$85 + } + HEAP32[($2_1 + 20 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $2_1; + } + $0_1 = $7_1 + $0_1 | 0; + $5_1 = $5_1 + $7_1 | 0; + } + HEAP32[($5_1 + 4 | 0) >> 2] = (HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -2 | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($6_1 + $0_1 | 0) >> 2] = $0_1; + label$98 : { + if ($0_1 >>> 0 > 255 >>> 0) { + break label$98 + } + $4_1 = $0_1 >>> 3 | 0; + $0_1 = ($4_1 << 3 | 0) + 28096 | 0; + label$99 : { + label$100 : { + $3_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $4_1 = 1 << $4_1 | 0; + if ($3_1 & $4_1 | 0) { + break label$100 + } + HEAP32[(0 + 28056 | 0) >> 2] = $3_1 | $4_1 | 0; + $4_1 = $0_1; + break label$99; + } + $4_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 8 | 0) >> 2] = $6_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $4_1; + break label$73; + } + $4_1 = 0; + label$101 : { + $3_1 = $0_1 >>> 8 | 0; + if (!$3_1) { + break label$101 + } + $4_1 = 31; + if ($0_1 >>> 0 > 16777215 >>> 0) { + break label$101 + } + $4_1 = (($3_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $3_1 = $3_1 << $4_1 | 0; + $1200 = $3_1; + $3_1 = (($3_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $5_1 = $1200 << $3_1 | 0; + $1207 = $5_1; + $5_1 = (($5_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $4_1 = (($1207 << $5_1 | 0) >>> 15 | 0) - ($3_1 | $4_1 | 0 | $5_1 | 0) | 0; + $4_1 = ($4_1 << 1 | 0 | (($0_1 >>> ($4_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + HEAP32[($6_1 + 28 | 0) >> 2] = $4_1; + i64toi32_i32$1 = $6_1; + i64toi32_i32$0 = 0; + HEAP32[($6_1 + 16 | 0) >> 2] = 0; + HEAP32[($6_1 + 20 | 0) >> 2] = i64toi32_i32$0; + $3_1 = ($4_1 << 2 | 0) + 28360 | 0; + label$102 : { + label$103 : { + $5_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + $8_1 = 1 << $4_1 | 0; + if ($5_1 & $8_1 | 0) { + break label$103 + } + HEAP32[(0 + 28060 | 0) >> 2] = $5_1 | $8_1 | 0; + HEAP32[$3_1 >> 2] = $6_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $3_1; + break label$102; + } + $4_1 = $0_1 << (($4_1 | 0) == (31 | 0) ? 0 : 25 - ($4_1 >>> 1 | 0) | 0) | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + label$104 : while (1) { + $3_1 = $5_1; + if (((HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($0_1 | 0)) { + break label$74 + } + $5_1 = $4_1 >>> 29 | 0; + $4_1 = $4_1 << 1 | 0; + $8_1 = ($3_1 + ($5_1 & 4 | 0) | 0) + 16 | 0; + $5_1 = HEAP32[$8_1 >> 2] | 0; + if ($5_1) { + continue label$104 + } + break label$104; + }; + HEAP32[$8_1 >> 2] = $6_1; + HEAP32[($6_1 + 24 | 0) >> 2] = $3_1; + } + HEAP32[($6_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $6_1; + break label$73; + } + $0_1 = $2_1 + -40 | 0; + $8_1 = ($5_1 + 8 | 0) & 7 | 0 ? (-8 - $5_1 | 0) & 7 | 0 : 0; + $11_1 = $0_1 - $8_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $11_1; + $8_1 = $5_1 + $8_1 | 0; + HEAP32[(0 + 28080 | 0) >> 2] = $8_1; + HEAP32[($8_1 + 4 | 0) >> 2] = $11_1 | 1 | 0; + HEAP32[(($5_1 + $0_1 | 0) + 4 | 0) >> 2] = 40; + HEAP32[(0 + 28084 | 0) >> 2] = HEAP32[(0 + 28544 | 0) >> 2] | 0; + $0_1 = ($6_1 + (($6_1 + -39 | 0) & 7 | 0 ? (39 - $6_1 | 0) & 7 | 0 : 0) | 0) + -47 | 0; + $8_1 = $0_1 >>> 0 < ($4_1 + 16 | 0) >>> 0 ? $4_1 : $0_1; + HEAP32[($8_1 + 4 | 0) >> 2] = 27; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 28512 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 28516 | 0) >> 2] | 0; + $1329 = i64toi32_i32$0; + i64toi32_i32$0 = $8_1 + 16 | 0; + HEAP32[i64toi32_i32$0 >> 2] = $1329; + HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] = i64toi32_i32$1; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 28504 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 28508 | 0) >> 2] | 0; + $1331 = i64toi32_i32$1; + i64toi32_i32$1 = $8_1; + HEAP32[($8_1 + 8 | 0) >> 2] = $1331; + HEAP32[($8_1 + 12 | 0) >> 2] = i64toi32_i32$0; + HEAP32[(0 + 28512 | 0) >> 2] = $8_1 + 8 | 0; + HEAP32[(0 + 28508 | 0) >> 2] = $2_1; + HEAP32[(0 + 28504 | 0) >> 2] = $5_1; + HEAP32[(0 + 28516 | 0) >> 2] = 0; + $0_1 = $8_1 + 24 | 0; + label$105 : while (1) { + HEAP32[($0_1 + 4 | 0) >> 2] = 7; + $5_1 = $0_1 + 8 | 0; + $0_1 = $0_1 + 4 | 0; + if ($6_1 >>> 0 > $5_1 >>> 0) { + continue label$105 + } + break label$105; + }; + if (($8_1 | 0) == ($4_1 | 0)) { + break label$63 + } + HEAP32[($8_1 + 4 | 0) >> 2] = (HEAP32[($8_1 + 4 | 0) >> 2] | 0) & -2 | 0; + $2_1 = $8_1 - $4_1 | 0; + HEAP32[($4_1 + 4 | 0) >> 2] = $2_1 | 1 | 0; + HEAP32[$8_1 >> 2] = $2_1; + label$106 : { + if ($2_1 >>> 0 > 255 >>> 0) { + break label$106 + } + $6_1 = $2_1 >>> 3 | 0; + $0_1 = ($6_1 << 3 | 0) + 28096 | 0; + label$107 : { + label$108 : { + $5_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $6_1 = 1 << $6_1 | 0; + if ($5_1 & $6_1 | 0) { + break label$108 + } + HEAP32[(0 + 28056 | 0) >> 2] = $5_1 | $6_1 | 0; + $6_1 = $0_1; + break label$107; + } + $6_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($6_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $6_1; + break label$63; + } + $0_1 = 0; + label$109 : { + $6_1 = $2_1 >>> 8 | 0; + if (!$6_1) { + break label$109 + } + $0_1 = 31; + if ($2_1 >>> 0 > 16777215 >>> 0) { + break label$109 + } + $0_1 = (($6_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $6_1 = $6_1 << $0_1 | 0; + $1401 = $6_1; + $6_1 = (($6_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $5_1 = $1401 << $6_1 | 0; + $1408 = $5_1; + $5_1 = (($5_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $0_1 = (($1408 << $5_1 | 0) >>> 15 | 0) - ($6_1 | $0_1 | 0 | $5_1 | 0) | 0; + $0_1 = ($0_1 << 1 | 0 | (($2_1 >>> ($0_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + i64toi32_i32$1 = $4_1; + i64toi32_i32$0 = 0; + HEAP32[($4_1 + 16 | 0) >> 2] = 0; + HEAP32[($4_1 + 20 | 0) >> 2] = i64toi32_i32$0; + HEAP32[($4_1 + 28 | 0) >> 2] = $0_1; + $6_1 = ($0_1 << 2 | 0) + 28360 | 0; + label$110 : { + label$111 : { + $5_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + $8_1 = 1 << $0_1 | 0; + if ($5_1 & $8_1 | 0) { + break label$111 + } + HEAP32[(0 + 28060 | 0) >> 2] = $5_1 | $8_1 | 0; + HEAP32[$6_1 >> 2] = $4_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $6_1; + break label$110; + } + $0_1 = $2_1 << (($0_1 | 0) == (31 | 0) ? 0 : 25 - ($0_1 >>> 1 | 0) | 0) | 0; + $5_1 = HEAP32[$6_1 >> 2] | 0; + label$112 : while (1) { + $6_1 = $5_1; + if (((HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($2_1 | 0)) { + break label$72 + } + $5_1 = $0_1 >>> 29 | 0; + $0_1 = $0_1 << 1 | 0; + $8_1 = ($6_1 + ($5_1 & 4 | 0) | 0) + 16 | 0; + $5_1 = HEAP32[$8_1 >> 2] | 0; + if ($5_1) { + continue label$112 + } + break label$112; + }; + HEAP32[$8_1 >> 2] = $4_1; + HEAP32[($4_1 + 24 | 0) >> 2] = $6_1; + } + HEAP32[($4_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $4_1; + break label$63; + } + $0_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 24 | 0) >> 2] = 0; + HEAP32[($6_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $0_1; + } + $0_1 = $11_1 + 8 | 0; + break label$3; + } + $0_1 = HEAP32[($6_1 + 8 | 0) >> 2] | 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 24 | 0) >> 2] = 0; + HEAP32[($4_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $0_1; + } + $0_1 = HEAP32[(0 + 28068 | 0) >> 2] | 0; + if ($0_1 >>> 0 <= $3_1 >>> 0) { + break label$6 + } + $4_1 = $0_1 - $3_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $4_1; + $0_1 = HEAP32[(0 + 28080 | 0) >> 2] | 0; + $6_1 = $0_1 + $3_1 | 0; + HEAP32[(0 + 28080 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 4 | 0) >> 2] = $4_1 | 1 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $0_1 = $0_1 + 8 | 0; + break label$3; + } + HEAP32[($842() | 0) >> 2] = 48; + $0_1 = 0; + break label$3; + } + label$113 : { + if (!$11_1) { + break label$113 + } + label$114 : { + label$115 : { + $4_1 = HEAP32[($8_1 + 28 | 0) >> 2] | 0; + $0_1 = ($4_1 << 2 | 0) + 28360 | 0; + if (($8_1 | 0) != (HEAP32[$0_1 >> 2] | 0 | 0)) { + break label$115 + } + HEAP32[$0_1 >> 2] = $5_1; + if ($5_1) { + break label$114 + } + $7_1 = $7_1 & (__wasm_rotl_i32(-2 | 0, $4_1 | 0) | 0) | 0; + HEAP32[(0 + 28060 | 0) >> 2] = $7_1; + break label$113; + } + HEAP32[($11_1 + ((HEAP32[($11_1 + 16 | 0) >> 2] | 0 | 0) == ($8_1 | 0) ? 16 : 20) | 0) >> 2] = $5_1; + if (!$5_1) { + break label$113 + } + } + HEAP32[($5_1 + 24 | 0) >> 2] = $11_1; + label$116 : { + $0_1 = HEAP32[($8_1 + 16 | 0) >> 2] | 0; + if (!$0_1) { + break label$116 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $5_1; + } + $0_1 = HEAP32[($8_1 + 20 | 0) >> 2] | 0; + if (!$0_1) { + break label$113 + } + HEAP32[($5_1 + 20 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $5_1; + } + label$117 : { + label$118 : { + if ($6_1 >>> 0 > 15 >>> 0) { + break label$118 + } + $0_1 = $6_1 + $3_1 | 0; + HEAP32[($8_1 + 4 | 0) >> 2] = $0_1 | 3 | 0; + $0_1 = $8_1 + $0_1 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = HEAP32[($0_1 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$117; + } + HEAP32[($8_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $5_1 = $8_1 + $3_1 | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = $6_1 | 1 | 0; + HEAP32[($5_1 + $6_1 | 0) >> 2] = $6_1; + label$119 : { + if ($6_1 >>> 0 > 255 >>> 0) { + break label$119 + } + $4_1 = $6_1 >>> 3 | 0; + $0_1 = ($4_1 << 3 | 0) + 28096 | 0; + label$120 : { + label$121 : { + $6_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $4_1 = 1 << $4_1 | 0; + if ($6_1 & $4_1 | 0) { + break label$121 + } + HEAP32[(0 + 28056 | 0) >> 2] = $6_1 | $4_1 | 0; + $4_1 = $0_1; + break label$120; + } + $4_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $4_1; + break label$117; + } + label$122 : { + label$123 : { + $4_1 = $6_1 >>> 8 | 0; + if ($4_1) { + break label$123 + } + $0_1 = 0; + break label$122; + } + $0_1 = 31; + if ($6_1 >>> 0 > 16777215 >>> 0) { + break label$122 + } + $0_1 = (($4_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $4_1 = $4_1 << $0_1 | 0; + $1652 = $4_1; + $4_1 = (($4_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $3_1 = $1652 << $4_1 | 0; + $1659 = $3_1; + $3_1 = (($3_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $0_1 = (($1659 << $3_1 | 0) >>> 15 | 0) - ($4_1 | $0_1 | 0 | $3_1 | 0) | 0; + $0_1 = ($0_1 << 1 | 0 | (($6_1 >>> ($0_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + HEAP32[($5_1 + 28 | 0) >> 2] = $0_1; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = 0; + HEAP32[($5_1 + 16 | 0) >> 2] = 0; + HEAP32[($5_1 + 20 | 0) >> 2] = i64toi32_i32$0; + $4_1 = ($0_1 << 2 | 0) + 28360 | 0; + label$124 : { + label$125 : { + label$126 : { + $3_1 = 1 << $0_1 | 0; + if ($7_1 & $3_1 | 0) { + break label$126 + } + HEAP32[(0 + 28060 | 0) >> 2] = $7_1 | $3_1 | 0; + HEAP32[$4_1 >> 2] = $5_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $4_1; + break label$125; + } + $0_1 = $6_1 << (($0_1 | 0) == (31 | 0) ? 0 : 25 - ($0_1 >>> 1 | 0) | 0) | 0; + $3_1 = HEAP32[$4_1 >> 2] | 0; + label$127 : while (1) { + $4_1 = $3_1; + if (((HEAP32[($4_1 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($6_1 | 0)) { + break label$124 + } + $3_1 = $0_1 >>> 29 | 0; + $0_1 = $0_1 << 1 | 0; + $2_1 = ($4_1 + ($3_1 & 4 | 0) | 0) + 16 | 0; + $3_1 = HEAP32[$2_1 >> 2] | 0; + if ($3_1) { + continue label$127 + } + break label$127; + }; + HEAP32[$2_1 >> 2] = $5_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $4_1; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $5_1; + break label$117; + } + $0_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 24 | 0) >> 2] = 0; + HEAP32[($5_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $0_1; + } + $0_1 = $8_1 + 8 | 0; + break label$3; + } + label$128 : { + if (!$10_1) { + break label$128 + } + label$129 : { + label$130 : { + $6_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + $0_1 = ($6_1 << 2 | 0) + 28360 | 0; + if (($5_1 | 0) != (HEAP32[$0_1 >> 2] | 0 | 0)) { + break label$130 + } + HEAP32[$0_1 >> 2] = $8_1; + if ($8_1) { + break label$129 + } + HEAP32[(0 + 28060 | 0) >> 2] = $9_1 & (__wasm_rotl_i32(-2 | 0, $6_1 | 0) | 0) | 0; + break label$128; + } + HEAP32[($10_1 + ((HEAP32[($10_1 + 16 | 0) >> 2] | 0 | 0) == ($5_1 | 0) ? 16 : 20) | 0) >> 2] = $8_1; + if (!$8_1) { + break label$128 + } + } + HEAP32[($8_1 + 24 | 0) >> 2] = $10_1; + label$131 : { + $0_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if (!$0_1) { + break label$131 + } + HEAP32[($8_1 + 16 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $8_1; + } + $0_1 = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + if (!$0_1) { + break label$128 + } + HEAP32[($8_1 + 20 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $8_1; + } + label$132 : { + label$133 : { + if ($4_1 >>> 0 > 15 >>> 0) { + break label$133 + } + $0_1 = $4_1 + $3_1 | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = $0_1 | 3 | 0; + $0_1 = $5_1 + $0_1 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = HEAP32[($0_1 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$132; + } + HEAP32[($5_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + $6_1 = $5_1 + $3_1 | 0; + HEAP32[($6_1 + 4 | 0) >> 2] = $4_1 | 1 | 0; + HEAP32[($6_1 + $4_1 | 0) >> 2] = $4_1; + label$134 : { + if (!$7_1) { + break label$134 + } + $8_1 = $7_1 >>> 3 | 0; + $3_1 = ($8_1 << 3 | 0) + 28096 | 0; + $0_1 = HEAP32[(0 + 28076 | 0) >> 2] | 0; + label$135 : { + label$136 : { + $8_1 = 1 << $8_1 | 0; + if ($8_1 & $2_1 | 0) { + break label$136 + } + HEAP32[(0 + 28056 | 0) >> 2] = $8_1 | $2_1 | 0; + $8_1 = $3_1; + break label$135; + } + $8_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($8_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $8_1; + } + HEAP32[(0 + 28076 | 0) >> 2] = $6_1; + HEAP32[(0 + 28064 | 0) >> 2] = $4_1; + } + $0_1 = $5_1 + 8 | 0; + } + label$137 : { + $13_1 = $1_1 + 16 | 0; + if ($13_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $13_1; + } + return $0_1 | 0; + } + + function $964($0_1) { + $0_1 = $0_1 | 0; + var $2_1 = 0, $5_1 = 0, $1_1 = 0, $4_1 = 0, $3_1 = 0, $7_1 = 0, $6_1 = 0, $408_1 = 0, $415_1 = 0; + label$1 : { + if (!$0_1) { + break label$1 + } + $1_1 = $0_1 + -8 | 0; + $2_1 = HEAP32[($0_1 + -4 | 0) >> 2] | 0; + $0_1 = $2_1 & -8 | 0; + $3_1 = $1_1 + $0_1 | 0; + label$2 : { + if ($2_1 & 1 | 0) { + break label$2 + } + if (!($2_1 & 3 | 0)) { + break label$1 + } + $2_1 = HEAP32[$1_1 >> 2] | 0; + $1_1 = $1_1 - $2_1 | 0; + $4_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + if ($1_1 >>> 0 < $4_1 >>> 0) { + break label$1 + } + $0_1 = $2_1 + $0_1 | 0; + label$3 : { + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) == ($1_1 | 0)) { + break label$3 + } + label$4 : { + if ($2_1 >>> 0 > 255 >>> 0) { + break label$4 + } + $5_1 = HEAP32[($1_1 + 12 | 0) >> 2] | 0; + label$5 : { + $6_1 = HEAP32[($1_1 + 8 | 0) >> 2] | 0; + $7_1 = $2_1 >>> 3 | 0; + $2_1 = ($7_1 << 3 | 0) + 28096 | 0; + if (($6_1 | 0) == ($2_1 | 0)) { + break label$5 + } + } + label$6 : { + if (($5_1 | 0) != ($6_1 | 0)) { + break label$6 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $7_1 | 0) | 0) | 0; + break label$2; + } + label$7 : { + if (($5_1 | 0) == ($2_1 | 0)) { + break label$7 + } + } + HEAP32[($6_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $6_1; + break label$2; + } + $7_1 = HEAP32[($1_1 + 24 | 0) >> 2] | 0; + label$8 : { + label$9 : { + $5_1 = HEAP32[($1_1 + 12 | 0) >> 2] | 0; + if (($5_1 | 0) == ($1_1 | 0)) { + break label$9 + } + label$10 : { + $2_1 = HEAP32[($1_1 + 8 | 0) >> 2] | 0; + if ($4_1 >>> 0 > $2_1 >>> 0) { + break label$10 + } + HEAP32[($2_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $2_1; + break label$8; + } + label$11 : { + $2_1 = $1_1 + 20 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + break label$11 + } + $2_1 = $1_1 + 16 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + break label$11 + } + $5_1 = 0; + break label$8; + } + label$12 : while (1) { + $6_1 = $2_1; + $5_1 = $4_1; + $2_1 = $5_1 + 20 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + continue label$12 + } + $2_1 = $5_1 + 16 | 0; + $4_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if ($4_1) { + continue label$12 + } + break label$12; + }; + HEAP32[$6_1 >> 2] = 0; + } + if (!$7_1) { + break label$2 + } + label$13 : { + label$14 : { + $4_1 = HEAP32[($1_1 + 28 | 0) >> 2] | 0; + $2_1 = ($4_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$2_1 >> 2] | 0 | 0) != ($1_1 | 0)) { + break label$14 + } + HEAP32[$2_1 >> 2] = $5_1; + if ($5_1) { + break label$13 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4_1 | 0) | 0) | 0; + break label$2; + } + HEAP32[($7_1 + ((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) == ($1_1 | 0) ? 16 : 20) | 0) >> 2] = $5_1; + if (!$5_1) { + break label$2 + } + } + HEAP32[($5_1 + 24 | 0) >> 2] = $7_1; + label$15 : { + $2_1 = HEAP32[($1_1 + 16 | 0) >> 2] | 0; + if (!$2_1) { + break label$15 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($2_1 + 24 | 0) >> 2] = $5_1; + } + $2_1 = HEAP32[($1_1 + 20 | 0) >> 2] | 0; + if (!$2_1) { + break label$2 + } + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($2_1 + 24 | 0) >> 2] = $5_1; + break label$2; + } + $2_1 = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + if (($2_1 & 3 | 0 | 0) != (3 | 0)) { + break label$2 + } + HEAP32[(0 + 28064 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $2_1 & -2 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($1_1 + $0_1 | 0) >> 2] = $0_1; + return; + } + if ($3_1 >>> 0 <= $1_1 >>> 0) { + break label$1 + } + $2_1 = HEAP32[($3_1 + 4 | 0) >> 2] | 0; + if (!($2_1 & 1 | 0)) { + break label$1 + } + label$16 : { + label$17 : { + if ($2_1 & 2 | 0) { + break label$17 + } + label$18 : { + if ((HEAP32[(0 + 28080 | 0) >> 2] | 0 | 0) != ($3_1 | 0)) { + break label$18 + } + HEAP32[(0 + 28080 | 0) >> 2] = $1_1; + $0_1 = (HEAP32[(0 + 28068 | 0) >> 2] | 0) + $0_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $0_1; + HEAP32[($1_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + if (($1_1 | 0) != (HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0)) { + break label$1 + } + HEAP32[(0 + 28064 | 0) >> 2] = 0; + HEAP32[(0 + 28076 | 0) >> 2] = 0; + return; + } + label$19 : { + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) != ($3_1 | 0)) { + break label$19 + } + HEAP32[(0 + 28076 | 0) >> 2] = $1_1; + $0_1 = (HEAP32[(0 + 28064 | 0) >> 2] | 0) + $0_1 | 0; + HEAP32[(0 + 28064 | 0) >> 2] = $0_1; + HEAP32[($1_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($1_1 + $0_1 | 0) >> 2] = $0_1; + return; + } + $0_1 = ($2_1 & -8 | 0) + $0_1 | 0; + label$20 : { + label$21 : { + if ($2_1 >>> 0 > 255 >>> 0) { + break label$21 + } + $4_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + label$22 : { + $5_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + $3_1 = $2_1 >>> 3 | 0; + $2_1 = ($3_1 << 3 | 0) + 28096 | 0; + if (($5_1 | 0) == ($2_1 | 0)) { + break label$22 + } + HEAP32[(0 + 28072 | 0) >> 2] | 0; + } + label$23 : { + if (($4_1 | 0) != ($5_1 | 0)) { + break label$23 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $3_1 | 0) | 0) | 0; + break label$20; + } + label$24 : { + if (($4_1 | 0) == ($2_1 | 0)) { + break label$24 + } + HEAP32[(0 + 28072 | 0) >> 2] | 0; + } + HEAP32[($5_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $5_1; + break label$20; + } + $7_1 = HEAP32[($3_1 + 24 | 0) >> 2] | 0; + label$25 : { + label$26 : { + $5_1 = HEAP32[($3_1 + 12 | 0) >> 2] | 0; + if (($5_1 | 0) == ($3_1 | 0)) { + break label$26 + } + label$27 : { + $2_1 = HEAP32[($3_1 + 8 | 0) >> 2] | 0; + if ((HEAP32[(0 + 28072 | 0) >> 2] | 0) >>> 0 > $2_1 >>> 0) { + break label$27 + } + HEAP32[($2_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $2_1; + break label$25; + } + label$28 : { + $2_1 = $3_1 + 20 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + break label$28 + } + $2_1 = $3_1 + 16 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + break label$28 + } + $5_1 = 0; + break label$25; + } + label$29 : while (1) { + $6_1 = $2_1; + $5_1 = $4_1; + $2_1 = $5_1 + 20 | 0; + $4_1 = HEAP32[$2_1 >> 2] | 0; + if ($4_1) { + continue label$29 + } + $2_1 = $5_1 + 16 | 0; + $4_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if ($4_1) { + continue label$29 + } + break label$29; + }; + HEAP32[$6_1 >> 2] = 0; + } + if (!$7_1) { + break label$20 + } + label$30 : { + label$31 : { + $4_1 = HEAP32[($3_1 + 28 | 0) >> 2] | 0; + $2_1 = ($4_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$2_1 >> 2] | 0 | 0) != ($3_1 | 0)) { + break label$31 + } + HEAP32[$2_1 >> 2] = $5_1; + if ($5_1) { + break label$30 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4_1 | 0) | 0) | 0; + break label$20; + } + HEAP32[($7_1 + ((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) == ($3_1 | 0) ? 16 : 20) | 0) >> 2] = $5_1; + if (!$5_1) { + break label$20 + } + } + HEAP32[($5_1 + 24 | 0) >> 2] = $7_1; + label$32 : { + $2_1 = HEAP32[($3_1 + 16 | 0) >> 2] | 0; + if (!$2_1) { + break label$32 + } + HEAP32[($5_1 + 16 | 0) >> 2] = $2_1; + HEAP32[($2_1 + 24 | 0) >> 2] = $5_1; + } + $2_1 = HEAP32[($3_1 + 20 | 0) >> 2] | 0; + if (!$2_1) { + break label$20 + } + HEAP32[($5_1 + 20 | 0) >> 2] = $2_1; + HEAP32[($2_1 + 24 | 0) >> 2] = $5_1; + } + HEAP32[($1_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($1_1 + $0_1 | 0) >> 2] = $0_1; + if (($1_1 | 0) != (HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0)) { + break label$16 + } + HEAP32[(0 + 28064 | 0) >> 2] = $0_1; + return; + } + HEAP32[($3_1 + 4 | 0) >> 2] = $2_1 & -2 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $0_1 | 1 | 0; + HEAP32[($1_1 + $0_1 | 0) >> 2] = $0_1; + } + label$33 : { + if ($0_1 >>> 0 > 255 >>> 0) { + break label$33 + } + $2_1 = $0_1 >>> 3 | 0; + $0_1 = ($2_1 << 3 | 0) + 28096 | 0; + label$34 : { + label$35 : { + $4_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $2_1 = 1 << $2_1 | 0; + if ($4_1 & $2_1 | 0) { + break label$35 + } + HEAP32[(0 + 28056 | 0) >> 2] = $4_1 | $2_1 | 0; + $2_1 = $0_1; + break label$34; + } + $2_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($0_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($2_1 + 12 | 0) >> 2] = $1_1; + HEAP32[($1_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($1_1 + 8 | 0) >> 2] = $2_1; + return; + } + $2_1 = 0; + label$36 : { + $4_1 = $0_1 >>> 8 | 0; + if (!$4_1) { + break label$36 + } + $2_1 = 31; + if ($0_1 >>> 0 > 16777215 >>> 0) { + break label$36 + } + $2_1 = (($4_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $4_1 = $4_1 << $2_1 | 0; + $408_1 = $4_1; + $4_1 = (($4_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $5_1 = $408_1 << $4_1 | 0; + $415_1 = $5_1; + $5_1 = (($5_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $2_1 = (($415_1 << $5_1 | 0) >>> 15 | 0) - ($4_1 | $2_1 | 0 | $5_1 | 0) | 0; + $2_1 = ($2_1 << 1 | 0 | (($0_1 >>> ($2_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + HEAP32[($1_1 + 16 | 0) >> 2] = 0; + HEAP32[($1_1 + 20 | 0) >> 2] = 0; + HEAP32[($1_1 + 28 | 0) >> 2] = $2_1; + $4_1 = ($2_1 << 2 | 0) + 28360 | 0; + label$37 : { + label$38 : { + label$39 : { + label$40 : { + $5_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + $3_1 = 1 << $2_1 | 0; + if ($5_1 & $3_1 | 0) { + break label$40 + } + HEAP32[(0 + 28060 | 0) >> 2] = $5_1 | $3_1 | 0; + HEAP32[$4_1 >> 2] = $1_1; + HEAP32[($1_1 + 24 | 0) >> 2] = $4_1; + break label$39; + } + $2_1 = $0_1 << (($2_1 | 0) == (31 | 0) ? 0 : 25 - ($2_1 >>> 1 | 0) | 0) | 0; + $5_1 = HEAP32[$4_1 >> 2] | 0; + label$41 : while (1) { + $4_1 = $5_1; + if (((HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($0_1 | 0)) { + break label$38 + } + $5_1 = $2_1 >>> 29 | 0; + $2_1 = $2_1 << 1 | 0; + $3_1 = ($4_1 + ($5_1 & 4 | 0) | 0) + 16 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + continue label$41 + } + break label$41; + }; + HEAP32[$3_1 >> 2] = $1_1; + HEAP32[($1_1 + 24 | 0) >> 2] = $4_1; + } + HEAP32[($1_1 + 12 | 0) >> 2] = $1_1; + HEAP32[($1_1 + 8 | 0) >> 2] = $1_1; + break label$37; + } + $0_1 = HEAP32[($4_1 + 8 | 0) >> 2] | 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $1_1; + HEAP32[($4_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($1_1 + 24 | 0) >> 2] = 0; + HEAP32[($1_1 + 12 | 0) >> 2] = $4_1; + HEAP32[($1_1 + 8 | 0) >> 2] = $0_1; + } + $1_1 = (HEAP32[(0 + 28088 | 0) >> 2] | 0) + -1 | 0; + HEAP32[(0 + 28088 | 0) >> 2] = $1_1; + if ($1_1) { + break label$1 + } + $1_1 = 28512; + label$42 : while (1) { + $0_1 = HEAP32[$1_1 >> 2] | 0; + $1_1 = $0_1 + 8 | 0; + if ($0_1) { + continue label$42 + } + break label$42; + }; + HEAP32[(0 + 28088 | 0) >> 2] = -1; + } + } + + function $965($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, $3_1 = 0; + label$1 : { + if ($0_1) { + break label$1 + } + return $963($1_1 | 0) | 0 | 0; + } + label$2 : { + if ($1_1 >>> 0 < -64 >>> 0) { + break label$2 + } + HEAP32[($842() | 0) >> 2] = 48; + return 0 | 0; + } + label$3 : { + $2_1 = $966($0_1 + -8 | 0 | 0, ($1_1 >>> 0 < 11 >>> 0 ? 16 : ($1_1 + 11 | 0) & -8 | 0) | 0) | 0; + if (!$2_1) { + break label$3 + } + return $2_1 + 8 | 0 | 0; + } + label$4 : { + $2_1 = $963($1_1 | 0) | 0; + if ($2_1) { + break label$4 + } + return 0 | 0; + } + $3_1 = HEAP32[($0_1 + -4 | 0) >> 2] | 0; + $3_1 = ($3_1 & 3 | 0 ? -4 : -8) + ($3_1 & -8 | 0) | 0; + $972($2_1 | 0, $0_1 | 0, ($3_1 >>> 0 < $1_1 >>> 0 ? $3_1 : $1_1) | 0) | 0; + $964($0_1 | 0); + return $2_1 | 0; + } + + function $966($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $3_1 = 0, $5_1 = 0, $7_1 = 0, $4_1 = 0, $2_1 = 0, $6_1 = 0, $8_1 = 0, $10_1 = 0, $9_1 = 0; + $2_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + $3_1 = $2_1 & 3 | 0; + $4_1 = $2_1 & -8 | 0; + $5_1 = $0_1 + $4_1 | 0; + label$1 : { + $6_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + if ($6_1 >>> 0 > $0_1 >>> 0) { + break label$1 + } + if (($3_1 | 0) == (1 | 0)) { + break label$1 + } + } + label$2 : { + label$3 : { + if ($3_1) { + break label$3 + } + $3_1 = 0; + if ($1_1 >>> 0 < 256 >>> 0) { + break label$2 + } + label$4 : { + if ($4_1 >>> 0 < ($1_1 + 4 | 0) >>> 0) { + break label$4 + } + $3_1 = $0_1; + if (($4_1 - $1_1 | 0) >>> 0 <= ((HEAP32[(0 + 28536 | 0) >> 2] | 0) << 1 | 0) >>> 0) { + break label$2 + } + } + return 0 | 0; + } + label$5 : { + label$6 : { + if ($4_1 >>> 0 < $1_1 >>> 0) { + break label$6 + } + $3_1 = $4_1 - $1_1 | 0; + if ($3_1 >>> 0 < 16 >>> 0) { + break label$5 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $1_1 | 0 | 2 | 0; + $1_1 = $0_1 + $1_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $3_1 | 3 | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 1 | 0; + $967($1_1 | 0, $3_1 | 0); + break label$5; + } + $3_1 = 0; + label$7 : { + if ((HEAP32[(0 + 28080 | 0) >> 2] | 0 | 0) != ($5_1 | 0)) { + break label$7 + } + $5_1 = (HEAP32[(0 + 28068 | 0) >> 2] | 0) + $4_1 | 0; + if ($5_1 >>> 0 <= $1_1 >>> 0) { + break label$2 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $1_1 | 0 | 2 | 0; + $3_1 = $0_1 + $1_1 | 0; + $1_1 = $5_1 - $1_1 | 0; + HEAP32[($3_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $1_1; + HEAP32[(0 + 28080 | 0) >> 2] = $3_1; + break label$5; + } + label$8 : { + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) != ($5_1 | 0)) { + break label$8 + } + $3_1 = 0; + $5_1 = (HEAP32[(0 + 28064 | 0) >> 2] | 0) + $4_1 | 0; + if ($5_1 >>> 0 < $1_1 >>> 0) { + break label$2 + } + label$9 : { + label$10 : { + $3_1 = $5_1 - $1_1 | 0; + if ($3_1 >>> 0 < 16 >>> 0) { + break label$10 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $1_1 | 0 | 2 | 0; + $1_1 = $0_1 + $1_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $3_1 | 1 | 0; + $5_1 = $0_1 + $5_1 | 0; + HEAP32[$5_1 >> 2] = $3_1; + HEAP32[($5_1 + 4 | 0) >> 2] = (HEAP32[($5_1 + 4 | 0) >> 2] | 0) & -2 | 0; + break label$9; + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $5_1 | 0 | 2 | 0; + $1_1 = $0_1 + $5_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0 | 1 | 0; + $3_1 = 0; + $1_1 = 0; + } + HEAP32[(0 + 28076 | 0) >> 2] = $1_1; + HEAP32[(0 + 28064 | 0) >> 2] = $3_1; + break label$5; + } + $3_1 = 0; + $7_1 = HEAP32[($5_1 + 4 | 0) >> 2] | 0; + if ($7_1 & 2 | 0) { + break label$2 + } + $8_1 = ($7_1 & -8 | 0) + $4_1 | 0; + if ($8_1 >>> 0 < $1_1 >>> 0) { + break label$2 + } + $9_1 = $8_1 - $1_1 | 0; + label$11 : { + label$12 : { + if ($7_1 >>> 0 > 255 >>> 0) { + break label$12 + } + $3_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + label$13 : { + $5_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + $7_1 = $7_1 >>> 3 | 0; + $4_1 = ($7_1 << 3 | 0) + 28096 | 0; + if (($5_1 | 0) == ($4_1 | 0)) { + break label$13 + } + } + label$14 : { + if (($3_1 | 0) != ($5_1 | 0)) { + break label$14 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $7_1 | 0) | 0) | 0; + break label$11; + } + label$15 : { + if (($3_1 | 0) == ($4_1 | 0)) { + break label$15 + } + } + HEAP32[($5_1 + 12 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 8 | 0) >> 2] = $5_1; + break label$11; + } + $10_1 = HEAP32[($5_1 + 24 | 0) >> 2] | 0; + label$16 : { + label$17 : { + $7_1 = HEAP32[($5_1 + 12 | 0) >> 2] | 0; + if (($7_1 | 0) == ($5_1 | 0)) { + break label$17 + } + label$18 : { + $3_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + if ($6_1 >>> 0 > $3_1 >>> 0) { + break label$18 + } + HEAP32[($3_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $7_1; + HEAP32[($7_1 + 8 | 0) >> 2] = $3_1; + break label$16; + } + label$19 : { + $3_1 = $5_1 + 20 | 0; + $4_1 = HEAP32[$3_1 >> 2] | 0; + if ($4_1) { + break label$19 + } + $3_1 = $5_1 + 16 | 0; + $4_1 = HEAP32[$3_1 >> 2] | 0; + if ($4_1) { + break label$19 + } + $7_1 = 0; + break label$16; + } + label$20 : while (1) { + $6_1 = $3_1; + $7_1 = $4_1; + $3_1 = $7_1 + 20 | 0; + $4_1 = HEAP32[$3_1 >> 2] | 0; + if ($4_1) { + continue label$20 + } + $3_1 = $7_1 + 16 | 0; + $4_1 = HEAP32[($7_1 + 16 | 0) >> 2] | 0; + if ($4_1) { + continue label$20 + } + break label$20; + }; + HEAP32[$6_1 >> 2] = 0; + } + if (!$10_1) { + break label$11 + } + label$21 : { + label$22 : { + $4_1 = HEAP32[($5_1 + 28 | 0) >> 2] | 0; + $3_1 = ($4_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$3_1 >> 2] | 0 | 0) != ($5_1 | 0)) { + break label$22 + } + HEAP32[$3_1 >> 2] = $7_1; + if ($7_1) { + break label$21 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $4_1 | 0) | 0) | 0; + break label$11; + } + HEAP32[($10_1 + ((HEAP32[($10_1 + 16 | 0) >> 2] | 0 | 0) == ($5_1 | 0) ? 16 : 20) | 0) >> 2] = $7_1; + if (!$7_1) { + break label$11 + } + } + HEAP32[($7_1 + 24 | 0) >> 2] = $10_1; + label$23 : { + $3_1 = HEAP32[($5_1 + 16 | 0) >> 2] | 0; + if (!$3_1) { + break label$23 + } + HEAP32[($7_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $7_1; + } + $5_1 = HEAP32[($5_1 + 20 | 0) >> 2] | 0; + if (!$5_1) { + break label$11 + } + HEAP32[($7_1 + 20 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 24 | 0) >> 2] = $7_1; + } + label$24 : { + if ($9_1 >>> 0 > 15 >>> 0) { + break label$24 + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $8_1 | 0 | 2 | 0; + $1_1 = $0_1 + $8_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0 | 1 | 0; + break label$5; + } + HEAP32[($0_1 + 4 | 0) >> 2] = $2_1 & 1 | 0 | $1_1 | 0 | 2 | 0; + $1_1 = $0_1 + $1_1 | 0; + HEAP32[($1_1 + 4 | 0) >> 2] = $9_1 | 3 | 0; + $5_1 = $0_1 + $8_1 | 0; + HEAP32[($5_1 + 4 | 0) >> 2] = HEAP32[($5_1 + 4 | 0) >> 2] | 0 | 1 | 0; + $967($1_1 | 0, $9_1 | 0); + } + $3_1 = $0_1; + } + return $3_1 | 0; + } + + function $967($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $3_1 = 0, $6_1 = 0, $5_1 = 0, $2_1 = 0, $7_1 = 0, $4_1 = 0, $391_1 = 0, $398_1 = 0; + $2_1 = $0_1 + $1_1 | 0; + label$1 : { + label$2 : { + $3_1 = HEAP32[($0_1 + 4 | 0) >> 2] | 0; + if ($3_1 & 1 | 0) { + break label$2 + } + if (!($3_1 & 3 | 0)) { + break label$1 + } + $3_1 = HEAP32[$0_1 >> 2] | 0; + $1_1 = $3_1 + $1_1 | 0; + label$3 : { + $0_1 = $0_1 - $3_1 | 0; + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) == ($0_1 | 0)) { + break label$3 + } + $4_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + label$4 : { + if ($3_1 >>> 0 > 255 >>> 0) { + break label$4 + } + $5_1 = HEAP32[($0_1 + 12 | 0) >> 2] | 0; + label$5 : { + $6_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + $7_1 = $3_1 >>> 3 | 0; + $3_1 = ($7_1 << 3 | 0) + 28096 | 0; + if (($6_1 | 0) == ($3_1 | 0)) { + break label$5 + } + } + label$6 : { + if (($5_1 | 0) != ($6_1 | 0)) { + break label$6 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $7_1 | 0) | 0) | 0; + break label$2; + } + label$7 : { + if (($5_1 | 0) == ($3_1 | 0)) { + break label$7 + } + } + HEAP32[($6_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $6_1; + break label$2; + } + $7_1 = HEAP32[($0_1 + 24 | 0) >> 2] | 0; + label$8 : { + label$9 : { + $6_1 = HEAP32[($0_1 + 12 | 0) >> 2] | 0; + if (($6_1 | 0) == ($0_1 | 0)) { + break label$9 + } + label$10 : { + $3_1 = HEAP32[($0_1 + 8 | 0) >> 2] | 0; + if ($4_1 >>> 0 > $3_1 >>> 0) { + break label$10 + } + HEAP32[($3_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $3_1; + break label$8; + } + label$11 : { + $3_1 = $0_1 + 20 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + break label$11 + } + $3_1 = $0_1 + 16 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + break label$11 + } + $6_1 = 0; + break label$8; + } + label$12 : while (1) { + $4_1 = $3_1; + $6_1 = $5_1; + $3_1 = $6_1 + 20 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + continue label$12 + } + $3_1 = $6_1 + 16 | 0; + $5_1 = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + if ($5_1) { + continue label$12 + } + break label$12; + }; + HEAP32[$4_1 >> 2] = 0; + } + if (!$7_1) { + break label$2 + } + label$13 : { + label$14 : { + $5_1 = HEAP32[($0_1 + 28 | 0) >> 2] | 0; + $3_1 = ($5_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$3_1 >> 2] | 0 | 0) != ($0_1 | 0)) { + break label$14 + } + HEAP32[$3_1 >> 2] = $6_1; + if ($6_1) { + break label$13 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5_1 | 0) | 0) | 0; + break label$2; + } + HEAP32[($7_1 + ((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) == ($0_1 | 0) ? 16 : 20) | 0) >> 2] = $6_1; + if (!$6_1) { + break label$2 + } + } + HEAP32[($6_1 + 24 | 0) >> 2] = $7_1; + label$15 : { + $3_1 = HEAP32[($0_1 + 16 | 0) >> 2] | 0; + if (!$3_1) { + break label$15 + } + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $6_1; + } + $3_1 = HEAP32[($0_1 + 20 | 0) >> 2] | 0; + if (!$3_1) { + break label$2 + } + HEAP32[($6_1 + 20 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $6_1; + break label$2; + } + $3_1 = HEAP32[($2_1 + 4 | 0) >> 2] | 0; + if (($3_1 & 3 | 0 | 0) != (3 | 0)) { + break label$2 + } + HEAP32[(0 + 28064 | 0) >> 2] = $1_1; + HEAP32[($2_1 + 4 | 0) >> 2] = $3_1 & -2 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + HEAP32[$2_1 >> 2] = $1_1; + return; + } + label$16 : { + label$17 : { + $3_1 = HEAP32[($2_1 + 4 | 0) >> 2] | 0; + if ($3_1 & 2 | 0) { + break label$17 + } + label$18 : { + if ((HEAP32[(0 + 28080 | 0) >> 2] | 0 | 0) != ($2_1 | 0)) { + break label$18 + } + HEAP32[(0 + 28080 | 0) >> 2] = $0_1; + $1_1 = (HEAP32[(0 + 28068 | 0) >> 2] | 0) + $1_1 | 0; + HEAP32[(0 + 28068 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + if (($0_1 | 0) != (HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0)) { + break label$1 + } + HEAP32[(0 + 28064 | 0) >> 2] = 0; + HEAP32[(0 + 28076 | 0) >> 2] = 0; + return; + } + label$19 : { + if ((HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0) != ($2_1 | 0)) { + break label$19 + } + HEAP32[(0 + 28076 | 0) >> 2] = $0_1; + $1_1 = (HEAP32[(0 + 28064 | 0) >> 2] | 0) + $1_1 | 0; + HEAP32[(0 + 28064 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + HEAP32[($0_1 + $1_1 | 0) >> 2] = $1_1; + return; + } + $4_1 = HEAP32[(0 + 28072 | 0) >> 2] | 0; + $1_1 = ($3_1 & -8 | 0) + $1_1 | 0; + label$20 : { + label$21 : { + if ($3_1 >>> 0 > 255 >>> 0) { + break label$21 + } + $5_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + label$22 : { + $6_1 = HEAP32[($2_1 + 8 | 0) >> 2] | 0; + $2_1 = $3_1 >>> 3 | 0; + $3_1 = ($2_1 << 3 | 0) + 28096 | 0; + if (($6_1 | 0) == ($3_1 | 0)) { + break label$22 + } + } + label$23 : { + if (($5_1 | 0) != ($6_1 | 0)) { + break label$23 + } + HEAP32[(0 + 28056 | 0) >> 2] = (HEAP32[(0 + 28056 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $2_1 | 0) | 0) | 0; + break label$20; + } + label$24 : { + if (($5_1 | 0) == ($3_1 | 0)) { + break label$24 + } + } + HEAP32[($6_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $6_1; + break label$20; + } + $7_1 = HEAP32[($2_1 + 24 | 0) >> 2] | 0; + label$25 : { + label$26 : { + $6_1 = HEAP32[($2_1 + 12 | 0) >> 2] | 0; + if (($6_1 | 0) == ($2_1 | 0)) { + break label$26 + } + label$27 : { + $3_1 = HEAP32[($2_1 + 8 | 0) >> 2] | 0; + if ($4_1 >>> 0 > $3_1 >>> 0) { + break label$27 + } + HEAP32[($3_1 + 12 | 0) >> 2] | 0; + } + HEAP32[($3_1 + 12 | 0) >> 2] = $6_1; + HEAP32[($6_1 + 8 | 0) >> 2] = $3_1; + break label$25; + } + label$28 : { + $3_1 = $2_1 + 20 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + break label$28 + } + $3_1 = $2_1 + 16 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + break label$28 + } + $6_1 = 0; + break label$25; + } + label$29 : while (1) { + $4_1 = $3_1; + $6_1 = $5_1; + $3_1 = $6_1 + 20 | 0; + $5_1 = HEAP32[$3_1 >> 2] | 0; + if ($5_1) { + continue label$29 + } + $3_1 = $6_1 + 16 | 0; + $5_1 = HEAP32[($6_1 + 16 | 0) >> 2] | 0; + if ($5_1) { + continue label$29 + } + break label$29; + }; + HEAP32[$4_1 >> 2] = 0; + } + if (!$7_1) { + break label$20 + } + label$30 : { + label$31 : { + $5_1 = HEAP32[($2_1 + 28 | 0) >> 2] | 0; + $3_1 = ($5_1 << 2 | 0) + 28360 | 0; + if ((HEAP32[$3_1 >> 2] | 0 | 0) != ($2_1 | 0)) { + break label$31 + } + HEAP32[$3_1 >> 2] = $6_1; + if ($6_1) { + break label$30 + } + HEAP32[(0 + 28060 | 0) >> 2] = (HEAP32[(0 + 28060 | 0) >> 2] | 0) & (__wasm_rotl_i32(-2 | 0, $5_1 | 0) | 0) | 0; + break label$20; + } + HEAP32[($7_1 + ((HEAP32[($7_1 + 16 | 0) >> 2] | 0 | 0) == ($2_1 | 0) ? 16 : 20) | 0) >> 2] = $6_1; + if (!$6_1) { + break label$20 + } + } + HEAP32[($6_1 + 24 | 0) >> 2] = $7_1; + label$32 : { + $3_1 = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + if (!$3_1) { + break label$32 + } + HEAP32[($6_1 + 16 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $6_1; + } + $3_1 = HEAP32[($2_1 + 20 | 0) >> 2] | 0; + if (!$3_1) { + break label$20 + } + HEAP32[($6_1 + 20 | 0) >> 2] = $3_1; + HEAP32[($3_1 + 24 | 0) >> 2] = $6_1; + } + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + HEAP32[($0_1 + $1_1 | 0) >> 2] = $1_1; + if (($0_1 | 0) != (HEAP32[(0 + 28076 | 0) >> 2] | 0 | 0)) { + break label$16 + } + HEAP32[(0 + 28064 | 0) >> 2] = $1_1; + return; + } + HEAP32[($2_1 + 4 | 0) >> 2] = $3_1 & -2 | 0; + HEAP32[($0_1 + 4 | 0) >> 2] = $1_1 | 1 | 0; + HEAP32[($0_1 + $1_1 | 0) >> 2] = $1_1; + } + label$33 : { + if ($1_1 >>> 0 > 255 >>> 0) { + break label$33 + } + $3_1 = $1_1 >>> 3 | 0; + $1_1 = ($3_1 << 3 | 0) + 28096 | 0; + label$34 : { + label$35 : { + $5_1 = HEAP32[(0 + 28056 | 0) >> 2] | 0; + $3_1 = 1 << $3_1 | 0; + if ($5_1 & $3_1 | 0) { + break label$35 + } + HEAP32[(0 + 28056 | 0) >> 2] = $5_1 | $3_1 | 0; + $3_1 = $1_1; + break label$34; + } + $3_1 = HEAP32[($1_1 + 8 | 0) >> 2] | 0; + } + HEAP32[($1_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($3_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 12 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $3_1; + return; + } + $3_1 = 0; + label$36 : { + $5_1 = $1_1 >>> 8 | 0; + if (!$5_1) { + break label$36 + } + $3_1 = 31; + if ($1_1 >>> 0 > 16777215 >>> 0) { + break label$36 + } + $3_1 = (($5_1 + 1048320 | 0) >>> 16 | 0) & 8 | 0; + $5_1 = $5_1 << $3_1 | 0; + $391_1 = $5_1; + $5_1 = (($5_1 + 520192 | 0) >>> 16 | 0) & 4 | 0; + $6_1 = $391_1 << $5_1 | 0; + $398_1 = $6_1; + $6_1 = (($6_1 + 245760 | 0) >>> 16 | 0) & 2 | 0; + $3_1 = (($398_1 << $6_1 | 0) >>> 15 | 0) - ($5_1 | $3_1 | 0 | $6_1 | 0) | 0; + $3_1 = ($3_1 << 1 | 0 | (($1_1 >>> ($3_1 + 21 | 0) | 0) & 1 | 0) | 0) + 28 | 0; + } + HEAP32[($0_1 + 16 | 0) >> 2] = 0; + HEAP32[($0_1 + 20 | 0) >> 2] = 0; + HEAP32[($0_1 + 28 | 0) >> 2] = $3_1; + $5_1 = ($3_1 << 2 | 0) + 28360 | 0; + label$37 : { + label$38 : { + label$39 : { + $6_1 = HEAP32[(0 + 28060 | 0) >> 2] | 0; + $2_1 = 1 << $3_1 | 0; + if ($6_1 & $2_1 | 0) { + break label$39 + } + HEAP32[(0 + 28060 | 0) >> 2] = $6_1 | $2_1 | 0; + HEAP32[$5_1 >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $5_1; + break label$38; + } + $3_1 = $1_1 << (($3_1 | 0) == (31 | 0) ? 0 : 25 - ($3_1 >>> 1 | 0) | 0) | 0; + $6_1 = HEAP32[$5_1 >> 2] | 0; + label$40 : while (1) { + $5_1 = $6_1; + if (((HEAP32[($6_1 + 4 | 0) >> 2] | 0) & -8 | 0 | 0) == ($1_1 | 0)) { + break label$37 + } + $6_1 = $3_1 >>> 29 | 0; + $3_1 = $3_1 << 1 | 0; + $2_1 = ($5_1 + ($6_1 & 4 | 0) | 0) + 16 | 0; + $6_1 = HEAP32[$2_1 >> 2] | 0; + if ($6_1) { + continue label$40 + } + break label$40; + }; + HEAP32[$2_1 >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = $5_1; + } + HEAP32[($0_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $0_1; + return; + } + $1_1 = HEAP32[($5_1 + 8 | 0) >> 2] | 0; + HEAP32[($1_1 + 12 | 0) >> 2] = $0_1; + HEAP32[($5_1 + 8 | 0) >> 2] = $0_1; + HEAP32[($0_1 + 24 | 0) >> 2] = 0; + HEAP32[($0_1 + 12 | 0) >> 2] = $5_1; + HEAP32[($0_1 + 8 | 0) >> 2] = $1_1; + } + } + + function $968($0_1) { + $0_1 = $0_1 | 0; + var $2_1 = 0, $1_1 = 0, $3_1 = 0; + $1_1 = $0() | 0; + $2_1 = HEAP32[$1_1 >> 2] | 0; + $3_1 = ($0_1 + 3 | 0) & -4 | 0; + $0_1 = $2_1 + $3_1 | 0; + label$1 : { + label$2 : { + if (($3_1 | 0) < (1 | 0)) { + break label$2 + } + if ($0_1 >>> 0 <= $2_1 >>> 0) { + break label$1 + } + } + label$3 : { + if ($0_1 >>> 0 <= (__wasm_memory_size() << 16 | 0) >>> 0) { + break label$3 + } + if (!(fimport$9($0_1 | 0) | 0)) { + break label$1 + } + } + HEAP32[$1_1 >> 2] = $0_1; + return $2_1 | 0; + } + HEAP32[($842() | 0) >> 2] = 48; + return -1 | 0; + } + + function $969($0_1, $1_1, $1$hi, $2_1, $2$hi, $3_1, $3$hi, $4_1, $4$hi) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + $3$hi = $3$hi | 0; + $4_1 = $4_1 | 0; + $4$hi = $4$hi | 0; + var i64toi32_i32$3 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$5 = 0, $5_1 = 0, $12$hi = 0, $12_1 = 0, $8_1 = 0, i64toi32_i32$6 = 0, $9_1 = 0, $17$hi = 0, $6_1 = 0, $16$hi = 0, $17_1 = 0, $16_1 = 0, $15$hi = 0, $75_1 = 0, $7_1 = 0, $76_1 = 0, $77_1 = 0, $78_1 = 0, $13_1 = 0, $13$hi = 0, $14_1 = 0, $14$hi = 0, $15_1 = 0, $80_1 = 0, $81_1 = 0, $82_1 = 0, $83_1 = 0, $84_1 = 0, $85_1 = 0, $86_1 = 0, $87_1 = 0, $88_1 = 0, $89_1 = 0, $90_1 = 0, $91_1 = 0, $92_1 = 0, $93_1 = 0, $94_1 = 0, $95_1 = 0, $96_1 = 0, $97_1 = 0, $11_1 = 0, $10_1 = 0, $62_1 = 0, $62$hi = 0, $65$hi = 0, $67_1 = 0, $67$hi = 0, $69_1 = 0, $69$hi = 0, $70_1 = 0, $70$hi = 0, $77$hi = 0, $79_1 = 0, $79$hi = 0, $130$hi = 0, $133_1 = 0, $133$hi = 0, $139_1 = 0, $139$hi = 0, $143_1 = 0, $144$hi = 0, $151_1 = 0, $158_1 = 0, $159_1 = 0, $198_1 = 0, $198$hi = 0, $203_1 = 0, $204$hi = 0, $242_1 = 0, $242$hi = 0, $244$hi = 0, $253_1 = 0, $254_1 = 0, $254$hi = 0, $256_1 = 0, $256$hi = 0, $262$hi = 0, $263_1 = 0, $263$hi = 0, $270_1 = 0, $270$hi = 0, $275$hi = 0; + label$1 : { + $5_1 = global$0 - 128 | 0; + $10_1 = $5_1; + if ($5_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $10_1; + } + label$3 : { + label$4 : { + label$5 : { + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + if (!($935($3_1 | 0, i64toi32_i32$0 | 0, $4_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0) | 0)) { + break label$5 + } + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$2 = $4$hi; + $6_1 = $971($3_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$2 | 0) | 0; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = $2_1; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $75_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $75_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + $7_1 = $75_1; + $8_1 = $7_1 & 32767 | 0; + if (($8_1 | 0) == (32767 | 0)) { + break label$5 + } + if ($6_1) { + break label$4 + } + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $3$hi; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $4$hi; + $943($5_1 + 16 | 0 | 0, $1_1 | 0, i64toi32_i32$3 | 0, $2_1 | 0, i64toi32_i32$1 | 0, $3_1 | 0, i64toi32_i32$2 | 0, $4_1 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 16 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 20 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$0; + $4$hi = i64toi32_i32$2; + i64toi32_i32$1 = (i64toi32_i32$1 + 16 | 0) + 8 | 0; + i64toi32_i32$2 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$2; + $2$hi = i64toi32_i32$0; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$3 = i64toi32_i32$2; + $937($5_1 | 0, $4_1 | 0, i64toi32_i32$0 | 0, $2_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$0 | 0, $2_1 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$2 = $5_1 + 8 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$1; + i64toi32_i32$2 = $5_1; + i64toi32_i32$1 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$1; + $4$hi = i64toi32_i32$3; + break label$3; + } + label$6 : { + i64toi32_i32$3 = $1$hi; + $62_1 = $1_1; + $62$hi = i64toi32_i32$3; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = $8_1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $76_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $76_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $65$hi = i64toi32_i32$1; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$3 = $2_1; + i64toi32_i32$2 = 65535; + i64toi32_i32$0 = -1; + i64toi32_i32$2 = i64toi32_i32$1 & i64toi32_i32$2 | 0; + $67_1 = i64toi32_i32$3 & i64toi32_i32$0 | 0; + $67$hi = i64toi32_i32$2; + i64toi32_i32$2 = $65$hi; + i64toi32_i32$1 = $76_1; + i64toi32_i32$3 = $67$hi; + i64toi32_i32$0 = $67_1; + i64toi32_i32$3 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $12_1 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + $12$hi = i64toi32_i32$3; + $69_1 = $12_1; + $69$hi = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + $70_1 = $3_1; + $70$hi = i64toi32_i32$3; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $77_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $77_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $9_1 = $77_1 & 32767 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = $9_1; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $78_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $78_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + $77$hi = i64toi32_i32$2; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$3 = 65535; + i64toi32_i32$0 = -1; + i64toi32_i32$3 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $79_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $79$hi = i64toi32_i32$3; + i64toi32_i32$3 = $77$hi; + i64toi32_i32$2 = $78_1; + i64toi32_i32$1 = $79$hi; + i64toi32_i32$0 = $79_1; + i64toi32_i32$1 = i64toi32_i32$3 | i64toi32_i32$1 | 0; + $4_1 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $4$hi = i64toi32_i32$1; + i64toi32_i32$1 = $62$hi; + i64toi32_i32$2 = $69$hi; + i64toi32_i32$3 = $70$hi; + i64toi32_i32$0 = $4$hi; + if (($935($62_1 | 0, i64toi32_i32$1 | 0, $69_1 | 0, i64toi32_i32$2 | 0, $70_1 | 0, i64toi32_i32$3 | 0, $4_1 | 0, i64toi32_i32$0 | 0) | 0 | 0) > (0 | 0)) { + break label$6 + } + label$7 : { + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$1 = $4$hi; + if (!($935($1_1 | 0, i64toi32_i32$0 | 0, $12_1 | 0, i64toi32_i32$3 | 0, $3_1 | 0, i64toi32_i32$2 | 0, $4_1 | 0, i64toi32_i32$1 | 0) | 0)) { + break label$7 + } + i64toi32_i32$1 = $1$hi; + $4_1 = $1_1; + $4$hi = i64toi32_i32$1; + break label$3; + } + i64toi32_i32$1 = $1$hi; + i64toi32_i32$1 = $2$hi; + i64toi32_i32$1 = $1$hi; + i64toi32_i32$2 = $2$hi; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 0; + $943($5_1 + 112 | 0 | 0, $1_1 | 0, i64toi32_i32$1 | 0, $2_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$2 = $5_1 + 120 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$0; + $2$hi = i64toi32_i32$3; + i64toi32_i32$2 = $5_1; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 112 | 0) >> 2] | 0; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$2 + 116 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$3; + $4$hi = i64toi32_i32$0; + break label$3; + } + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = 1081540608; + $943($5_1 + 96 | 0 | 0, $1_1 | 0, i64toi32_i32$0 | 0, $12_1 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = $3$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 1081540608; + $943($5_1 + 80 | 0 | 0, $3_1 | 0, i64toi32_i32$1 | 0, $4_1 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0, 0 | 0, i64toi32_i32$0 | 0); + i64toi32_i32$0 = $12$hi; + i64toi32_i32$2 = ($5_1 + 96 | 0) + 8 | 0; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; + $13_1 = i64toi32_i32$0; + $13$hi = i64toi32_i32$3; + i64toi32_i32$4 = $8_1; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$1 = i64toi32_i32$4 ? $12_1 : $13_1; + i64toi32_i32$2 = i64toi32_i32$4 ? i64toi32_i32$3 : i64toi32_i32$0; + i64toi32_i32$4 = i64toi32_i32$1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$2 & i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$4 & i64toi32_i32$3 | 0; + i64toi32_i32$4 = 65536; + i64toi32_i32$3 = 0; + i64toi32_i32$4 = i64toi32_i32$1 | i64toi32_i32$4 | 0; + $12_1 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $12$hi = i64toi32_i32$4; + i64toi32_i32$4 = $4$hi; + i64toi32_i32$1 = ($5_1 + 80 | 0) + 8 | 0; + i64toi32_i32$4 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $14_1 = i64toi32_i32$4; + $14$hi = i64toi32_i32$2; + i64toi32_i32$0 = $9_1; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$4 = $14$hi; + i64toi32_i32$3 = i64toi32_i32$0 ? $4_1 : $14_1; + i64toi32_i32$1 = i64toi32_i32$0 ? i64toi32_i32$2 : i64toi32_i32$4; + i64toi32_i32$0 = i64toi32_i32$3; + i64toi32_i32$3 = 65535; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = i64toi32_i32$1 & i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$2 | 0; + i64toi32_i32$0 = 65536; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + $15_1 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $15$hi = i64toi32_i32$0; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$3 = $12_1; + i64toi32_i32$1 = $15$hi; + i64toi32_i32$2 = $15_1; + i64toi32_i32$4 = i64toi32_i32$3 - i64toi32_i32$2 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0; + i64toi32_i32$5 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$5 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + $130$hi = i64toi32_i32$5; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$0 = $5_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 96 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 100 | 0) >> 2] | 0; + $133_1 = i64toi32_i32$5; + $133$hi = i64toi32_i32$3; + i64toi32_i32$1 = $8_1; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$5 = $133$hi; + i64toi32_i32$2 = i64toi32_i32$1 ? $1_1 : $133_1; + i64toi32_i32$0 = i64toi32_i32$1 ? i64toi32_i32$3 : i64toi32_i32$5; + $4_1 = i64toi32_i32$2; + $4$hi = i64toi32_i32$0; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$1 = $5_1; + i64toi32_i32$0 = HEAP32[(i64toi32_i32$1 + 80 | 0) >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$1 + 84 | 0) >> 2] | 0; + $139_1 = i64toi32_i32$0; + $139$hi = i64toi32_i32$2; + i64toi32_i32$5 = $9_1; + i64toi32_i32$2 = $3$hi; + i64toi32_i32$0 = $139$hi; + i64toi32_i32$3 = i64toi32_i32$5 ? $3_1 : $139_1; + i64toi32_i32$1 = i64toi32_i32$5 ? i64toi32_i32$2 : i64toi32_i32$0; + $16_1 = i64toi32_i32$3; + $16$hi = i64toi32_i32$1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$3 = $16$hi; + i64toi32_i32$2 = $16_1; + $143_1 = i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$5 >>> 0 < i64toi32_i32$2 >>> 0 | 0) | 0; + i64toi32_i32$5 = 0; + $144$hi = i64toi32_i32$5; + i64toi32_i32$5 = $130$hi; + i64toi32_i32$2 = i64toi32_i32$4; + i64toi32_i32$1 = $144$hi; + i64toi32_i32$3 = $143_1; + i64toi32_i32$0 = i64toi32_i32$4 - i64toi32_i32$3 | 0; + i64toi32_i32$6 = i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + $17_1 = i64toi32_i32$0; + $17$hi = i64toi32_i32$4; + i64toi32_i32$5 = i64toi32_i32$0; + i64toi32_i32$2 = -1; + i64toi32_i32$3 = -1; + if ((i64toi32_i32$4 | 0) > (i64toi32_i32$2 | 0)) { + $80_1 = 1 + } else { + if ((i64toi32_i32$4 | 0) >= (i64toi32_i32$2 | 0)) { + if (i64toi32_i32$5 >>> 0 <= i64toi32_i32$3 >>> 0) { + $81_1 = 0 + } else { + $81_1 = 1 + } + $82_1 = $81_1; + } else { + $82_1 = 0 + } + $80_1 = $82_1; + } + $6_1 = $80_1; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$5 = $16$hi; + i64toi32_i32$5 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$2 = $16_1; + i64toi32_i32$1 = i64toi32_i32$3 - i64toi32_i32$2 | 0; + i64toi32_i32$6 = i64toi32_i32$3 >>> 0 < i64toi32_i32$2 >>> 0; + i64toi32_i32$0 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$0 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + $3_1 = i64toi32_i32$1; + $3$hi = i64toi32_i32$0; + label$8 : { + $151_1 = $8_1; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$5 = $13_1; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 48; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $83_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $83_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$4 | 0) | 0; + } + $8_1 = $8_1 ? $151_1 : $83_1 + -120 | 0; + $158_1 = $8_1; + $159_1 = $9_1; + i64toi32_i32$3 = $14$hi; + i64toi32_i32$0 = $14_1; + i64toi32_i32$5 = 0; + i64toi32_i32$2 = 48; + i64toi32_i32$4 = i64toi32_i32$2 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$2 & 63 | 0) >>> 0) { + i64toi32_i32$5 = 0; + $84_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$5 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $84_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $9_1 = $9_1 ? $159_1 : $84_1 + -120 | 0; + if (($158_1 | 0) <= ($9_1 | 0)) { + break label$8 + } + label$9 : while (1) { + label$10 : { + label$11 : { + if (!($6_1 & 1 | 0)) { + break label$11 + } + label$12 : { + i64toi32_i32$5 = $17$hi; + i64toi32_i32$5 = $3$hi; + i64toi32_i32$5 = $17$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$0 = $3$hi; + i64toi32_i32$2 = $3_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$3 | i64toi32_i32$2 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = 0; + if ((i64toi32_i32$5 | 0) != (i64toi32_i32$2 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$3 | 0) | 0) { + break label$12 + } + i64toi32_i32$5 = $1$hi; + i64toi32_i32$5 = $2$hi; + i64toi32_i32$5 = $1$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 0; + $943($5_1 + 32 | 0 | 0, $1_1 | 0, i64toi32_i32$5 | 0, $2_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$2 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$0 = $5_1 + 40 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$2; + i64toi32_i32$0 = $5_1; + i64toi32_i32$2 = HEAP32[(i64toi32_i32$0 + 32 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$0 + 36 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$2; + $4$hi = i64toi32_i32$3; + break label$3; + } + i64toi32_i32$3 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 63; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $85_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $85_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $12_1 = $85_1; + $12$hi = i64toi32_i32$2; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $86_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $86_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + $17_1 = $86_1; + $17$hi = i64toi32_i32$0; + break label$10; + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 63; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = 0; + $87_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$3 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $87_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $17_1 = $87_1; + $17$hi = i64toi32_i32$3; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$0 = $12_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $88_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $88_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $12_1 = $88_1; + $12$hi = i64toi32_i32$2; + i64toi32_i32$2 = $4$hi; + $3_1 = $4_1; + $3$hi = i64toi32_i32$2; + } + i64toi32_i32$2 = $17$hi; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$2 = $17$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$5 = $12_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $12_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $12$hi = i64toi32_i32$0; + i64toi32_i32$0 = $15$hi; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$2 = $12_1; + i64toi32_i32$3 = $15$hi; + i64toi32_i32$5 = $15_1; + i64toi32_i32$4 = i64toi32_i32$2 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$1 = i64toi32_i32$6 + i64toi32_i32$3 | 0; + i64toi32_i32$1 = i64toi32_i32$0 - i64toi32_i32$1 | 0; + $198_1 = i64toi32_i32$4; + $198$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$3 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$3 | 0; + $89_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$3 | 0) | 0; + $89_1 = i64toi32_i32$0 << i64toi32_i32$3 | 0; + } + $4_1 = $89_1; + $4$hi = i64toi32_i32$2; + i64toi32_i32$2 = $16$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$0 = $16$hi; + i64toi32_i32$5 = $16_1; + $203_1 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0; + i64toi32_i32$1 = 0; + $204$hi = i64toi32_i32$1; + i64toi32_i32$1 = $198$hi; + i64toi32_i32$5 = $198_1; + i64toi32_i32$2 = $204$hi; + i64toi32_i32$0 = $203_1; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$5 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$2 | 0; + i64toi32_i32$4 = i64toi32_i32$1 - i64toi32_i32$4 | 0; + $17_1 = i64toi32_i32$3; + $17$hi = i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$3; + i64toi32_i32$5 = -1; + i64toi32_i32$0 = -1; + if ((i64toi32_i32$4 | 0) > (i64toi32_i32$5 | 0)) { + $90_1 = 1 + } else { + if ((i64toi32_i32$4 | 0) >= (i64toi32_i32$5 | 0)) { + if (i64toi32_i32$1 >>> 0 <= i64toi32_i32$0 >>> 0) { + $91_1 = 0 + } else { + $91_1 = 1 + } + $92_1 = $91_1; + } else { + $92_1 = 0 + } + $90_1 = $92_1; + } + $6_1 = $90_1; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$4 = $16$hi; + i64toi32_i32$5 = $16_1; + i64toi32_i32$2 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + i64toi32_i32$6 = i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$1 - i64toi32_i32$3 | 0; + $3_1 = i64toi32_i32$2; + $3$hi = i64toi32_i32$3; + $8_1 = $8_1 + -1 | 0; + if (($8_1 | 0) > ($9_1 | 0)) { + continue label$9 + } + break label$9; + }; + $8_1 = $9_1; + } + label$13 : { + if (!$6_1) { + break label$13 + } + i64toi32_i32$3 = $17$hi; + $12_1 = $17_1; + $12$hi = i64toi32_i32$3; + i64toi32_i32$3 = $3$hi; + $4_1 = $3_1; + $4$hi = i64toi32_i32$3; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$3 = $4$hi; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$5 = $4_1; + i64toi32_i32$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$3 = i64toi32_i32$1 | i64toi32_i32$5 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 0; + if ((i64toi32_i32$3 | 0) != (i64toi32_i32$5 | 0) | (i64toi32_i32$0 | 0) != (i64toi32_i32$1 | 0) | 0) { + break label$13 + } + i64toi32_i32$3 = $1$hi; + i64toi32_i32$3 = $2$hi; + i64toi32_i32$3 = $1$hi; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$1 = 0; + $943($5_1 + 48 | 0 | 0, $1_1 | 0, i64toi32_i32$3 | 0, $2_1 | 0, i64toi32_i32$0 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$0 = $5_1 + 56 | 0; + i64toi32_i32$1 = HEAP32[i64toi32_i32$0 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$1; + $2$hi = i64toi32_i32$5; + i64toi32_i32$0 = $5_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$0 + 48 | 0) >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$0 + 52 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$5; + $4$hi = i64toi32_i32$1; + break label$3; + } + label$14 : { + i64toi32_i32$1 = $12$hi; + i64toi32_i32$0 = $12_1; + i64toi32_i32$5 = 65535; + i64toi32_i32$3 = -1; + if (i64toi32_i32$1 >>> 0 > i64toi32_i32$5 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$5 | 0) & i64toi32_i32$0 >>> 0 > i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$14 + } + label$15 : while (1) { + i64toi32_i32$0 = $4$hi; + i64toi32_i32$3 = $4_1; + i64toi32_i32$1 = 0; + i64toi32_i32$5 = 63; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $93_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $93_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + $2_1 = $93_1; + $2$hi = i64toi32_i32$1; + $8_1 = $8_1 + -1 | 0; + i64toi32_i32$1 = $4$hi; + i64toi32_i32$0 = $4_1; + i64toi32_i32$3 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $94_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $94_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $4_1 = $94_1; + $4$hi = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + $242_1 = $2_1; + $242$hi = i64toi32_i32$3; + i64toi32_i32$3 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$0 = 0; + i64toi32_i32$5 = 1; + i64toi32_i32$4 = i64toi32_i32$5 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$5 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $95_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $95_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $244$hi = i64toi32_i32$0; + i64toi32_i32$0 = $242$hi; + i64toi32_i32$3 = $242_1; + i64toi32_i32$1 = $244$hi; + i64toi32_i32$5 = $95_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $12_1 = i64toi32_i32$3 | i64toi32_i32$5 | 0; + $12$hi = i64toi32_i32$1; + i64toi32_i32$0 = $12_1; + i64toi32_i32$3 = 65536; + i64toi32_i32$5 = 0; + if (i64toi32_i32$1 >>> 0 < i64toi32_i32$3 >>> 0 | ((i64toi32_i32$1 | 0) == (i64toi32_i32$3 | 0) & i64toi32_i32$0 >>> 0 < i64toi32_i32$5 >>> 0 | 0) | 0) { + continue label$15 + } + break label$15; + }; + } + $6_1 = $7_1 & 32768 | 0; + label$16 : { + if (($8_1 | 0) > (0 | 0)) { + break label$16 + } + $253_1 = $5_1 + 64 | 0; + i64toi32_i32$0 = $4$hi; + $254_1 = $4_1; + $254$hi = i64toi32_i32$0; + i64toi32_i32$0 = $12$hi; + i64toi32_i32$5 = $12_1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $256_1 = i64toi32_i32$5 & i64toi32_i32$3 | 0; + $256$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = $8_1 + 120 | 0 | $6_1 | 0; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$5 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $96_1 = 0; + } else { + i64toi32_i32$5 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $96_1 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + } + $262$hi = i64toi32_i32$5; + i64toi32_i32$5 = $256$hi; + i64toi32_i32$1 = $256_1; + i64toi32_i32$0 = $262$hi; + i64toi32_i32$3 = $96_1; + i64toi32_i32$0 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $263_1 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $263$hi = i64toi32_i32$0; + i64toi32_i32$0 = $254$hi; + i64toi32_i32$1 = $263$hi; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = 1065811968; + $943($253_1 | 0, $254_1 | 0, i64toi32_i32$0 | 0, $263_1 | 0, i64toi32_i32$1 | 0, 0 | 0, i64toi32_i32$5 | 0, 0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$1 = $5_1 + 72 | 0; + i64toi32_i32$3 = HEAP32[i64toi32_i32$1 >> 2] | 0; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] | 0; + $2_1 = i64toi32_i32$3; + $2$hi = i64toi32_i32$5; + i64toi32_i32$1 = $5_1; + i64toi32_i32$5 = HEAP32[(i64toi32_i32$1 + 64 | 0) >> 2] | 0; + i64toi32_i32$3 = HEAP32[(i64toi32_i32$1 + 68 | 0) >> 2] | 0; + $4_1 = i64toi32_i32$5; + $4$hi = i64toi32_i32$3; + break label$3; + } + i64toi32_i32$3 = $12$hi; + i64toi32_i32$1 = $12_1; + i64toi32_i32$5 = 65535; + i64toi32_i32$0 = -1; + i64toi32_i32$5 = i64toi32_i32$3 & i64toi32_i32$5 | 0; + $270_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $270$hi = i64toi32_i32$5; + i64toi32_i32$5 = 0; + i64toi32_i32$3 = $8_1 | $6_1 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 48; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $97_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$4 | 0) | 0; + $97_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + $275$hi = i64toi32_i32$1; + i64toi32_i32$1 = $270$hi; + i64toi32_i32$5 = $270_1; + i64toi32_i32$3 = $275$hi; + i64toi32_i32$0 = $97_1; + i64toi32_i32$3 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $2_1 = i64toi32_i32$5 | i64toi32_i32$0 | 0; + $2$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = $4$hi; + i64toi32_i32$5 = $0_1; + HEAP32[i64toi32_i32$5 >> 2] = $4_1; + HEAP32[(i64toi32_i32$5 + 4 | 0) >> 2] = i64toi32_i32$3; + i64toi32_i32$3 = $2$hi; + HEAP32[(i64toi32_i32$5 + 8 | 0) >> 2] = $2_1; + HEAP32[(i64toi32_i32$5 + 12 | 0) >> 2] = i64toi32_i32$3; + label$17 : { + $11_1 = $5_1 + 128 | 0; + if ($11_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $11_1; + } + } + + function $970($0_1, $1_1) { + $0_1 = +$0_1; + $1_1 = $1_1 | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $32_1 = 0.0, i64toi32_i32$0 = 0; + label$1 : { + label$2 : { + if (($1_1 | 0) < (1024 | 0)) { + break label$2 + } + $0_1 = $0_1 * 8988465674311579538646525.0e283; + label$3 : { + if (($1_1 | 0) >= (2047 | 0)) { + break label$3 + } + $1_1 = $1_1 + -1023 | 0; + break label$1; + } + $0_1 = $0_1 * 8988465674311579538646525.0e283; + $1_1 = (($1_1 | 0) < (3069 | 0) ? $1_1 : 3069) + -2046 | 0; + break label$1; + } + if (($1_1 | 0) > (-1023 | 0)) { + break label$1 + } + $0_1 = $0_1 * 2.2250738585072014e-308; + label$4 : { + if (($1_1 | 0) <= (-2045 | 0)) { + break label$4 + } + $1_1 = $1_1 + 1022 | 0; + break label$1; + } + $0_1 = $0_1 * 2.2250738585072014e-308; + $1_1 = (($1_1 | 0) > (-3066 | 0) ? $1_1 : -3066) + 2044 | 0; + } + $32_1 = $0_1; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $1_1 + 1023 | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 52; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $8_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $8_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + wasm2js_scratch_store_i32(0 | 0, $8_1 | 0); + wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); + return +($32_1 * +wasm2js_scratch_load_f64()); + } + + function $971($0_1, $0$hi, $1_1, $1$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, $4$hi = 0, $4_1 = 0, $13_1 = 0, $2_1 = 0, $3_1 = 0; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 65535; + i64toi32_i32$3 = -1; + i64toi32_i32$1 = i64toi32_i32$0 & i64toi32_i32$1 | 0; + $4_1 = i64toi32_i32$2 & i64toi32_i32$3 | 0; + $4$hi = i64toi32_i32$1; + label$1 : { + label$2 : { + i64toi32_i32$1 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 48; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $13_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $2_1 = $13_1 & 32767 | 0; + if (($2_1 | 0) == (32767 | 0)) { + break label$2 + } + $3_1 = 4; + if ($2_1) { + break label$1 + } + i64toi32_i32$2 = $4$hi; + i64toi32_i32$2 = $0$hi; + i64toi32_i32$2 = $4$hi; + i64toi32_i32$1 = $4_1; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + return (!(i64toi32_i32$1 | i64toi32_i32$3 | 0 | i64toi32_i32$0 | 0) ? 2 : 3) | 0; + } + i64toi32_i32$0 = $4$hi; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$0 = $4$hi; + i64toi32_i32$2 = $4_1; + i64toi32_i32$1 = $0$hi; + i64toi32_i32$3 = $0_1; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $3_1 = !(i64toi32_i32$2 | i64toi32_i32$3 | 0 | i64toi32_i32$1 | 0); + } + return $3_1 | 0; + } + + function $972($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $4_1 = 0, $3_1 = 0, $5_1 = 0; + label$1 : { + if ($2_1 >>> 0 < 512 >>> 0) { + break label$1 + } + fimport$10($0_1 | 0, $1_1 | 0, $2_1 | 0) | 0; + return $0_1 | 0; + } + $3_1 = $0_1 + $2_1 | 0; + label$2 : { + label$3 : { + if (($1_1 ^ $0_1 | 0) & 3 | 0) { + break label$3 + } + label$4 : { + label$5 : { + if (($2_1 | 0) >= (1 | 0)) { + break label$5 + } + $2_1 = $0_1; + break label$4; + } + label$6 : { + if ($0_1 & 3 | 0) { + break label$6 + } + $2_1 = $0_1; + break label$4; + } + $2_1 = $0_1; + label$7 : while (1) { + HEAP8[$2_1 >> 0] = HEAPU8[$1_1 >> 0] | 0; + $1_1 = $1_1 + 1 | 0; + $2_1 = $2_1 + 1 | 0; + if ($2_1 >>> 0 >= $3_1 >>> 0) { + break label$4 + } + if ($2_1 & 3 | 0) { + continue label$7 + } + break label$7; + }; + } + label$8 : { + $4_1 = $3_1 & -4 | 0; + if ($4_1 >>> 0 < 64 >>> 0) { + break label$8 + } + $5_1 = $4_1 + -64 | 0; + if ($2_1 >>> 0 > $5_1 >>> 0) { + break label$8 + } + label$9 : while (1) { + HEAP32[$2_1 >> 2] = HEAP32[$1_1 >> 2] | 0; + HEAP32[($2_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0; + HEAP32[($2_1 + 8 | 0) >> 2] = HEAP32[($1_1 + 8 | 0) >> 2] | 0; + HEAP32[($2_1 + 12 | 0) >> 2] = HEAP32[($1_1 + 12 | 0) >> 2] | 0; + HEAP32[($2_1 + 16 | 0) >> 2] = HEAP32[($1_1 + 16 | 0) >> 2] | 0; + HEAP32[($2_1 + 20 | 0) >> 2] = HEAP32[($1_1 + 20 | 0) >> 2] | 0; + HEAP32[($2_1 + 24 | 0) >> 2] = HEAP32[($1_1 + 24 | 0) >> 2] | 0; + HEAP32[($2_1 + 28 | 0) >> 2] = HEAP32[($1_1 + 28 | 0) >> 2] | 0; + HEAP32[($2_1 + 32 | 0) >> 2] = HEAP32[($1_1 + 32 | 0) >> 2] | 0; + HEAP32[($2_1 + 36 | 0) >> 2] = HEAP32[($1_1 + 36 | 0) >> 2] | 0; + HEAP32[($2_1 + 40 | 0) >> 2] = HEAP32[($1_1 + 40 | 0) >> 2] | 0; + HEAP32[($2_1 + 44 | 0) >> 2] = HEAP32[($1_1 + 44 | 0) >> 2] | 0; + HEAP32[($2_1 + 48 | 0) >> 2] = HEAP32[($1_1 + 48 | 0) >> 2] | 0; + HEAP32[($2_1 + 52 | 0) >> 2] = HEAP32[($1_1 + 52 | 0) >> 2] | 0; + HEAP32[($2_1 + 56 | 0) >> 2] = HEAP32[($1_1 + 56 | 0) >> 2] | 0; + HEAP32[($2_1 + 60 | 0) >> 2] = HEAP32[($1_1 + 60 | 0) >> 2] | 0; + $1_1 = $1_1 + 64 | 0; + $2_1 = $2_1 + 64 | 0; + if ($2_1 >>> 0 <= $5_1 >>> 0) { + continue label$9 + } + break label$9; + }; + } + if ($2_1 >>> 0 >= $4_1 >>> 0) { + break label$2 + } + label$10 : while (1) { + HEAP32[$2_1 >> 2] = HEAP32[$1_1 >> 2] | 0; + $1_1 = $1_1 + 4 | 0; + $2_1 = $2_1 + 4 | 0; + if ($2_1 >>> 0 < $4_1 >>> 0) { + continue label$10 + } + break label$2; + }; + } + label$11 : { + if ($3_1 >>> 0 >= 4 >>> 0) { + break label$11 + } + $2_1 = $0_1; + break label$2; + } + label$12 : { + $4_1 = $3_1 + -4 | 0; + if ($4_1 >>> 0 >= $0_1 >>> 0) { + break label$12 + } + $2_1 = $0_1; + break label$2; + } + $2_1 = $0_1; + label$13 : while (1) { + HEAP8[$2_1 >> 0] = HEAPU8[$1_1 >> 0] | 0; + HEAP8[($2_1 + 1 | 0) >> 0] = HEAPU8[($1_1 + 1 | 0) >> 0] | 0; + HEAP8[($2_1 + 2 | 0) >> 0] = HEAPU8[($1_1 + 2 | 0) >> 0] | 0; + HEAP8[($2_1 + 3 | 0) >> 0] = HEAPU8[($1_1 + 3 | 0) >> 0] | 0; + $1_1 = $1_1 + 4 | 0; + $2_1 = $2_1 + 4 | 0; + if ($2_1 >>> 0 <= $4_1 >>> 0) { + continue label$13 + } + break label$13; + }; + } + label$14 : { + if ($2_1 >>> 0 >= $3_1 >>> 0) { + break label$14 + } + label$15 : while (1) { + HEAP8[$2_1 >> 0] = HEAPU8[$1_1 >> 0] | 0; + $1_1 = $1_1 + 1 | 0; + $2_1 = $2_1 + 1 | 0; + if (($2_1 | 0) != ($3_1 | 0)) { + continue label$15 + } + break label$15; + }; + } + return $0_1 | 0; + } + + function $973($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, $4_1 = 0, $6_1 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, $6$hi = 0, i64toi32_i32$3 = 0, $5_1 = 0, $14_1 = 0, $104$hi = 0; + label$1 : { + if (!$2_1) { + break label$1 + } + $3_1 = $2_1 + $0_1 | 0; + HEAP8[($3_1 + -1 | 0) >> 0] = $1_1; + HEAP8[$0_1 >> 0] = $1_1; + if ($2_1 >>> 0 < 3 >>> 0) { + break label$1 + } + HEAP8[($3_1 + -2 | 0) >> 0] = $1_1; + HEAP8[($0_1 + 1 | 0) >> 0] = $1_1; + HEAP8[($3_1 + -3 | 0) >> 0] = $1_1; + HEAP8[($0_1 + 2 | 0) >> 0] = $1_1; + if ($2_1 >>> 0 < 7 >>> 0) { + break label$1 + } + HEAP8[($3_1 + -4 | 0) >> 0] = $1_1; + HEAP8[($0_1 + 3 | 0) >> 0] = $1_1; + if ($2_1 >>> 0 < 9 >>> 0) { + break label$1 + } + $4_1 = (0 - $0_1 | 0) & 3 | 0; + $3_1 = $0_1 + $4_1 | 0; + $1_1 = Math_imul($1_1 & 255 | 0, 16843009); + HEAP32[$3_1 >> 2] = $1_1; + $4_1 = ($2_1 - $4_1 | 0) & -4 | 0; + $2_1 = $3_1 + $4_1 | 0; + HEAP32[($2_1 + -4 | 0) >> 2] = $1_1; + if ($4_1 >>> 0 < 9 >>> 0) { + break label$1 + } + HEAP32[($3_1 + 8 | 0) >> 2] = $1_1; + HEAP32[($3_1 + 4 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -8 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -12 | 0) >> 2] = $1_1; + if ($4_1 >>> 0 < 25 >>> 0) { + break label$1 + } + HEAP32[($3_1 + 24 | 0) >> 2] = $1_1; + HEAP32[($3_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($3_1 + 16 | 0) >> 2] = $1_1; + HEAP32[($3_1 + 12 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -16 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -20 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -24 | 0) >> 2] = $1_1; + HEAP32[($2_1 + -28 | 0) >> 2] = $1_1; + $5_1 = $3_1 & 4 | 0 | 24 | 0; + $2_1 = $4_1 - $5_1 | 0; + if ($2_1 >>> 0 < 32 >>> 0) { + break label$1 + } + i64toi32_i32$0 = 0; + $6_1 = $1_1; + $6$hi = i64toi32_i32$0; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $14_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $14_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $104$hi = i64toi32_i32$1; + i64toi32_i32$1 = $6$hi; + i64toi32_i32$1 = $104$hi; + i64toi32_i32$0 = $14_1; + i64toi32_i32$2 = $6$hi; + i64toi32_i32$3 = $6_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $6_1 = i64toi32_i32$0 | $6_1 | 0; + $6$hi = i64toi32_i32$2; + $1_1 = $3_1 + $5_1 | 0; + label$2 : while (1) { + i64toi32_i32$2 = $6$hi; + i64toi32_i32$0 = $1_1; + HEAP32[($1_1 + 24 | 0) >> 2] = $6_1; + HEAP32[($1_1 + 28 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$0 = $1_1; + HEAP32[($1_1 + 16 | 0) >> 2] = $6_1; + HEAP32[($1_1 + 20 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$0 = $1_1; + HEAP32[($1_1 + 8 | 0) >> 2] = $6_1; + HEAP32[($1_1 + 12 | 0) >> 2] = i64toi32_i32$2; + i64toi32_i32$0 = $1_1; + HEAP32[$1_1 >> 2] = $6_1; + HEAP32[($1_1 + 4 | 0) >> 2] = i64toi32_i32$2; + $1_1 = $1_1 + 32 | 0; + $2_1 = $2_1 + -32 | 0; + if ($2_1 >>> 0 > 31 >>> 0) { + continue label$2 + } + break label$2; + }; + } + return $0_1 | 0; + } + + function $974($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0; + $1_1 = HEAPU8[($0_1 + 74 | 0) >> 0] | 0; + HEAP8[($0_1 + 74 | 0) >> 0] = $1_1 + -1 | 0 | $1_1 | 0; + label$1 : { + $1_1 = HEAP32[$0_1 >> 2] | 0; + if (!($1_1 & 8 | 0)) { + break label$1 + } + HEAP32[$0_1 >> 2] = $1_1 | 32 | 0; + return -1 | 0; + } + HEAP32[($0_1 + 4 | 0) >> 2] = 0; + HEAP32[($0_1 + 8 | 0) >> 2] = 0; + $1_1 = HEAP32[($0_1 + 44 | 0) >> 2] | 0; + HEAP32[($0_1 + 28 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 20 | 0) >> 2] = $1_1; + HEAP32[($0_1 + 16 | 0) >> 2] = $1_1 + (HEAP32[($0_1 + 48 | 0) >> 2] | 0) | 0; + return 0 | 0; + } + + function $975($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + var $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0; + label$1 : { + label$2 : { + $3_1 = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + if ($3_1) { + break label$2 + } + $4_1 = 0; + if ($974($2_1 | 0) | 0) { + break label$1 + } + $3_1 = HEAP32[($2_1 + 16 | 0) >> 2] | 0; + } + label$3 : { + $5_1 = HEAP32[($2_1 + 20 | 0) >> 2] | 0; + if (($3_1 - $5_1 | 0) >>> 0 >= $1_1 >>> 0) { + break label$3 + } + return FUNCTION_TABLE[HEAP32[($2_1 + 36 | 0) >> 2] | 0]($2_1, $0_1, $1_1) | 0 | 0; + } + $6_1 = 0; + label$4 : { + if ((HEAP8[($2_1 + 75 | 0) >> 0] | 0 | 0) < (0 | 0)) { + break label$4 + } + $4_1 = $1_1; + label$5 : while (1) { + $3_1 = $4_1; + if (!$3_1) { + break label$4 + } + $4_1 = $3_1 + -1 | 0; + if ((HEAPU8[($0_1 + $4_1 | 0) >> 0] | 0 | 0) != (10 | 0)) { + continue label$5 + } + break label$5; + }; + $4_1 = FUNCTION_TABLE[HEAP32[($2_1 + 36 | 0) >> 2] | 0]($2_1, $0_1, $3_1) | 0; + if ($4_1 >>> 0 < $3_1 >>> 0) { + break label$1 + } + $1_1 = $1_1 - $3_1 | 0; + $0_1 = $0_1 + $3_1 | 0; + $5_1 = HEAP32[($2_1 + 20 | 0) >> 2] | 0; + $6_1 = $3_1; + } + $972($5_1 | 0, $0_1 | 0, $1_1 | 0) | 0; + HEAP32[($2_1 + 20 | 0) >> 2] = (HEAP32[($2_1 + 20 | 0) >> 2] | 0) + $1_1 | 0; + $4_1 = $6_1 + $1_1 | 0; + } + return $4_1 | 0; + } + + function $976($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var $4_1 = 0, $5_1 = 0; + $4_1 = Math_imul($2_1, $1_1); + label$1 : { + label$2 : { + if ((HEAP32[($3_1 + 76 | 0) >> 2] | 0 | 0) > (-1 | 0)) { + break label$2 + } + $0_1 = $975($0_1 | 0, $4_1 | 0, $3_1 | 0) | 0; + break label$1; + } + $5_1 = $978($3_1 | 0) | 0; + $0_1 = $975($0_1 | 0, $4_1 | 0, $3_1 | 0) | 0; + if (!$5_1) { + break label$1 + } + $979($3_1 | 0); + } + label$3 : { + if (($0_1 | 0) != ($4_1 | 0)) { + break label$3 + } + return ($1_1 ? $2_1 : 0) | 0; + } + return ($0_1 >>> 0) / ($1_1 >>> 0) | 0 | 0; + } + + function $977($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var $2_1 = 0, $4_1 = 0, $3_1 = 0; + label$1 : { + $2_1 = global$0 - 16 | 0; + $3_1 = $2_1; + if ($2_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $3_1; + } + HEAP32[($2_1 + 12 | 0) >> 2] = $1_1; + $1_1 = $889(HEAP32[(0 + 21080 | 0) >> 2] | 0 | 0, $0_1 | 0, $1_1 | 0) | 0; + label$3 : { + $4_1 = $2_1 + 16 | 0; + if ($4_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $4_1; + } + return $1_1 | 0; + } + + function $978($0_1) { + $0_1 = $0_1 | 0; + return 1 | 0; + } + + function $979($0_1) { + $0_1 = $0_1 | 0; + } + + function $980($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0, $3_1 = 0; + $1_1 = $0_1; + label$1 : { + label$2 : { + if (!($0_1 & 3 | 0)) { + break label$2 + } + label$3 : { + if (HEAPU8[$0_1 >> 0] | 0) { + break label$3 + } + return $0_1 - $0_1 | 0 | 0; + } + $1_1 = $0_1; + label$4 : while (1) { + $1_1 = $1_1 + 1 | 0; + if (!($1_1 & 3 | 0)) { + break label$2 + } + if (!(HEAPU8[$1_1 >> 0] | 0)) { + break label$1 + } + continue label$4; + }; + } + label$5 : while (1) { + $2_1 = $1_1; + $1_1 = $1_1 + 4 | 0; + $3_1 = HEAP32[$2_1 >> 2] | 0; + if (!((($3_1 ^ -1 | 0) & ($3_1 + -16843009 | 0) | 0) & -2139062144 | 0)) { + continue label$5 + } + break label$5; + }; + label$6 : { + if ($3_1 & 255 | 0) { + break label$6 + } + return $2_1 - $0_1 | 0 | 0; + } + label$7 : while (1) { + $3_1 = HEAPU8[($2_1 + 1 | 0) >> 0] | 0; + $1_1 = $2_1 + 1 | 0; + $2_1 = $1_1; + if ($3_1) { + continue label$7 + } + break label$7; + }; + } + return $1_1 - $0_1 | 0 | 0; + } + + function $981($0_1) { + $0_1 = $0_1 | 0; + global$2 = $0_1; + } + + function $982() { + return global$0 | 0; + } + + function $983($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0, $2_1 = 0; + label$1 : { + $1_1 = (global$0 - $0_1 | 0) & -16 | 0; + $2_1 = $1_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $2_1; + } + return $1_1 | 0; + } + + function $984($0_1) { + $0_1 = $0_1 | 0; + var $1_1 = 0; + $1_1 = $0_1; + if ($1_1 >>> 0 < global$2 >>> 0) { + fimport$11() + } + global$0 = $1_1; + } + + function $985($0_1) { + $0_1 = $0_1 | 0; + return abort() | 0; + } + + function $986($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + return FUNCTION_TABLE[$0_1]($1_1, $2_1) | 0 | 0; + } + + function $987($0_1, $1_1, $2_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + FUNCTION_TABLE[$0_1]($1_1, $2_1); + } + + function $988($0_1, $1_1, $2_1, $2$hi, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $2$hi = $2$hi | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = $2$hi; + i64toi32_i32$0 = FUNCTION_TABLE[$0_1]($1_1, $2_1, i64toi32_i32$0, $3_1) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $989($0_1, $1_1, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + return FUNCTION_TABLE[$0_1]($1_1, $2_1, $3_1) | 0 | 0; + } + + function $990($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + return FUNCTION_TABLE[$0_1]($1_1) | 0 | 0; + } + + function $991($0_1, $1_1, $2_1, $3_1, $4_1, $5_1, $6_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = +$2_1; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + $6_1 = $6_1 | 0; + return FUNCTION_TABLE[$0_1]($1_1, $2_1, $3_1, $4_1, $5_1, $6_1) | 0 | 0; + } + + function $992($0_1, $1_1, $2_1, $3_1, $4_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + $4_1 = $4_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $17_1 = 0, $18_1 = 0, $6_1 = 0, $7_1 = 0, $9_1 = 0, $9$hi = 0, $12$hi = 0, $5_1 = 0, $5$hi = 0; + $6_1 = $0_1; + $7_1 = $1_1; + i64toi32_i32$0 = 0; + $9_1 = $2_1; + $9$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $3_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $17_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $17_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $12$hi = i64toi32_i32$1; + i64toi32_i32$1 = $9$hi; + i64toi32_i32$0 = $9_1; + i64toi32_i32$2 = $12$hi; + i64toi32_i32$3 = $17_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $988($6_1 | 0, $7_1 | 0, i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, $4_1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $5_1 = i64toi32_i32$2; + $5$hi = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $18_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $18_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } + fimport$12($18_1 | 0); + i64toi32_i32$2 = $5$hi; + return $5_1 | 0; + } + + function $993($0_1, $1_1, $1$hi, $2_1, $3_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $1$hi = $1$hi | 0; + $2_1 = $2_1 | 0; + $3_1 = $3_1 | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $4_1 = 0, $6_1 = 0, i64toi32_i32$2 = 0; + $4_1 = $0_1; + i64toi32_i32$0 = $1$hi; + $6_1 = $1_1; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $12_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $12_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + return fimport$13($4_1 | 0, $6_1 | 0, $12_1 | 0, $2_1 | 0, $3_1 | 0) | 0 | 0; + } + + function legalfunc$wasm2js_scratch_store_i64($0_1, $0$hi) { + $0_1 = $0_1 | 0; + $0$hi = $0$hi | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $8_1 = 0, $2_1 = 0, i64toi32_i32$2 = 0; + i64toi32_i32$0 = $0$hi; + $2_1 = $0_1; + i64toi32_i32$2 = $0_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $8_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $8_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + legalimport$wasm2js_scratch_store_i64($2_1 | 0, $8_1 | 0); + } + + function _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, var$2 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, var$3 = 0, var$4 = 0, var$5 = 0, $21_1 = 0, $22_1 = 0, var$6 = 0, $24_1 = 0, $17_1 = 0, $18_1 = 0, $23_1 = 0, $29_1 = 0, $45_1 = 0, $56$hi = 0, $62$hi = 0; + i64toi32_i32$0 = var$1$hi; + var$2 = var$1; + var$4 = var$2 >>> 16 | 0; + i64toi32_i32$0 = var$0$hi; + var$3 = var$0; + var$5 = var$3 >>> 16 | 0; + $17_1 = Math_imul(var$4, var$5); + $18_1 = var$2; + i64toi32_i32$2 = var$3; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $21_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $21_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + $23_1 = $17_1 + Math_imul($18_1, $21_1) | 0; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $22_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $22_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + $29_1 = $23_1 + Math_imul($22_1, var$3) | 0; + var$2 = var$2 & 65535 | 0; + var$3 = var$3 & 65535 | 0; + var$6 = Math_imul(var$2, var$3); + var$2 = (var$6 >>> 16 | 0) + Math_imul(var$2, var$5) | 0; + $45_1 = $29_1 + (var$2 >>> 16 | 0) | 0; + var$2 = (var$2 & 65535 | 0) + Math_imul(var$4, var$3) | 0; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $45_1 + (var$2 >>> 16 | 0) | 0; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $24_1 = 0; + } else { + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $24_1 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + } + $56$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + $62$hi = i64toi32_i32$0; + i64toi32_i32$0 = $56$hi; + i64toi32_i32$2 = $24_1; + i64toi32_i32$1 = $62$hi; + i64toi32_i32$3 = var$2 << 16 | 0 | (var$6 & 65535 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + i64toi32_i32$2 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + + function _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$5 = 0, var$2 = 0, var$3 = 0, var$4 = 0, var$5 = 0, var$5$hi = 0, var$6 = 0, var$6$hi = 0, i64toi32_i32$6 = 0, $37_1 = 0, $38_1 = 0, $39_1 = 0, $40_1 = 0, $41_1 = 0, $42_1 = 0, $43_1 = 0, $44_1 = 0, var$8$hi = 0, $45_1 = 0, $46_1 = 0, $47_1 = 0, $48_1 = 0, var$7$hi = 0, $49_1 = 0, $63$hi = 0, $65_1 = 0, $65$hi = 0, $120$hi = 0, $129$hi = 0, $134$hi = 0, var$8 = 0, $140_1 = 0, $140$hi = 0, $142$hi = 0, $144_1 = 0, $144$hi = 0, $151_1 = 0, $151$hi = 0, $154$hi = 0, var$7 = 0, $165$hi = 0; + label$1 : { + label$2 : { + label$3 : { + label$4 : { + label$5 : { + label$6 : { + label$7 : { + label$8 : { + label$9 : { + label$10 : { + label$11 : { + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$2 = var$0; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $37_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $37_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + var$2 = $37_1; + if (var$2) { + block : { + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + if (!var$3) { + break label$11 + } + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $38_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0; + $38_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$0 >>> i64toi32_i32$4 | 0) | 0; + } + var$4 = $38_1; + if (!var$4) { + break label$9 + } + var$2 = Math_clz32(var$4) - Math_clz32(var$2) | 0; + if (var$2 >>> 0 <= 31 >>> 0) { + break label$8 + } + break label$2; + } + } + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = 0; + if (i64toi32_i32$2 >>> 0 > i64toi32_i32$0 >>> 0 | ((i64toi32_i32$2 | 0) == (i64toi32_i32$0 | 0) & i64toi32_i32$1 >>> 0 >= i64toi32_i32$3 >>> 0 | 0) | 0) { + break label$2 + } + i64toi32_i32$1 = var$0$hi; + var$2 = var$0; + i64toi32_i32$1 = var$1$hi; + var$3 = var$1; + var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$1 = 0; + legalfunc$wasm2js_scratch_store_i64(var$0 - Math_imul(var$2, var$3) | 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$2; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$3 = var$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $39_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $39_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + var$3 = $39_1; + i64toi32_i32$1 = var$0$hi; + if (!var$0) { + break label$7 + } + if (!var$3) { + break label$6 + } + var$4 = var$3 + -1 | 0; + if (var$4 & var$3 | 0) { + break label$6 + } + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$4 & var$2 | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$3 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $40_1 = 0; + } else { + i64toi32_i32$3 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $40_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $63$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$1 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = -1; + i64toi32_i32$2 = i64toi32_i32$3 & i64toi32_i32$2 | 0; + $65_1 = i64toi32_i32$1 & i64toi32_i32$0 | 0; + $65$hi = i64toi32_i32$2; + i64toi32_i32$2 = $63$hi; + i64toi32_i32$3 = $40_1; + i64toi32_i32$1 = $65$hi; + i64toi32_i32$0 = $65_1; + i64toi32_i32$1 = i64toi32_i32$2 | i64toi32_i32$1 | 0; + legalfunc$wasm2js_scratch_store_i64(i64toi32_i32$3 | i64toi32_i32$0 | 0 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = 0; + i64toi32_i32$3 = var$2 >>> ((__wasm_ctz_i32(var$3 | 0) | 0) & 31 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$3 | 0; + } + } + var$4 = var$3 + -1 | 0; + if (!(var$4 & var$3 | 0)) { + break label$5 + } + var$2 = (Math_clz32(var$3) + 33 | 0) - Math_clz32(var$2) | 0; + var$3 = 0 - var$2 | 0; + break label$3; + } + var$3 = 63 - var$2 | 0; + var$2 = var$2 + 1 | 0; + break label$3; + } + var$4 = (var$2 >>> 0) / (var$3 >>> 0) | 0; + i64toi32_i32$3 = 0; + i64toi32_i32$2 = var$2 - Math_imul(var$4, var$3) | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 32; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $41_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $41_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + legalfunc$wasm2js_scratch_store_i64($41_1 | 0, i64toi32_i32$1 | 0); + i64toi32_i32$1 = 0; + i64toi32_i32$2 = var$4; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$2 | 0; + } + var$2 = Math_clz32(var$3) - Math_clz32(var$2) | 0; + if (var$2 >>> 0 < 31 >>> 0) { + break label$4 + } + break label$2; + } + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$2 = 0; + legalfunc$wasm2js_scratch_store_i64(var$4 & var$0 | 0 | 0, i64toi32_i32$2 | 0); + if ((var$3 | 0) == (1 | 0)) { + break label$1 + } + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$2 = 0; + $120$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$0$hi; + i64toi32_i32$3 = var$0; + i64toi32_i32$1 = $120$hi; + i64toi32_i32$0 = __wasm_ctz_i32(var$3 | 0) | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $42_1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$2 >>> i64toi32_i32$4 | 0; + $42_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$2 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$3 >>> i64toi32_i32$4 | 0) | 0; + } + i64toi32_i32$3 = $42_1; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$3 | 0; + } + var$3 = 63 - var$2 | 0; + var$2 = var$2 + 1 | 0; + } + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$3 = 0; + $129$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$2 = var$0; + i64toi32_i32$1 = $129$hi; + i64toi32_i32$0 = var$2 & 63 | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = 0; + $43_1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + } else { + i64toi32_i32$1 = i64toi32_i32$3 >>> i64toi32_i32$4 | 0; + $43_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$3 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; + } + var$5 = $43_1; + var$5$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$1 = 0; + $134$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$3 = var$0; + i64toi32_i32$2 = $134$hi; + i64toi32_i32$0 = var$3 & 63 | 0; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + $44_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$3 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $44_1 = i64toi32_i32$3 << i64toi32_i32$4 | 0; + } + var$0 = $44_1; + var$0$hi = i64toi32_i32$2; + label$13 : { + if (var$2) { + block3 : { + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$1 = var$1; + i64toi32_i32$3 = -1; + i64toi32_i32$0 = -1; + i64toi32_i32$4 = i64toi32_i32$1 + i64toi32_i32$0 | 0; + i64toi32_i32$5 = i64toi32_i32$2 + i64toi32_i32$3 | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$0 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 + } + var$8 = i64toi32_i32$4; + var$8$hi = i64toi32_i32$5; + label$15 : while (1) { + i64toi32_i32$5 = var$5$hi; + i64toi32_i32$2 = var$5; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + $45_1 = 0; + } else { + i64toi32_i32$1 = ((1 << i64toi32_i32$3 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$3 | 0) | 0) | 0 | (i64toi32_i32$5 << i64toi32_i32$3 | 0) | 0; + $45_1 = i64toi32_i32$2 << i64toi32_i32$3 | 0; + } + $140_1 = $45_1; + $140$hi = i64toi32_i32$1; + i64toi32_i32$1 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 63; + i64toi32_i32$3 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = 0; + $46_1 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$1 >>> i64toi32_i32$3 | 0; + $46_1 = (((1 << i64toi32_i32$3 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$3 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$3 | 0) | 0; + } + $142$hi = i64toi32_i32$2; + i64toi32_i32$2 = $140$hi; + i64toi32_i32$1 = $140_1; + i64toi32_i32$5 = $142$hi; + i64toi32_i32$0 = $46_1; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + var$5 = i64toi32_i32$1 | i64toi32_i32$0 | 0; + var$5$hi = i64toi32_i32$5; + $144_1 = var$5; + $144$hi = i64toi32_i32$5; + i64toi32_i32$5 = var$8$hi; + i64toi32_i32$5 = var$5$hi; + i64toi32_i32$5 = var$8$hi; + i64toi32_i32$2 = var$8; + i64toi32_i32$1 = var$5$hi; + i64toi32_i32$0 = var$5; + i64toi32_i32$3 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$4 = i64toi32_i32$6 + i64toi32_i32$1 | 0; + i64toi32_i32$4 = i64toi32_i32$5 - i64toi32_i32$4 | 0; + i64toi32_i32$5 = i64toi32_i32$3; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 63; + i64toi32_i32$1 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$4 >> 31 | 0; + $47_1 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + } else { + i64toi32_i32$2 = i64toi32_i32$4 >> i64toi32_i32$1 | 0; + $47_1 = (((1 << i64toi32_i32$1 | 0) - 1 | 0) & i64toi32_i32$4 | 0) << (32 - i64toi32_i32$1 | 0) | 0 | (i64toi32_i32$5 >>> i64toi32_i32$1 | 0) | 0; + } + var$6 = $47_1; + var$6$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$1$hi; + i64toi32_i32$2 = var$6$hi; + i64toi32_i32$4 = var$6; + i64toi32_i32$5 = var$1$hi; + i64toi32_i32$0 = var$1; + i64toi32_i32$5 = i64toi32_i32$2 & i64toi32_i32$5 | 0; + $151_1 = i64toi32_i32$4 & i64toi32_i32$0 | 0; + $151$hi = i64toi32_i32$5; + i64toi32_i32$5 = $144$hi; + i64toi32_i32$2 = $144_1; + i64toi32_i32$4 = $151$hi; + i64toi32_i32$0 = $151_1; + i64toi32_i32$1 = i64toi32_i32$2 - i64toi32_i32$0 | 0; + i64toi32_i32$6 = i64toi32_i32$2 >>> 0 < i64toi32_i32$0 >>> 0; + i64toi32_i32$3 = i64toi32_i32$6 + i64toi32_i32$4 | 0; + i64toi32_i32$3 = i64toi32_i32$5 - i64toi32_i32$3 | 0; + var$5 = i64toi32_i32$1; + var$5$hi = i64toi32_i32$3; + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $48_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $48_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $154$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$7$hi; + i64toi32_i32$2 = $154$hi; + i64toi32_i32$3 = $48_1; + i64toi32_i32$5 = var$7$hi; + i64toi32_i32$0 = var$7; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + var$0 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + var$0$hi = i64toi32_i32$5; + i64toi32_i32$5 = var$6$hi; + i64toi32_i32$2 = var$6; + i64toi32_i32$3 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$3 = i64toi32_i32$5 & i64toi32_i32$3 | 0; + var$6 = i64toi32_i32$2 & i64toi32_i32$0 | 0; + var$6$hi = i64toi32_i32$3; + var$7 = var$6; + var$7$hi = i64toi32_i32$3; + var$2 = var$2 + -1 | 0; + if (var$2) { + continue label$15 + } + break label$15; + }; + break label$13; + } + } + } + i64toi32_i32$3 = var$5$hi; + legalfunc$wasm2js_scratch_store_i64(var$5 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$2 = 0; + i64toi32_i32$0 = 1; + i64toi32_i32$4 = i64toi32_i32$0 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$0 & 63 | 0) >>> 0) { + i64toi32_i32$2 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + $49_1 = 0; + } else { + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$5 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$3 << i64toi32_i32$4 | 0) | 0; + $49_1 = i64toi32_i32$5 << i64toi32_i32$4 | 0; + } + $165$hi = i64toi32_i32$2; + i64toi32_i32$2 = var$6$hi; + i64toi32_i32$2 = $165$hi; + i64toi32_i32$3 = $49_1; + i64toi32_i32$5 = var$6$hi; + i64toi32_i32$0 = var$6; + i64toi32_i32$5 = i64toi32_i32$2 | i64toi32_i32$5 | 0; + i64toi32_i32$3 = i64toi32_i32$3 | i64toi32_i32$0 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$5; + return i64toi32_i32$3 | 0; + } + i64toi32_i32$3 = var$0$hi; + legalfunc$wasm2js_scratch_store_i64(var$0 | 0, i64toi32_i32$3 | 0); + i64toi32_i32$3 = 0; + var$0 = 0; + var$0$hi = i64toi32_i32$3; + } + i64toi32_i32$3 = var$0$hi; + i64toi32_i32$5 = var$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$3; + return i64toi32_i32$5 | 0; + } + + function __wasm_i64_mul(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$0 = var$1$hi; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = _ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function __wasm_i64_udiv(var$0, var$0$hi, var$1, var$1$hi) { + var$0 = var$0 | 0; + var$0$hi = var$0$hi | 0; + var$1 = var$1 | 0; + var$1$hi = var$1$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$0 = var$1$hi; + i64toi32_i32$0 = var$0$hi; + i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = _ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E(var$0 | 0, i64toi32_i32$0 | 0, var$1 | 0, i64toi32_i32$1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function __wasm_rotl_i32(var$0, var$1) { + var$0 = var$0 | 0; + var$1 = var$1 | 0; + var var$2 = 0; + var$2 = var$1 & 31 | 0; + var$1 = (0 - var$1 | 0) & 31 | 0; + return ((-1 >>> var$2 | 0) & var$0 | 0) << var$2 | 0 | (((-1 << var$1 | 0) & var$0 | 0) >>> var$1 | 0) | 0 | 0; + } + + function __wasm_ctz_i32(var$0) { + var$0 = var$0 | 0; + if (var$0) { + return 31 - Math_clz32((var$0 + -1 | 0) ^ var$0 | 0) | 0 | 0 + } + return 32 | 0; + } + + // EMSCRIPTEN_END_FUNCS +; + FUNCTION_TABLE[1] = $251; + FUNCTION_TABLE[2] = $252; + FUNCTION_TABLE[3] = $62; + FUNCTION_TABLE[4] = $63; + FUNCTION_TABLE[5] = $65; + FUNCTION_TABLE[6] = $66; + FUNCTION_TABLE[7] = $67; + FUNCTION_TABLE[8] = $68; + FUNCTION_TABLE[9] = $69; + FUNCTION_TABLE[10] = $70; + FUNCTION_TABLE[11] = $71; + FUNCTION_TABLE[12] = $72; + FUNCTION_TABLE[13] = $73; + FUNCTION_TABLE[14] = $74; + FUNCTION_TABLE[15] = $75; + FUNCTION_TABLE[16] = $76; + FUNCTION_TABLE[17] = $77; + FUNCTION_TABLE[18] = $78; + FUNCTION_TABLE[19] = $79; + FUNCTION_TABLE[20] = $80; + FUNCTION_TABLE[21] = $81; + FUNCTION_TABLE[22] = $82; + FUNCTION_TABLE[23] = $83; + FUNCTION_TABLE[24] = $84; + FUNCTION_TABLE[25] = $85; + FUNCTION_TABLE[26] = $86; + FUNCTION_TABLE[27] = $87; + FUNCTION_TABLE[28] = $88; + FUNCTION_TABLE[29] = $89; + FUNCTION_TABLE[30] = $90; + FUNCTION_TABLE[31] = $91; + FUNCTION_TABLE[32] = $92; + FUNCTION_TABLE[33] = $93; + FUNCTION_TABLE[34] = $94; + FUNCTION_TABLE[35] = $95; + FUNCTION_TABLE[36] = $96; + FUNCTION_TABLE[37] = $97; + FUNCTION_TABLE[38] = $98; + FUNCTION_TABLE[39] = $99; + FUNCTION_TABLE[40] = $100; + FUNCTION_TABLE[41] = $101; + FUNCTION_TABLE[42] = $102; + FUNCTION_TABLE[43] = $103; + FUNCTION_TABLE[44] = $104; + FUNCTION_TABLE[45] = $105; + FUNCTION_TABLE[46] = $106; + FUNCTION_TABLE[47] = $107; + FUNCTION_TABLE[48] = $108; + FUNCTION_TABLE[49] = $109; + FUNCTION_TABLE[50] = $110; + FUNCTION_TABLE[51] = $111; + FUNCTION_TABLE[52] = $112; + FUNCTION_TABLE[53] = $113; + FUNCTION_TABLE[54] = $114; + FUNCTION_TABLE[55] = $115; + FUNCTION_TABLE[56] = $116; + FUNCTION_TABLE[57] = $117; + FUNCTION_TABLE[58] = $118; + FUNCTION_TABLE[59] = $119; + FUNCTION_TABLE[60] = $120; + FUNCTION_TABLE[61] = $121; + FUNCTION_TABLE[62] = $122; + FUNCTION_TABLE[63] = $123; + FUNCTION_TABLE[64] = $124; + FUNCTION_TABLE[65] = $125; + FUNCTION_TABLE[66] = $126; + FUNCTION_TABLE[67] = $127; + FUNCTION_TABLE[68] = $128; + FUNCTION_TABLE[69] = $129; + FUNCTION_TABLE[70] = $130; + FUNCTION_TABLE[71] = $131; + FUNCTION_TABLE[72] = $132; + FUNCTION_TABLE[73] = $133; + FUNCTION_TABLE[74] = $134; + FUNCTION_TABLE[75] = $135; + FUNCTION_TABLE[76] = $136; + FUNCTION_TABLE[77] = $137; + FUNCTION_TABLE[78] = $138; + FUNCTION_TABLE[79] = $139; + FUNCTION_TABLE[80] = $140; + FUNCTION_TABLE[81] = $141; + FUNCTION_TABLE[82] = $142; + FUNCTION_TABLE[83] = $143; + FUNCTION_TABLE[84] = $144; + FUNCTION_TABLE[85] = $145; + FUNCTION_TABLE[86] = $146; + FUNCTION_TABLE[87] = $147; + FUNCTION_TABLE[88] = $148; + FUNCTION_TABLE[89] = $149; + FUNCTION_TABLE[90] = $150; + FUNCTION_TABLE[91] = $151; + FUNCTION_TABLE[92] = $152; + FUNCTION_TABLE[93] = $153; + FUNCTION_TABLE[94] = $154; + FUNCTION_TABLE[95] = $155; + FUNCTION_TABLE[96] = $156; + FUNCTION_TABLE[97] = $158; + FUNCTION_TABLE[98] = $159; + FUNCTION_TABLE[99] = $160; + FUNCTION_TABLE[100] = $161; + FUNCTION_TABLE[101] = $162; + FUNCTION_TABLE[102] = $163; + FUNCTION_TABLE[103] = $164; + FUNCTION_TABLE[104] = $165; + FUNCTION_TABLE[105] = $166; + FUNCTION_TABLE[106] = $167; + FUNCTION_TABLE[107] = $169; + FUNCTION_TABLE[108] = $170; + FUNCTION_TABLE[109] = $171; + FUNCTION_TABLE[110] = $173; + FUNCTION_TABLE[111] = $174; + FUNCTION_TABLE[112] = $175; + FUNCTION_TABLE[113] = $176; + FUNCTION_TABLE[114] = $177; + FUNCTION_TABLE[115] = $178; + FUNCTION_TABLE[116] = $179; + FUNCTION_TABLE[117] = $180; + FUNCTION_TABLE[118] = $181; + FUNCTION_TABLE[119] = $182; + FUNCTION_TABLE[120] = $183; + FUNCTION_TABLE[121] = $184; + FUNCTION_TABLE[122] = $185; + FUNCTION_TABLE[123] = $186; + FUNCTION_TABLE[124] = $187; + FUNCTION_TABLE[125] = $188; + FUNCTION_TABLE[126] = $189; + FUNCTION_TABLE[127] = $190; + FUNCTION_TABLE[128] = $191; + FUNCTION_TABLE[129] = $192; + FUNCTION_TABLE[130] = $193; + FUNCTION_TABLE[131] = $194; + FUNCTION_TABLE[132] = $195; + FUNCTION_TABLE[133] = $196; + FUNCTION_TABLE[134] = $197; + FUNCTION_TABLE[135] = $198; + FUNCTION_TABLE[136] = $199; + FUNCTION_TABLE[137] = $200; + FUNCTION_TABLE[138] = $201; + FUNCTION_TABLE[139] = $202; + FUNCTION_TABLE[140] = $203; + FUNCTION_TABLE[141] = $204; + FUNCTION_TABLE[142] = $205; + FUNCTION_TABLE[143] = $206; + FUNCTION_TABLE[144] = $873; + FUNCTION_TABLE[145] = $926; + FUNCTION_TABLE[146] = $863; + FUNCTION_TABLE[147] = $894; + FUNCTION_TABLE[148] = $870; + FUNCTION_TABLE[149] = $890; + FUNCTION_TABLE[150] = $891; + FUNCTION_TABLE[151] = $917; + FUNCTION_TABLE[152] = $918; + FUNCTION_TABLE[153] = $921; + function __wasm_memory_size() { + return buffer.byteLength / 65536 | 0; + } + + return { + "__wasm_call_ctors": $1, + "never": $2, + "malloc": $963, + "__errno_location": $842, + "free": $964, + "fflush": $860, + "__set_stack_limit": $981, + "stackSave": $982, + "stackAlloc": $983, + "stackRestore": $984, + "__growWasmMemory": $985, + "dynCall_iii": $986, + "dynCall_vii": $987, + "dynCall_jiji": $992, + "dynCall_iiii": $989, + "dynCall_ii": $990, + "dynCall_iidiiii": $991 + }; +} + +for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { + base64ReverseLookup[48+i] = 52+i; // '0-9' + base64ReverseLookup[65+i] = i; // 'A-Z' + base64ReverseLookup[97+i] = 26+i; // 'a-z' + } + base64ReverseLookup[43] = 62; // '+' + base64ReverseLookup[47] = 63; // '/' + /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */ + function base64DecodeToExistingUint8Array(uint8Array, offset, b64) { + var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2); + if (b64[bLength-2] == '=') --end; + if (b64[bLength-1] == '=') --end; + for (; i < bLength; i += 4, j += 3) { + b1 = base64ReverseLookup[b64.charCodeAt(i+1)]; + b2 = base64ReverseLookup[b64.charCodeAt(i+2)]; + uint8Array[j] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; + if (j+1 < end) uint8Array[j+1] = b1 << 4 | b2 >> 2; + if (j+2 < end) uint8Array[j+2] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)]; + } + } +var bufferView = new Uint8Array(wasmMemory.buffer); +base64DecodeToExistingUint8Array(bufferView, 1024, "dW5rbm93biByZXN1bHQgdHlwZSAlZAoAAAAAAAAAAAAAAQEBAQEBAQECAwEBAgEBAQEBAQEBAQEBAQEBAQEBAQQFBgcICQoLDA0ODxAREhMUFRUVFRUVFRYWFxgZGhscCB0dHR0dHR4eHh4eHh4eHh4eHh4eHh4eHx4eICEiCB4IIyQlJicoKSorHh4sLS4vHh4wMTIzNDU2Hh43ODkIAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAABHAEYAAQACACkANgADAB4ARgBGACwALwAeADAAHgAxADEAHwAiAB4AIgAfADQALgAuADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAAtACcALQBFAEQARQBBADgANwBGAAEAIQADACYAAAAlAB0AQgAAADEAAAAAABwAIwAgACQANAArADQANAA0AA4ANAA0ADQANAA0ADQANAAPABAANAA0ADQANAA0ADQANAA0ADQANAAqACgAQwBBAEAAOQA6AD4APwA7AD0APAA1ADMAMgAyADQANAA0ADQANAA0ADQANAAIADQAFAAJADQAGQA0ADQANAA0ADQACgA0ADkAOgAEADQAFwASABEANAA0ADQADAA0ADQANAA0ADQABQA0ADkABwA0AAYAFQAaABsANAA0AAsADQATABYAGAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAQABQAGACUABQAGAAkAKwAJACUAAwAEABYAKwAWABYAFgAXAK8AFwAXABcAIQCuACMAFgAjACQAOAAhADgABQAGACkAIwCgACQAKQCfACQANwA3ADcAJABAAEAAQABBABYAQQBBAEEAZgBmAGYAmgA3AGcAZwBnADcAbgBuAG4AlwCVADcAlAA3AJMANwCGAIYAhgCHAIcAhwCYAJgAmACnAKcApwCnAKcApwCoAKgAqACoAKgAqACpAJIAqQCpAKkAqQCqAKoAqgCqAKsAqwCsAJEArACPAKwArACtAK0ArQCtAK0ArQCOAI0AiQCFAIMAggCBAIAAfwB9AHoAeAB3AHYAdQB0AHMAcgBxAGAAXwBeAF0AXABbAFoAWQBYAFcAVgBUAFMAUgBRAFAATwBOAEwASwBKADwAMwAvAC4ALQAsACoAKAAnACYAIgAgAB8AGwAaABkAGAAVABQAEwAPAAsABwCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAAAAAAAAADcAOAA5ADoA7QDuAD8A7gDSAO4AAADuAOEAAADuAO4AzwDXANoANQA6ANAAzADLAMoA7gAAAO4AqgCzAC4AsgAnADMAFgC5ALwAswA5AKsAGAC5ALEAugChAO4A7gDuAMUAAADuAO4ATwBVAO4AAADuAMwA7gDuAO4AUwBYAAAAAADuAO4A7gDuAAAA7gCnAKMAsQAAAKIAnwCfAKQAoACeAJ8AAACaAJkAmACdAJoAogCWAJUAkQCTAJcA7gDuAO4AAADuAFsAYADuAO4A7gDuAO4A7gBkAAAAAACVAJsAjwCXAJAAlQCKAJcAAACUAAAAAACTAAAAjgCHAIoAhQCMAAAAhgBuAHEAAACHAAAAAAAAAIAAiAB0AAAAegBxAFAAUABHAAAAVAB0AAAARAAAAAAAAAAAADsANQAAAAAAAAAAAAAA7gCKAJAAlgCaAJwAogCoAE0ASAAAAKYAAQCnAKcAqACoAKYApgCmAKYApgCmAKkApgCmAKoApgCmAKYApgCmAKYApgCmAKYApgCmAKYAqwCmAKYAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKYApgCmAKYApgCmAKwApgCmAK0ApgCmAKkApgCmAKYApgCmAKYApgCuAK8ApgCmAKYApgCrAKYAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKYApgCmAKwApgCmAKYApgCmAKYApgCmAKYApgCuAK8AqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsApgCmAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAKsApgCrAKsAqwCrAKsAqwCrAKsAqwCrAKsAqwCrAAAApgCmAKYApgCmAKYApgCmAKYAAAEBAgMDBAMDAwMDAwMDAwMDAwMFBQUDAwMDAwMFBgYDBAMFBQUFBQUGBgYGBgYGBgYGBgYGBgMDAwAAAAAAAAAACAAJAAoACQALAAwADQAIAA4ADwAQABEAEQAOAA4AEgATABQAFQAWABcAFwAYABIAGQAaABsAHAAdAB0AHQAeAAgAHwAdACAAIQAiACMAJAAdAB0AJQAmACcAKAAdACkAKgArAB0ALAAtAB0ALgAvADAAMgAyADUANQBVADYANgA4AF0AOABWADMAMwBAAF4AQQBBAEEAQABwAEEAQQBBAEsAbwBOAEIATwBRADgATAA4ADcANwBaAFAApQBSAFsApABTAGYAZgBnAFQAbgBuAG4AQABDAEEAQQBBAIYAhgCHAKMAaACHAIcAhwBpAG4AbgBuAKIAoQBqAKAAawCfAGwAmACYAIcAhwCHAIcAhwCHAIcAMQAxADEAMQAxADEANAA0ADQANAA0ADQAOgCeADoAOgA6ADoAPAA8ADwAPABIAEgAZACdAGQAnABkAGQAZQBlAGUAZQBlAGUAmwCaAJkAlwCWAJUAlACTAJIAkQCQAI8AjgCNAIwAiwCKAIkAiACFAIQAgwCCAIEAgAB/AH4AfQB8AHsAegB5AHgAdwB2AHUAdABzAHIAcQBtAGMAYgBhAGAAXwBcAFkAWABXAE0ASgBJAEcARgBFAEQAPwA+AD0AOwA5AKYABwCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgCmAKYApgBib29sCgB0cnVlCgBmYWxzZQoAY2F0Y2gKAGZvcgoAbGV0CgB2YXIKAHRocm93CgBmdW5jCgB3aGlsZQoAZG8KAGlmCgBpbgoAZW51bQoACgBpbnQKAGZsb2F0CgByZWNvcmQKAGNoYXIKAHN0cmluZwoAbmlsCgBtYXRjaAoAcmFuZ2UKADo6CgAuLgoAb3BlcmF0b3IgJXMKACVzCgA9PQoAIT0KADw+PSAlcwoAPD0KAD0+CgByZXR1cm4gJXMKACYmCgB8CgB8fAoAIQoAYmVnIGFycmF5IGRpbXMKAGVuZCBhcnJheSBkaW1zCgBvcGVufGNsb3NlIHBhcmVuCgBvcGVufGNsb3NlIGJyYWNrZXQKAG9wZW58Y2xvc2UgcXVhcmUgYmFja2V0CgAlZABudW1faW50ICVkCgAleABudW1faW50ICV4CgAlZgBudW1fZmxvYXQgJWYKAGlkICVzCgBjaGFyICVjCgBzdHJpbmcgJXMKAHVudGVybWluYXRlZCBzdHJpbmcKACVvAGNvbnN0YW50IG91dCBvZiByYW5nZQoAYmFkIGVzY2FwZSBzZXF1ZW5jZQoAZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1ubyBhY3Rpb24gZm91bmQAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfc2Nhbl9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfc2Nhbl9ieXRlcygpAGJhZCBidWZmZXIgaW4geXlfc2Nhbl9ieXRlcygpAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAZmF0YWwgZXJyb3IgLSBzY2FubmVyIGlucHV0IGJ1ZmZlciBvdmVyZmxvdwBpbnB1dCBpbiBmbGV4IHNjYW5uZXIgZmFpbGVkAG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9nZXRfbmV4dF9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAJXMKAAAAAAAAAAAAAAAAAAAAADwACwAeAAYAJwAwADYAhP+E/0cAMgCE/zUAhP+E/4T/PABkAGwAbQAJAJQBYACFAIwAuwCE/54ANQCE/zIANQCE/4T/sAGwAYT/6QEDAIT/hP+E/4T/hP86AsoADwCE/0MAgwDJAIMC6AAKAIT/NQDLAIT/hP+E/4T/hP+E/zUArwCwAf3/zQCE/7ABsAGwAbABzgGwAbABQASE/4T/hP9ABO4ARAD+AFMCDwD1AEYAgwLsAIT/hP/m/4T/SQD2AIMCGgCE/0AEFQAkAVsB4f+E/4T/yQCE/9IAmQDRAIT/dQDgAIT/GAGE/7ABlwLvALABBQIeAygAKACAA84BBgOE/4EAjQCE/44AQAQNACUAsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABeQGwASkBgwIgAYT/hP+E/4T/hP+E/ygBWQCbAKcAgwIuAYT/OAEfAUMBIQESAIMChP+wAYT/XQBbAeEARQGwAYT/hP+E/4T/DQGDAugAhP+E/5UDFgFLAaoDLQA3AwQAhP+xAMEAsAEjAioBGgEsAbABhP+wAS0BhP9ABMIDcAJoBIICggK/AL8AvwC/AKMAowAoACgAKACE/3QAUQPDANUAhP+E/4MCgwI9AS8BMAGE/4MChP+DAoT/hP9gAuwAhP+E/0AEhP/lAIT/JgHmAIT/swCE/7ABsAE2AUIBRAGwAbABsAFIAYT/VQFXATQBBQAqASwBQASRAEAEhP+E/0AAgwLOAYT/gwJABFEDhP+DArABhP+E/4T/hP+E/4MCgwJvAoT/hP+E/4T/hP8zAYT/hP+E/9cDaAGwAbABtALsA2YDsAGwAbABhP+E/zcBsAFHASMChP/eAOQAhP+E/1UEhP+E/4T/hP+wAYT/QAEBBBYEsAGwAbABQARABEAEhP9ABIMChP+E/4T/AgFzAbABsAFABEAEKwSE/4T/hP+E/3gA0QLuArABhP9zAbABsAFABIT/QARABAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjMCAjU2MS88MAIyAgICAgICAgICAiY9KyQsJQICAgICAgICAgICAgICAgICAgICAgICAgICAjcCOAICAgICAgICAgICAgICAgICAgICAgICAgICAgICPz5AAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJygpKi0uNDk6OwAAACIAIwBKAH4ADAAKAAoAAwADAAMAAQAQAA8AAwADABAAMwAlAAMASwAcAAMANQAfACwAHgAeABcAFwADADgAQQA/AAMAPABFAEYARwBIAEkASgAmAAMAEQAxAGUAZgA3ADEAIgA1AAMAIgBYAH4APwA1AB8ANwA1AAYAYAA1ADUAVAAPABAAEQBAAEAAEQA6ABsAPABtAA8AEAARACEAlwCYAB8APQB1AB8AQAB4AHkAHABhAB4AHwB+ADUAZgA3AGUAZQA9ADsAAABAAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACaADgANgA2ALMANgA9ALYAPAA8ADgAPACmAD0APAADAAQABQAGAAcArgAJAAoAsAA2ACQAJAAPABAAEQA8ABMAFAAVALwAPQAYAAMAQAAZAT8AHQAIAB8AIAALAAwADQAOAMoAywA2ALMAGwDPADYA0QA8ADwAIQAwADwAQAADADQANQA4ADcACAA5ADwACwAMAA0ADgA/AEAAPwA4ADgA6gDrADwAPAA/ABEA8AA1APIANwAZAfUAOAAxADIAMwA8ADUAQAA3AD0AEgAAATsAOAACAQMBGQA8ADUABwEIAQkBNQA4ADcAAwAhADwALwAwADEAMgAzAEAANQAYATcAGQEbATgAOwA4AB8BPAAgATwAEgADADUAJgEnASgBCAASABIACwAMAA0ADgA4ACIAPQA/ADwANAE1AUwBNQA4ADkBOgE7ATwAAwA4AD8BPQBBATwAQAA9AD0ANQBAAEAAAwAEAAUABgAHAAMACQAKAFEBUgFTARIADwAQABEAWQETABQAFQASAAMAGABfAWABPQASAB0AQAAfACAAJgADACYAAwBrAT0ANQBuAW8BAwASACYANwAmACYAMAAmACYAIQA0ADUAEgA3ADYAOQADAAQABQAGAAcAPwAJAAoAJAASACQAEgAPAAMAEQAmABMAFAAVAD0APwAYAD0ANQADAM0AHQBBAR8AIAADAAQABQAGAAcAbQEJAAoAwgAPAcIA0QAPAJgAqwAwABMAFAAVADQANQAYADcAVQA5ALwAHQADAK0AIAA/AFUACAAQADUACwAMAA0ADgBqAGoA//+9AP////8wAP///////zQANQA2ADcA//85AAMABAAFAAYABwA/AAkACgD//////////w8A////////EwAUABUA/////xgANQA2ADcA//8dAP////8gAAMABAAFAAYABwD//wkACgD//////////w8A/////zAAEwAUABUANAA1ABgANwD//zkA//8dAAMA//8gAD8A//8IAP////8LAAwADQAOAP///////////////zAA////////NAA1AP//NwD//zkAAwAEAAUABgAHAD8ACQAKAP//////////DwD///////8TABQAFQD/////GAA1ADYANwD//x0A/////yAAAwAEAAUABgAHAP//CQAKAP//////////DwD/////MAATABQAFQA0ADUAGAA3AAMAOQD//x0A//8IACAAPwALAAwADQAOAP//////////////////////////MAD/////AwA0ADUA//83AAgAOQD//wsADAANAA4APwADAP//////////CAD/////CwAMAA0ADgA1ADYANwADAP//////////CAD/////CwAMAA0ADgD/////////////IwD/////AwD//zUANgA3AAgA/////wsADAANAA4AIwD/////NQD//zcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANQA1ADcANwD/////EwA7AP//KwAsAC0ALgAvADAAMQAyADMA//81ADUANwA3ACQAJQA7ACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMAFwA1AP//NwD///////87AP////////////8kACUA//8nACgAKQAqACsALAAtAC4ALwAwADEAMgAzABcANQD//zcA////////OwD/////////////JAAlAP//JwAoACkAKgArACwALQAuAC8AMAAxADIAMwAXADUA//83AP///////zsA/////////////yQAJQD//ycAKAApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD/////IgA7ACQAJQD//ycAKAApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD///////87ACQAJQA+ACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD///////87AP//JAAlAD8AJwAoACkAKgArACwALQAuAC8AMAAxADIAMwD//zUA//83AP///////zsAIgA9ACQAJQD//ycAKAApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD//yQAJQA7ACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD///////87AP//PQAkACUA//8nACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA////////OwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQD//zcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQA2ADcA//8kACUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQD//zcA/////yUAOwAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzAP//NQD//zcA////////OwApACoAKwAsAC0ALgAvADAAMQAyADMA//81AP//NwD///////87AAAAAAAAAAAATABQAIYAyAAdABwAGwAEAQQBFAAkAB8AdwBxABIAHgBsAFIAWQCHAB0A9gC1AB0AVwA3ABsACgEKARIAqgB2ALYAEwCrAHoAewB8AH0AfwCFAFMAFwADAGYAsgC0AB0AZQBaAHgAGABaAKgAyQB0AFQABgBVABUAGQCvACUAFQCjAAEAAgADAAsBPQEDANIACAHPALsAAQACAAMAcwDkAOYABgCwAMAABgCxAMMAxQAEAHQABQAGAH8AlwAdAJgAswAbALAAmQAhANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIAhQDlAOkAQAFfAJsA+wCnAEEB/gBgAGAArABgAO8AGgCtADgAOQA6ADsAPAD4AD0APgD5AOwA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AHVua25vd24gYnVpbGQgaW4gZnVuY3Rpb24gaWQgJWQKAHN0YWNrIHRvbyBsYXJnZQoAc3RhY2sgdG9vIGxhcmdlAHVua25vd24gYnl0ZWNvZGUKAGF0IHRoaXMgc3RhZ2UgaWRfZnVuY19mdW5jIHNob3VsZCBiZSBzZXQgdG8gaWRfZnVuY19hZGRyIHdpdGggYnl0ZWNvZGVfZnVuY19hZGRyCgBjYW5ub3QgZGl2aWRlIGJ5IHplcm8KAGltcHJvcGVyIGFycmF5IHNpemUKAGFycmF5IGluZGV4ICVkIG91dCBvZiBib3VuZHMKAHJhbmdlIGluZGV4ICVkIG91dCBvZiBib3VuZHMKAHNsaWNlIGluZGV4ICVkIG91dCBvZiBib3VuZHMKAGF0dHJpYnV0ZSBpbmRleCBvdXQgb2YgYm91bmRzCgB1bnN1cHBvcnRlZCB0eXBlCgB1bmhhbmRsZWQgJXMgZXhjZXB0aW9uCgBWTV9FUlJPUgBjYWxsZWQgZnJvbSBsaW5lICV1IGlwOiV1IGZwOiVkCgBtYWNoaW5lOgoACXNwOiAlZAoACWZwOiAlZAoACWdwOiAldQoACWlwOiAldQoACWV4Y2VwdDogJWQKAAlsaW5lX25vOiAldQoACXN0YWNrX3NpemU6ICV1CgAJbWVtX3NpemU6ICV1CgAJcnVubmluZzogJWQKAAltZXNzYWdlOiAlcwoACgBvdXQgb2YgbWVtb3J5CgB1bmtub3duIGZyZWV2YXIgJXMgZHVyaW5nIGVtaXQKAG5vdCByZWNvZ25pemVkIGlkLCBhdCB0aGlzIHN0YWdlIGl0IGlzIHZlcnkgYmFkCgBjYW5ub3QgbmVnIHR5cGUgJXMKAGNhbm5vdCBhZGQgdHlwZSAlcwoAY2Fubm90IHN1YiB0eXBlICVzCgBjYW5ub3QgbXVsIHR5cGUgJXMKAGNhbm5vdCBub3QgdHlwZSAlcwoAY2Fubm90IGFzc2lnbiB0eXBlICVzCgBjYW5ub3QgZGl2IHR5cGUgJXMKAGNhbm5vdCBtb2QgdHlwZSAlcyAlcwoAY2Fubm90IGx0IGRpZmZlcmVudCB0eXBlcyAlcyAlcwoAY2Fubm90IGd0IGRpZmZlcmVudCB0eXBlcyAlcyAlcwoAY2Fubm90IGx0ZSBkaWZmZXJlbnQgdHlwZXMgJXMgJXMKAGNhbm5vdCBndGUgZGlmZmVyZW50IHR5cGVzICVzICVzCgBjYW5ub3QgY29tcGFyZSBlbnVtIHJlY29yZCB0eXBlCgBjYW5ub3QgZXEgZGlmZmVyZW50IHR5cGVzICVzICVzCgBjYW5ub3QgbmVxIGRpZmZlcmVudCB0eXBlcyAlcyAlcwoAY2Fubm90IGRlcmVmIHR5cGUgJXMKAGNhbm5vdCBjb252ZXJ0IHR5cGUgJXMgdG8gZmxvYXQKAGNhbm5vdCBjb252ZXJ0IHR5cGUgJXMgdG8gaW50CgB1bmtub3duIGJpbmQgdHlwZQoAZmZpIHR5cGUgbm90IHN1cHBvcnRlZAoAbm8gJXMgZnVuY3Rpb24gZGVmaW5lZAoAeAB5AGJ1aWxkX2luIHdpdGggcmV0IHR5cGUgbm90IHN1cHBvcnRlZAoAdW5rbm93bgBzaW4AY29zAHRhbgBleHAAbG9nAHNxcnQAcG93AHN0cgBzdHJmAG9yZABjaHIAcmVhZABwcmludABwcmludGIAcHJpbnRmAHByaW50YwBwcmludHMAbGVuZ3RoAGFzc2VydABhc3NlcnRmAGluY29ycmVjdGx5IGdlbmVyYXRlZCBjb2RlCgBjYW5ub3QgZ2VuZXJhdGUgYnl0ZWNvZGUgYXJyYXkgd2l0aCBmdW5jdGlvbiBwb2ludGVycywgdXNlIGJ5dGVjb2RlX2Z1bmNfYWRkcgoAJXM6JWQ6IGVycm9yOiAAJXM6JWQ6IHdhcm5pbmc6IABQQVJBTV9CT09MAFBBUkFNX0lOVABQQVJBTV9GTE9BVABQQVJBTV9FTlVNVFlQRQBQQVJBTV9DSEFSAFBBUkFNX1NUUklORwBQQVJBTV9SRUNPUkQAUEFSQU1fRElNAFBBUkFNX1JBTkdFX0RJTQBQQVJBTV9BUlJBWQBQQVJBTV9SQU5HRQBQQVJBTV9TTElDRQBQQVJBTV9TTElDRV9ESU0AUEFSQU1fRlVOQwBQQVJBTV8/Pz8AYm9vbABpbnQAZmxvYXQAY2hhcgBzdHJpbmcAZW51bXR5cGUAaWQAbmVnAGFkZABzdWIAbXVsAGRpdgBtb2QAbHQAZ3QAbHRlAGd0ZQBlcQBuZXEAYW5kAG9yAG5vdABzdXAAY29uZABhcnJheQBhcnJheSBkZXJlZgBjYWxsAGxhc3QgY2FsbABmdW5jAHJhbmdlIGRpbQByYW5nZQBzbGljZQBzZXEAYXNzAHdoaWxlAGRvIHdoaWxlAGZvcgBmb3IgaW4AaWYgbGV0AG1hdGNoAGJ1aWxkIGlkAGludCB0byBmbG9hdABmbG9hdCB0byBpbnQAbGlzdGNvbXAAYXR0cgBuaWwAdW5rbm93bgBlcnJvcgBlbnVtAHJlY29yZAByZWNvcmQgaWQAdW5rbm93biBjb21iIHR5cGUhAGVudW0gdHlwZSByZWNvcmQgJXM6OiVzIG5vdCBjb25zdHJ1Y3RlZAoAdW5rbm93biBwYXJhbSB0eXBlICVzCgB1bmtub3duIGJpbmQgdHlwZSAlZAoAZm91bmQgZW51bSAlcywgYXQgdGhpcyBzdGFnZSBpdCBpcyB2ZXJ5IGJhZAoAZm91bmQgZW51bWVyYXRvciAlcywgYXQgdGhpcyBzdGFnZSBpdCBpcyB2ZXJ5IGJhZAoAY2Fubm90IGZpbmQgdmFyaWFibGUgJXMsIGF0IHRoaXMgc3RhZ2UgaXQgaXMgdmVyeSBiYWQKAGZvdW5kICVzLCBhdCB0aGlzIHN0YWdlIGl0IGlzIHZlcnkgYmFkCgBjb252ZXJ0ZWQgZmxvYXQgdG8gaW50CgBjb252ZXJ0ZWQgaW50IHRvIGZsb2F0CgBleHByZXNzaW9uIGlzICVzIG5vdCBlbnVtIG5hbWUKAGFycmF5cyBhcmUgZGlmZmVyZW50IGZpcnN0IGxpbmUgJXUgc2Vjb25kIGxpbmUgJXUKAHNsaWNlcyBhcmUgZGlmZmVyZW50IGZpcnN0IGxpbmUgJXUgc2Vjb25kIGxpbmUgJXUKAGZ1bmN0aW9ucyBhcmUgZGlmZmVyZW50ICVzOiV1ICVzOiV1CgB0eXBlcyBvbiBjb25kaXRpb25hbCBleHByZXNzaW9uIGRvIG5vdCBtYXRjaCAlcyAlcwoAZnVuY3Rpb24gJXMgYWxyZWFkeSBkZWZpbmVkIGF0IGxpbmUgJXUKAHBhcmFtZXRlciAlcyBhbHJlYWR5IGRlZmluZWQgYXQgbGluZSAldQoAYmluZCAlcyBhbHJlYWR5IGRlZmluZWQgYXQgbGluZSAldQoAbWF0Y2ggYmluZCAlcyBhbHJlYWR5IGRlZmluZWQgYXQgbGluZSAldQoAcXVhbGlmaWVyICVzIGFscmVhZHkgZGVmaW5lZCBhdCBsaW5lICV1CgBmb3JpbiBpdGVyYXRvciAlcyBhbHJlYWR5IGRlZmluZWQgYXQgbGluZSAldQoAZW51bSBpdGVtICVzIGFscmVhZHkgZGVmaW5lZCBhdCBsaW5lICV1CgBlbnVtICVzIGFscmVhZHkgZGVmaW5lZCBhdCBsaW5lICV1CgByZWNvcmQgJXMgYWxyZWFkeSBkZWZpbmVkIGF0IGxpbmUgJXUKAGNhbm5vdCBmaW5kIHJlY29yZCBvciBlbnVtICVzCgBleHBlY3RlZCByZWNvcmQgb3IgZW51bSBidXQgJXMgZm91bmQKAGZvdW5kIGVudW0gaWQgJXMKAGZvdW5kIGVudW1lcmF0b3IgJXMKAGNhbm5vdCBmaW5kIGlkZW50aWZpZXIgJXMKAGNhbm5vdCBmaW5kIGVudW0gJXM6OiVzCgBleHBlY3RlZCBlbnVtdHlwZSAlcyBidXQgZm91bmQgJXMKAGNhbm5vdCBmaW5kIGVudW10eXBlICVzCgBjYW5ub3QgbmVnYXRlIHR5cGUgJXMKAGNhbm5vdCBleGVjIGFyaXRobWV0aWMgb3BlcmF0aW9uIG9uIHR5cGVzICVzICVzCgBleHByZXNzaW9uIG9uIGFzc2lnbm1lbnQgbGVmdCBzaWRlIGlzIG5vdCBhbiBpZGVudGlmaWVyIGJ1dCAlcwoAY2Fubm90IGFzc2lnbiBkaWZmZXJlbnQgdHlwZXMgJXMgJXMKAGNhbm5vdCBjb21wYXJlIHR5cGVzICVzICVzCgBjYW5ub3QgZXhlY3V0ZSBjb25kaXRpb25hbCBvcGVyYXRvciBvbiAlcwoAaW5jb3JyZWN0IHR5cGVzICVzIHBhc3NlZCB0byBkZXJlZiBhcnJheQoAaW5jb3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gZGVyZWYgYXJyYXkKAGluY29ycmVjdCBudW1iZXIgb2YgZGltZXNpb25zIHBhc3NlZCB0byBkZXJlZiBhcnJheQoAaW5jb3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gZGVyZWYgcmFuZ2UKAGluY29ycmVjdCBudW1iZXIgb2YgZGltZW5zaW9ucyBwYXNzZWQgdG8gZGVyZWYgcmFuZ2UKAGluY29ycmVjdCB0eXBlcyBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIGRlcmVmIHNsaWNlCgBpbmNvcnJlY3QgbnVtYmVyIG9mIGRpbWVuc2lvbnMgcGFzc2VkIHRvIGRlcmVmIHNsaWNlCgBpbmNvcnJlY3QgdHlwZXMgdG8gZGVyZWYgc3RyaW5nCgBzdHJpbmdzIGNhbiBiZSBkZXJlZiBvbmx5IHVzaW5nIG9uZSBkaW1lc2lvbgoAY2Fubm90IGRlcmVmICVzCgBpbmNvcnJlY3QgbnVtYmVyIG9mIGRpbWVuc2lvbnMgcGFzc2VkIHRvIHNsaWNlIGFycmF5CgBpbmNvcnJlY3QgbnVtYmVyIG9mIGRpbWVuc2lvbnMgcGFzc2VkIHRvIHNsaWNlIHJhbmdlCgBpbmNvcnJlY3QgbnVtYmVyIG9mIGRpbWVuc2lvbnMgcGFzc2VkIHRvIHNsaWNlIHNsaWNlCgBpbmNvcnJlY3QgbnVtYmVyIG9mIGRpbWVuc2lvbnMgcGFzc2VkIHRvIHNsaWNlIHN0cmluZwoAZXhwZWN0ZWQgcmFuZ2UgZnJvbSBvZiB0eXBlIGludCBidXQgZ290ICVzCgBleHBlY3RlZCByYW5nZSB0byBvZiB0eXBlIGludCBidXQgZ290ICVzCgBmdW5jdGlvbiBjYWxsIHR5cGUgbWlzbWF0Y2gKAHJlY29yZCBjcmVhdGUgdHlwZSBtaXNtYXRjaAoAZW51bSByZWNvcmQgdHlwZSBtaXNtYXRjaAoAY2Fubm90IGV4ZWN1dGUgZnVuY3Rpb24gb24gdHlwZSAlcwoAZ2VuZXJhdG9ycyBvdmVyIG9uZSBkaW1lbnNpb25hbCBhcnJheXMKAGZpbHRlciBzaG91bGQgYmUgYm9vbCB0eXBlIGlzICVzCgBpbmNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gbGlzdCBjb21wcmVoZW5zaW9uICVzICVzCgBjYW5ub3QgZmluZCBhdHRyaWJ1dGUgJXMgaW4gcmVjb3JkICVzCgBjYW5ub3QgZ2V0IHJlY29yZCBhdHRyaWJ1dGUgb2YgdHlwZSAlcwoAY2Fubm90IGV4ZWMgbW9kIG9wZXJhdGlvbiBvbiB0eXBlcyAlcyAlcwoAY2Fubm90IG5lIHR5cGVzICVzCgB3aGlsZSBsb29wIGNvbmRpdGlvbiB0eXBlIGlzICVzCgBmb3IgbG9vcCBjb25kaXRpb24gaXMgJXMKAGNhbm5vdCBjb252ZXJ0IHR5cGUgJXMgdG8gZmxvYXQKAGNhbm5vdCBjb252ZXJ0IHR5cGUgJXMgdG8gaW50CgBsaXN0IGNvbXByZWhlbnNpb24gaXMgbm90IHdlbGwgZm9ybWVkCgBubyB0eXBlIGluIHNlcXVlbmNlICVzCgBpbmRleF9vdXRfb2ZfYm91bmRzAHdyb25nX2FycmF5X3NpemUAZGl2aXNpb25fYnlfemVybwBpbnZhbGlkX2RvbWFpbgBvdmVyZmxvdwB1bmRlcmZsb3cAaW5leGFjdABuaWxfcG9pbnRlcgBmZmlfZmFpbAB1bmtub3duIGV4Y2VwdGlvbiAlcwoAaW5jb3JyZWN0IHJldHVybiB0eXBlIGluIGZ1bmN0aW9uICVzCgBGRkkgbm90IHN1cHBvcnRlZCB3aXRoIEpTICVzCgBmdW5jdGlvbiBtYWluIGNhbiB0YWtlIG9ubHkgbnVtZXJpY2FsIHBhcmFtZXRlcnMKAGluY29ycmVjdCBmdW5jdGlvbiBtYWluIHJldHVybiB0eXBlCgBpbmNvcnJlY3QgZnVuY3Rpb24gbWFpbiwgZXhwZWN0ZWQgZnVuY3Rpb24KAGZ1bmN0aW9uICVzIGlzIG5vdCBkZWZpbmVkCgAlZAAlLjJmACVzACVkDQoAJS4yZg0KACVjAHBhcmFtAGJpbmQAbWF0Y2ggYmluZABxdWFsaWZpZXIAZm9yIGluAGVudW1lcmF0b3IAZW51bQByZWNvcmQAZnVuYwB1bmtub3duAGZvciBpbiBsb29wIGV4cHJlc3Npb24gaW5jb3JyZWN0IHR5cGUgJXMKAGZvciBpbiBsb29wIGV4cHJlc3Npb24gaXMgbm90IG9mIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgc2xpY2Ugb3IgcmFuZ2UgaXMgJXMKAGRpdmlzaW9uIGJ5IHplcm8KAGVudW1zIGFyZSBkaWZmZXJlbnQgJXMgYW5kICVzCgB1bmtub3duX2V4Y2VwdGlvbgBkaXZpc2lvbl9ieV96ZXJvAHdyb25nX2FycmF5X3NpemUAaW5kZXhfb3V0X29mX2JvdW5kcwBpbnZhbGlkX2RvbWFpbgBvdmVyZmxvdwB1bmRlcmZsb3cAaW5leGFjdABuaWxfcG9pbnRlcgBmZmlfZmFpbABlbnVtIHJlY29yZCAlcy4lcyB0YWtlcyBubyBwYXJhbXMgd2hpbGUgZ3VhcmQgaGFzICVkCgBlbnVtIHJlY29yZCAlcy4lcyB0YWtlcyAlZCBwYXJhbXMgd2hpbGUgZ3VhcmQgaGFzICVkCgBjYW5ub3QgZmluZCBlbnVtIGl0ZW0gJXMuJXMKAGZvdW5kICVzIGluc3RlYWQgb2YgZW51bSAlcwoAY2Fubm90IGZpbmQgZW51bSAlcwoAZW51bXMgYXJlIGRpZmZlcmVudCAlcyBhbmQgJXMKAG1hdGNoIGV4cHJlc3Npb24gaXMgJXMgbm90IGVudW0KAHJlcGVhdGVkIGVudW0gbmFtZSAlcy4lcyBpbiBtYXRjaCBleHByZXNzaW9uCgBtYXRjaCBleHByZXNzaW9uIGRvZXMgbm90IGNvdmVyICVzLiVzIGVudW0KAG1hdGNoIGV4cHJlc3Npb24gd3JvbmcgdHlwZSAlcwoAbWF0Y2ggZXhwcmVzc2lvbiBjb250YWlucyBtb3JlIHRoYW4gb25lIGVsc2UgZ3VhcmQKAG1hdGNoIGV4cHJlc3Npb24gZWxzZSBndWFyZCBpcyBub3QgbGFzdAoAaW5jb3JyZWN0IHR5cGVzIGluIGFycmF5ICVzICVzCgBpbmNvcnJlY3QgZGltZXNpb25zIGluIGFycmF5ICVzICVzCgBhcnJheSBpcyBub3Qgd2VsbCBmb3JtZWQKAGR5bmFtaWMgYXJyYXkgb2YgJXMgaXMgbm90IHN1cHBvcnRlZAoAAAAAAAAAAAAZEkQ7Aj8sRxQ9MzAKGwZGS0U3D0kOjhcDQB08aSs2H0otHAEgJSkhCAwVFiIuEDg+CzQxGGR0dXYvQQl/OREjQzJCiYqLBQQmKCcNKh41jAcaSJMTlJUAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAcndhAHJ3YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALSsgICAwWDB4AChudWxsKQAAAAAAAAAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAAAAAAAAAAAAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADA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"); +base64DecodeToExistingUint8Array(bufferView, 23984, "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"); +base64DecodeToExistingUint8Array(bufferView, 25808, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="); +return asmFunc({ + 'Int8Array': Int8Array, + 'Int16Array': Int16Array, + 'Int32Array': Int32Array, + 'Uint8Array': Uint8Array, + 'Uint16Array': Uint16Array, + 'Uint32Array': Uint32Array, + 'Float32Array': Float32Array, + 'Float64Array': Float64Array, + 'NaN': NaN, + 'Infinity': Infinity, + 'Math': Math + }, + asmLibraryArg, + wasmMemory.buffer +) + +} +)(asmLibraryArg, wasmMemory, wasmTable); + return { + 'exports': exports + }; + }, + + instantiate: /** @suppress{checkTypes} */ function(binary, info) { + return { + then: function(ok) { + ok({ + 'instance': new WebAssembly.Instance(new WebAssembly.Module(binary)) + }); + // Emulate a simple WebAssembly.instantiate(..).then(()=>{}).catch(()=>{}) syntax. + return { catch: function() {} }; + } + }; + }, + + RuntimeError: Error +}; + +// We don't need to actually download a wasm binary, mark it as present but empty. +wasmBinary = []; + + + +if (typeof WebAssembly !== 'object') { + abort('No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.'); +} + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking. +// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties) + +/** @param {number} ptr + @param {number} value + @param {string} type + @param {number|boolean=} noSafe */ +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} + +/** @param {number} ptr + @param {string} type + @param {number|boolean=} noSafe */ +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for getValue: ' + type); + } + return null; +} + + + + + +// Wasm globals + +var wasmMemory; + +// In fastcomp asm.js, we don't need a wasm Table at all. +// In the wasm backend, we polyfill the WebAssembly object, +// so this creates a (non-native-wasm) table for us. +var wasmTable = new WebAssembly.Table({ + 'initial': 154, + 'maximum': 154 + 0, + 'element': 'anyfunc' +}); + + +//======================================== +// Runtime essentials +//======================================== + +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS = 0; + +/** @type {function(*, string=)} */ +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); + return func; +} + +// C calling interface. +/** @param {string|null=} returnType + @param {Array=} argTypes + @param {Arguments|Array=} args + @param {Object=} opts */ +function ccall(ident, returnType, argTypes, args, opts) { + // For fast lookup of conversion functions + var toC = { + 'string': function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + }, + 'array': function(arr) { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + + function convertReturnValue(ret) { + if (returnType === 'string') return UTF8ToString(ret); + if (returnType === 'boolean') return Boolean(ret); + return ret; + } + + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret; +} + +/** @param {string=} returnType + @param {Array=} argTypes + @param {Object=} opts */ +function cwrap(ident, returnType, argTypes, opts) { + return function() { + return ccall(ident, returnType, argTypes, arguments, opts); + } +} + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk +var ALLOC_NONE = 3; // Do not allocate + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +/** @type {function((TypedArray|Array|number), string, number, number=)} */ +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [_malloc, + stackAlloc, + dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var stop; + ptr = ret; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!runtimeInitialized) return dynamicAlloc(size); + return _malloc(size); +} + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// runtime_strings.js: Strings related runtime functions that are part of both MINIMAL_RUNTIME and regular runtime. + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; + +/** + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ +function UTF8ArrayToString(heap, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity) + while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { + return UTF8Decoder.decode(heap.subarray(idx, endPtr)); + } else { + var str = ''; + // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heap[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heap[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heap[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte 0x' + u0.toString(16) + ' encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!'); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } + return str; +} + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a +// copy of that string as a Javascript String object. +// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit +// this parameter to scan the string until the first \0 byte. If maxBytesToRead is +// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the +// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will +// not produce a string of exact length [ptr, ptr+maxBytesToRead[) +// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may +// throw JS JIT optimizations off, so it is worth to consider consistently using one +// style or the other. +/** + * @param {number} ptr + * @param {number=} maxBytesToRead + * @return {string} + */ +function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; +} + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// heap: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. +// This count should include the null terminator, +// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) { + var u1 = str.charCodeAt(++i); + u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u >= 0x200000) warnOnce('Invalid Unicode code point 0x' + u.toString(16) + ' encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).'); + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) ++len; + else if (u <= 0x7FF) len += 2; + else if (u <= 0xFFFF) len += 3; + else len += 4; + } + return len; +} + + + +/** + * @license + * Copyright 2020 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// runtime_strings_extra.js: Strings related runtime functions that are available only in regular runtime. + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAPU8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; + +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + +// Allocate heap space for a JS string, and write it there. +// It is the responsibility of the caller to free() that memory. +function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; +} + +// Allocate stack space for a JS string, and write it there. +function allocateUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8Array(str, HEAP8, ret, size); + return ret; +} + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +/** @deprecated + @param {boolean=} dontAddNull */ +function writeStringToMemory(string, buffer, dontAddNull) { + warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var /** @type {number} */ lastChar, /** @type {number} */ end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} + +/** @param {boolean=} dontAddNull */ +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} + + + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP, +/** @type {ArrayBuffer} */ + buffer, +/** @type {Int8Array} */ + HEAP8, +/** @type {Uint8Array} */ + HEAPU8, +/** @type {Int16Array} */ + HEAP16, +/** @type {Uint16Array} */ + HEAPU16, +/** @type {Int32Array} */ + HEAP32, +/** @type {Uint32Array} */ + HEAPU32, +/** @type {Float32Array} */ + HEAPF32, +/** @type {Float64Array} */ + HEAPF64; + +function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module['HEAP8'] = HEAP8 = new Int8Array(buf); + Module['HEAP16'] = HEAP16 = new Int16Array(buf); + Module['HEAP32'] = HEAP32 = new Int32Array(buf); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buf); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buf); +} + +var STATIC_BASE = 1024, + STACK_BASE = 5271600, + STACKTOP = STACK_BASE, + STACK_MAX = 28720, + DYNAMIC_BASE = 5271600, + DYNAMICTOP_PTR = 28560; + +assert(STACK_BASE % 16 === 0, 'stack must start aligned'); +assert(DYNAMIC_BASE % 16 === 0, 'heap must start aligned'); + + + +var TOTAL_STACK = 5242880; +if (Module['TOTAL_STACK']) assert(TOTAL_STACK === Module['TOTAL_STACK'], 'the stack size can no longer be determined at runtime') + +var INITIAL_INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216;if (!Object.getOwnPropertyDescriptor(Module, 'INITIAL_MEMORY')) Object.defineProperty(Module, 'INITIAL_MEMORY', { configurable: true, get: function() { abort('Module.INITIAL_MEMORY has been replaced with plain INITIAL_INITIAL_MEMORY') } }); + +assert(INITIAL_INITIAL_MEMORY >= TOTAL_STACK, 'INITIAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_INITIAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, + 'JS engine does not provide full typed array support'); + + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + + + +// In standalone mode, the wasm creates the memory, and the user can't provide it. +// In non-standalone/normal mode, we create the memory here. + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// Create the main memory. (Note: this isn't used in STANDALONE_WASM mode since the wasm +// memory is created in the wasm, not in JS.) + + if (Module['wasmMemory']) { + wasmMemory = Module['wasmMemory']; + } else + { + wasmMemory = new WebAssembly.Memory({ + 'initial': INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE + , + 'maximum': INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE + }); + } + + +if (wasmMemory) { + buffer = wasmMemory.buffer; +} + +// If the user provides an incorrect length, just use that length instead rather than providing the user to +// specifically provide the memory length with Module['INITIAL_MEMORY']. +INITIAL_INITIAL_MEMORY = buffer.byteLength; +assert(INITIAL_INITIAL_MEMORY % WASM_PAGE_SIZE === 0); +updateGlobalBufferAndViews(buffer); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + + + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + // The stack grows downwards + HEAPU32[(STACK_MAX >> 2)+1] = 0x2135467; + HEAPU32[(STACK_MAX >> 2)+2] = 0x89BACDFE; + // Also test the global address 0 for integrity. + // We don't do this with ASan because ASan does its own checks for this. + HEAP32[0] = 0x63736d65; /* 'emsc' */ +} + +function checkStackCookie() { + var cookie1 = HEAPU32[(STACK_MAX >> 2)+1]; + var cookie2 = HEAPU32[(STACK_MAX >> 2)+2]; + if (cookie1 != 0x2135467 || cookie2 != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x' + cookie2.toString(16) + ' ' + cookie1.toString(16)); + } + // Also test the global address 0 for integrity. + // We don't do this with ASan because ASan does its own checks for this. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!'); +} + + + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// Endianness check (note: assumes compiler arch was little-endian) +(function() { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; +})(); + +function abortFnPtrError(ptr, sig) { + abort("Invalid function pointer " + ptr + " called with signature '" + sig + "'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this). Build with ASSERTIONS=2 for more info."); +} + + + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(Module); // Pass the module as the first argument. + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the main() is called + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPRERUN__); +} + +function initRuntime() { + checkStackCookie(); + assert(!runtimeInitialized); + runtimeInitialized = true; + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); +TTY.init(); + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + FS.ignorePermissions = false; + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} + +function addOnExit(cb) { +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +/** @param {number|boolean=} ignore */ +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +/** @param {number|boolean=} ignore */ +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +/** + * @license + * Copyright 2019 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + +assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); +assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_max = Math.max; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + + + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// Module.preRun (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err('dependency: ' + dep); + } + if (shown) { + err('(end of list)'); + } + }, 10000); + } + } else { + err('warning: run dependency added without ID'); + } +} + +function removeRunDependency(id) { + runDependencies--; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + +/** @param {string|number=} what */ +function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + + what += ''; + out(what); + err(what); + + ABORT = true; + EXITSTATUS = 1; + + var output = 'abort(' + what + ') at ' + stackTrace(); + what = output; + + // Throw a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + throw new WebAssembly.RuntimeError(what); +} + + +var memoryInitializer = null; + + +/** + * @license + * Copyright 2015 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + + + + + + + +/** + * @license + * Copyright 2017 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +function hasPrefix(str, prefix) { + return String.prototype.startsWith ? + str.startsWith(prefix) : + str.indexOf(prefix) === 0; +} + +// Prefix of data URIs emitted by SINGLE_FILE and related options. +var dataURIPrefix = 'data:application/octet-stream;base64,'; + +// Indicates whether filename is a base64 data URI. +function isDataURI(filename) { + return hasPrefix(filename, dataURIPrefix); +} + +var fileURIPrefix = "file://"; + +// Indicates whether filename is delivered via file protocol (as opposed to http/https) +function isFileURI(filename) { + return hasPrefix(filename, fileURIPrefix); +} + + + +var wasmBinaryFile = 'never.wasm'; +if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); +} + +function getBinary() { + try { + if (wasmBinary) { + return new Uint8Array(wasmBinary); + } + + var binary = tryParseAsDataURI(wasmBinaryFile); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(wasmBinaryFile); + } else { + throw "both async and sync fetching of the wasm failed"; + } + } + catch (err) { + abort(err); + } +} + +function getBinaryPromise() { + // If we don't have the binary yet, and have the Fetch api, use that; + // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function' + // Let's not use fetch to get objects over file:// as it's most likely Cordova which doesn't support fetch for file:// + && !isFileURI(wasmBinaryFile) + ) { + return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { + if (!response['ok']) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + } + return response['arrayBuffer'](); + }).catch(function () { + return getBinary(); + }); + } + // Otherwise, getBinary should be able to get it synchronously + return new Promise(function(resolve, reject) { + resolve(getBinary()); + }); +} + + + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +function createWasm() { + // prepare imports + var info = { + 'env': asmLibraryArg, + 'wasi_snapshot_preview1': asmLibraryArg + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + Module['asm'] = exports; + removeRunDependency('wasm-instantiate'); + } + // we can't run yet (except in a pthread, where we have a custom sync instantiator) + addRunDependency('wasm-instantiate'); + + + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiatedSource(output) { + // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); + trueModule = null; + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. + receiveInstance(output['instance']); + } + + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function(binary) { + return WebAssembly.instantiate(binary, info); + }).then(receiver, function(reason) { + err('failed to asynchronously prepare wasm: ' + reason); + abort(reason); + }); + } + + // Prefer streaming instantiation if available. + function instantiateAsync() { + if (!wasmBinary && + typeof WebAssembly.instantiateStreaming === 'function' && + !isDataURI(wasmBinaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(wasmBinaryFile) && + typeof fetch === 'function') { + fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function (response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiatedSource, function(reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err('wasm streaming compile failed: ' + reason); + err('falling back to ArrayBuffer instantiation'); + instantiateArrayBuffer(receiveInstantiatedSource); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiatedSource); + } + } + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel + // to any other async startup actions they are performing. + if (Module['instantiateWasm']) { + try { + var exports = Module['instantiateWasm'](info, receiveInstance); + return exports; + } catch(e) { + err('Module.instantiateWasm callback failed with error: ' + e); + return false; + } + } + + instantiateAsync(); + return {}; // no exports yet; we'll fill them in later +} + + +// Globals used by JS i64 conversions +var tempDouble; +var tempI64; + +// === Body === + +var ASM_CONSTS = { + +}; + + + + +// STATICTOP = STATIC_BASE + 27696; +/* global initializers */ __ATINIT__.push({ func: function() { ___wasm_call_ctors() } }); + + + + +/* no memory initializer */ +// {{PRE_LIBRARY}} + + + function demangle(func) { + warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; + } + + function demangleAll(text) { + var regex = + /\b_Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (y + ' [' + x + ']'); + }); + } + + function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); + } + + function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); + } + + function ___handle_stack_overflow() { + abort('stack overflow') + } + + + function setErrNo(value) { + HEAP32[((___errno_location())>>2)]=value; + return value; + } + + + var PATH={splitPath:function(filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + },normalize:function(path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function(path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function(path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function(path) { + return PATH.splitPath(path)[3]; + },join:function() { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function(l, r) { + return PATH.normalize(l + '/' + r); + }}; + + + var PATH_FS={resolve:function() { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function(from, to) { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function() { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + },close:function(stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function(stream) { + stream.tty.ops.flush(stream.tty); + },read:function(stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function(tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + } else + if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function(mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function(node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + },resizeFileStorage:function(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function(parent, name) { + throw FS.genericErrors[44]; + },mknod:function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function(old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function(parent, name) { + delete parent.contents[name]; + },rmdir:function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + },readdir:function(node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }},stream_ops:{read:function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function(stream, buffer, offset, length, position, canOwn) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + },llseek:function(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + },allocate:function(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function(stream, buffer, offset, length, position, prot, flags) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + contents.buffer === buffer.buffer ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + // malloc() can lead to growing the heap. If targeting the heap, we need to + // re-acquire the heap buffer object in case growth had occurred. + var fromHeap = (buffer.buffer == HEAP8.buffer); + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + (fromHeap ? HEAP8 : buffer).set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function(stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"}; + + var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return setErrNo(e.errno); + },lookupPath:function(path, opts) { + path = PATH_FS.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function(parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function(parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function(node) { + FS.hashRemoveNode(node); + },isRoot:function(node) { + return node === node.parent; + },isMountpoint:function(node) { + return !!node.mounted; + },isFile:function(mode) { + return (mode & 61440) === 32768; + },isDir:function(mode) { + return (mode & 61440) === 16384; + },isLink:function(mode) { + return (mode & 61440) === 40960; + },isChrdev:function(mode) { + return (mode & 61440) === 8192; + },isBlkdev:function(mode) { + return (mode & 61440) === 24576; + },isFIFO:function(mode) { + return (mode & 61440) === 4096; + },isSocket:function(mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function(flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return 2; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return 2; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return 2; + } + return 0; + },mayLookup:function(dir) { + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + },mayCreate:function(dir, name) { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + },mayOpen:function(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function(fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + },getStream:function(fd) { + return FS.streams[fd]; + },createStream:function(stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function(){}; + FS.FSStream.prototype = { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }; + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function(fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function() { + throw new FS.ErrnoError(70); + }},major:function(dev) { + return ((dev) >> 8); + },minor:function(dev) { + return ((dev) & 0xff); + },makedev:function(ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function(dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function(dev) { + return FS.devices[dev]; + },getMounts:function(mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function(populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function(type, opts, mountpoint) { + if (typeof type === 'string') { + // The filesystem was not included, and instead we have an error + // message stored in the variable. + throw type; + } + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function(parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function(path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function(path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function(path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function(path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != 20) throw e; + } + } + },mkdev:function(path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(10); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + err("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + err("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function(path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + },unlink:function(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function(path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + },lstat:function(path) { + return FS.stat(path, true); + },chmod:function(path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function(path, mode) { + FS.chmod(path, mode, true); + },fchmod:function(fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + },chown:function(path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function(path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function(fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + },truncate:function(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function(fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + },utime:function(path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function(path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + err("FS.trackingDelegate error on read file: " + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + err("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + },isClosed:function(stream) { + return stream.fd === null; + },llseek:function(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function(stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position !== 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function(stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position !== 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + err("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function(stream, offset, length) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function(stream, buffer, offset, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 + && (flags & 2) === 0 + && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function(stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function(stream) { + return 0; + },ioctl:function(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function(path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function(path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data === 'string') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error('Unsupported data type'); + } + FS.close(stream); + },cwd:function() { + return FS.currentPath; + },chdir:function(path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function() { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function() { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else + if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require('crypto'); + // nodejs has crypto support + random_device = function() { return crypto_module['randomBytes'](1)[0]; }; + } catch (e) { + // nodejs doesn't have crypto support + } + } else + {} + if (!random_device) { + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + random_device = function() { abort("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function() { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + var stdout = FS.open('/dev/stdout', 'w'); + var stderr = FS.open('/dev/stderr', 'w'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function() { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + this.node = node; + this.setErrno = /** @this{Object} */ function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + + // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack + // now ensures it shows what we want. + if (this.stack) { + // Define the stack property for Node.js 4, which otherwise errors on the next line. + Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true }); + this.stack = demangleAll(this.stack); + } + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function() { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + }; + },init:function(input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function() { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function(canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function(parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function(relative, base) { + return PATH_FS.resolve(base, relative); + },standardizePath:function(path) { + return PATH.normalize(path); + },findObject:function(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + setErrNo(ret.error); + return null; + } + },analyzePath:function(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function(parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function(parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function(parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function(parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function(parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) setErrNo(29); + return success; + },createLazyFile:function(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */(xhr.response || [])); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: /** @this{Object} */ function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function() { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function() { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + out('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function(paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(8); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)]=tempI64[0],HEAP32[(((buf)+(44))>>2)]=tempI64[1]); + HEAP32[(((buf)+(48))>>2)]=4096; + HEAP32[(((buf)+(52))>>2)]=stat.blocks; + HEAP32[(((buf)+(56))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(76))>>2)]=0; + (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(80))>>2)]=tempI64[0],HEAP32[(((buf)+(84))>>2)]=tempI64[1]); + return 0; + },doMsync:function(addr, stream, len, flags, offset) { + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + },doMkdir:function(path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function(path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -28; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function(path, buf, bufsize) { + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function(path, amode) { + if (amode & ~7) { + // need a valid mode + return -28; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + if (!node) { + return -44; + } + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + },doDup:function(path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:undefined,get:function() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + },getStreamFromFD:function(fd) { + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + return stream; + },get64:function(low, high) { + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + }};function ___sys_fcntl64(fd, cmd, varargs) {SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + /* case 12: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + /* case 13: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 14: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_ioctl(fd, op, varargs) {SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___sys_open(path, flags, varargs) {SYSCALLS.varargs = varargs; + try { + + var pathname = SYSCALLS.getStr(path); + var mode = SYSCALLS.get(); + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _dlclose(handle) { + abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking"); + } + + function _emscripten_get_sbrk_ptr() { + return 28560; + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + + function _emscripten_get_heap_size() { + return HEAPU8.length; + } + + function abortOnCannotGrowMemory(requestedSize) { + abort('Cannot enlarge memory arrays to size ' + requestedSize + ' bytes (OOM). Either (1) compile with -s INITIAL_MEMORY=X with X higher than the current value ' + HEAP8.length + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); + }function _emscripten_resize_heap(requestedSize) { + requestedSize = requestedSize >>> 0; + abortOnCannotGrowMemory(requestedSize); + } + + function _exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + exit(status); + } + + function _fd_close(fd) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_fdstat_get(fd, pbuf) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + // All character devices are terminals (other things a Linux system would + // assume is a character device, like the mouse, we have special APIs for). + var type = stream.tty ? 2 : + FS.isDir(stream.mode) ? 3 : + FS.isLink(stream.mode) ? 7 : + 4; + HEAP8[((pbuf)>>0)]=type; + // TODO HEAP16[(((pbuf)+(2))>>1)]=?; + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(8))>>2)]=tempI64[0],HEAP32[(((pbuf)+(12))>>2)]=tempI64[1]); + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(16))>>2)]=tempI64[0],HEAP32[(((pbuf)+(20))>>2)]=tempI64[1]); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_read(fd, iov, iovcnt, pnum) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doReadv(stream, iov, iovcnt); + HEAP32[((pnum)>>2)]=num + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {try { + + + var stream = SYSCALLS.getStreamFromFD(fd); + var HIGH_OFFSET = 0x100000000; // 2^32 + // use an unsigned operator on low and shift high by 32-bits + var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0); + + var DOUBLE_LIMIT = 0x20000000000000; // 2^53 + // we also check for equality since DOUBLE_LIMIT + 1 == DOUBLE_LIMIT + if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { + return -61; + } + + FS.llseek(stream, offset, whence); + (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)]=tempI64[0],HEAP32[(((newOffset)+(4))>>2)]=tempI64[1]); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _fd_write(fd, iov, iovcnt, pnum) {try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doWritev(stream, iov, iovcnt); + HEAP32[((pnum)>>2)]=num + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno; + } + } + + function _setTempRet0($i) { + setTempRet0(($i) | 0); + } +var FSNode = /** @constructor */ function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292/*292*/ | 73/*73*/; + var writeMode = 146/*146*/; + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */function() { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } + }, + write: { + get: /** @this{FSNode} */function() { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } + }, + isFolder: { + get: /** @this{FSNode} */function() { + return FS.isDir(this.mode); + } + }, + isDevice: { + get: /** @this{FSNode} */function() { + return FS.isChrdev(this.mode); + } + } + }); + FS.FSNode = FSNode; + FS.staticInit();; +var ASSERTIONS = true; + +/** + * @license + * Copyright 2017 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +/** @type {function(string, boolean=, number=)} */ +function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + if (ASSERTIONS) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + } + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} + + +// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 + +// This code was written by Tyler Akins and has been placed in the +// public domain. It would be nice if you left this header intact. +// Base64 code from Tyler Akins -- http://rumkin.com + +/** + * Decodes a base64 string. + * @param {string} input The string to decode. + */ +var decodeBase64 = typeof atob === 'function' ? atob : function (input) { + var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + + var output = ''; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + do { + enc1 = keyStr.indexOf(input.charAt(i++)); + enc2 = keyStr.indexOf(input.charAt(i++)); + enc3 = keyStr.indexOf(input.charAt(i++)); + enc4 = keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 !== 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 !== 64) { + output = output + String.fromCharCode(chr3); + } + } while (i < input.length); + return output; +}; + +// Converts a string of base64 into a byte array. +// Throws error on invalid input. +function intArrayFromBase64(s) { + if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) { + var buf; + try { + // TODO: Update Node.js externs, Closure does not recognize the following Buffer.from() + /**@suppress{checkTypes}*/ + buf = Buffer.from(s, 'base64'); + } catch (_) { + buf = new Buffer(s, 'base64'); + } + return new Uint8Array(buf['buffer'], buf['byteOffset'], buf['byteLength']); + } + + try { + var decoded = decodeBase64(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0 ; i < decoded.length ; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } catch (_) { + throw new Error('Converting base64 string to bytes failed.'); + } +} + +// If filename is a base64 data URI, parses and returns data (Buffer on node, +// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. +function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); +} + + +var asmGlobalArg = {}; +var asmLibraryArg = { "__handle_stack_overflow": ___handle_stack_overflow, "__sys_fcntl64": ___sys_fcntl64, "__sys_ioctl": ___sys_ioctl, "__sys_open": ___sys_open, "dlclose": _dlclose, "emscripten_get_sbrk_ptr": _emscripten_get_sbrk_ptr, "emscripten_memcpy_big": _emscripten_memcpy_big, "emscripten_resize_heap": _emscripten_resize_heap, "exit": _exit, "fd_close": _fd_close, "fd_fdstat_get": _fd_fdstat_get, "fd_read": _fd_read, "fd_seek": _fd_seek, "fd_write": _fd_write, "getTempRet0": getTempRet0, "memory": wasmMemory, "setTempRet0": setTempRet0, "table": wasmTable }; +var asm = createWasm(); +Module["asm"] = asm; +/** @type {function(...*):?} */ +var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["__wasm_call_ctors"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var _never = Module["_never"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["never"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var _malloc = Module["_malloc"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["malloc"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var ___errno_location = Module["___errno_location"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["__errno_location"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var _free = Module["_free"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["free"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var _fflush = Module["_fflush"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["fflush"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var ___set_stack_limit = Module["___set_stack_limit"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["__set_stack_limit"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var stackSave = Module["stackSave"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["stackSave"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var stackAlloc = Module["stackAlloc"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["stackAlloc"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var stackRestore = Module["stackRestore"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["stackRestore"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var __growWasmMemory = Module["__growWasmMemory"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["__growWasmMemory"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_iii = Module["dynCall_iii"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_iii"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_vii = Module["dynCall_vii"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_vii"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_jiji = Module["dynCall_jiji"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_jiji"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_iiii = Module["dynCall_iiii"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_iiii"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_ii = Module["dynCall_ii"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_ii"].apply(null, arguments) +}; + +/** @type {function(...*):?} */ +var dynCall_iidiiii = Module["dynCall_iidiiii"] = function() { + assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); + assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); + return Module["asm"]["dynCall_iidiiii"].apply(null, arguments) +}; + + + +/** + * @license + * Copyright 2010 The Emscripten Authors + * SPDX-License-Identifier: MIT + */ + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + +if (!Object.getOwnPropertyDescriptor(Module, "intArrayFromString")) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "intArrayToString")) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; +if (!Object.getOwnPropertyDescriptor(Module, "setValue")) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getValue")) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocate")) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getMemory")) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF8ArrayToString")) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF8ToString")) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8Array")) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF8")) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF8")) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPreRun")) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnInit")) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPreMain")) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnExit")) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addOnPostRun")) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeStringToMemory")) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeArrayToMemory")) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeAsciiToMemory")) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addRunDependency")) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "removeRunDependency")) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createFolder")) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createPath")) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createDataFile")) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createPreloadedFile")) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createLazyFile")) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createLink")) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_createDevice")) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS_unlink")) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; +if (!Object.getOwnPropertyDescriptor(Module, "dynamicAlloc")) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "loadDynamicLibrary")) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "loadWebAssemblyModule")) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getLEB")) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getFunctionTables")) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "alignFunctionTables")) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "registerFunctions")) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "addFunction")) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "removeFunction")) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getFuncWrapper")) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "prettyPrint")) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "makeBigInt")) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "dynCall")) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getCompilerSetting")) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "print")) Module["print"] = function() { abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "printErr")) Module["printErr"] = function() { abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getTempRet0")) Module["getTempRet0"] = function() { abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setTempRet0")) Module["setTempRet0"] = function() { abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "callMain")) Module["callMain"] = function() { abort("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "abort")) Module["abort"] = function() { abort("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToNewUTF8")) Module["stringToNewUTF8"] = function() { abort("'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "abortOnCannotGrowMemory")) Module["abortOnCannotGrowMemory"] = function() { abort("'abortOnCannotGrowMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscripten_realloc_buffer")) Module["emscripten_realloc_buffer"] = function() { abort("'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ENV")) Module["ENV"] = function() { abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setjmpId")) Module["setjmpId"] = function() { abort("'setjmpId' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ERRNO_CODES")) Module["ERRNO_CODES"] = function() { abort("'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "ERRNO_MESSAGES")) Module["ERRNO_MESSAGES"] = function() { abort("'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "setErrNo")) Module["setErrNo"] = function() { abort("'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "DNS")) Module["DNS"] = function() { abort("'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GAI_ERRNO_MESSAGES")) Module["GAI_ERRNO_MESSAGES"] = function() { abort("'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Protocols")) Module["Protocols"] = function() { abort("'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Sockets")) Module["Sockets"] = function() { abort("'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UNWIND_CACHE")) Module["UNWIND_CACHE"] = function() { abort("'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readAsmConstArgs")) Module["readAsmConstArgs"] = function() { abort("'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jstoi_q")) Module["jstoi_q"] = function() { abort("'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jstoi_s")) Module["jstoi_s"] = function() { abort("'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "reallyNegative")) Module["reallyNegative"] = function() { abort("'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "formatString")) Module["formatString"] = function() { abort("'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PATH")) Module["PATH"] = function() { abort("'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PATH_FS")) Module["PATH_FS"] = function() { abort("'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SYSCALLS")) Module["SYSCALLS"] = function() { abort("'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "syscallMmap2")) Module["syscallMmap2"] = function() { abort("'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "syscallMunmap")) Module["syscallMunmap"] = function() { abort("'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "JSEvents")) Module["JSEvents"] = function() { abort("'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "specialHTMLTargets")) Module["specialHTMLTargets"] = function() { abort("'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "demangle")) Module["demangle"] = function() { abort("'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "demangleAll")) Module["demangleAll"] = function() { abort("'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "jsStackTrace")) Module["jsStackTrace"] = function() { abort("'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackTrace")) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "getEnvStrings")) Module["getEnvStrings"] = function() { abort("'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64")) Module["writeI53ToI64"] = function() { abort("'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64Clamped")) Module["writeI53ToI64Clamped"] = function() { abort("'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToI64Signaling")) Module["writeI53ToI64Signaling"] = function() { abort("'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToU64Clamped")) Module["writeI53ToU64Clamped"] = function() { abort("'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "writeI53ToU64Signaling")) Module["writeI53ToU64Signaling"] = function() { abort("'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readI53FromI64")) Module["readI53FromI64"] = function() { abort("'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "readI53FromU64")) Module["readI53FromU64"] = function() { abort("'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "convertI32PairToI53")) Module["convertI32PairToI53"] = function() { abort("'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "convertU32PairToI53")) Module["convertU32PairToI53"] = function() { abort("'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "Browser")) Module["Browser"] = function() { abort("'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "FS")) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "MEMFS")) Module["MEMFS"] = function() { abort("'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "TTY")) Module["TTY"] = function() { abort("'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "PIPEFS")) Module["PIPEFS"] = function() { abort("'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SOCKFS")) Module["SOCKFS"] = function() { abort("'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GL")) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGet")) Module["emscriptenWebGLGet"] = function() { abort("'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetTexPixelData")) Module["emscriptenWebGLGetTexPixelData"] = function() { abort("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetUniform")) Module["emscriptenWebGLGetUniform"] = function() { abort("'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "emscriptenWebGLGetVertexAttrib")) Module["emscriptenWebGLGetVertexAttrib"] = function() { abort("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "AL")) Module["AL"] = function() { abort("'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_unicode")) Module["SDL_unicode"] = function() { abort("'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_ttfContext")) Module["SDL_ttfContext"] = function() { abort("'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_audio")) Module["SDL_audio"] = function() { abort("'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL")) Module["SDL"] = function() { abort("'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "SDL_gfx")) Module["SDL_gfx"] = function() { abort("'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLUT")) Module["GLUT"] = function() { abort("'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "EGL")) Module["EGL"] = function() { abort("'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLFW_Window")) Module["GLFW_Window"] = function() { abort("'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLFW")) Module["GLFW"] = function() { abort("'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "GLEW")) Module["GLEW"] = function() { abort("'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "IDBStore")) Module["IDBStore"] = function() { abort("'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "runAndAbortIfError")) Module["runAndAbortIfError"] = function() { abort("'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "warnOnce")) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackSave")) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackRestore")) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stackAlloc")) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "AsciiToString")) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToAscii")) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF16ToString")) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF16")) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF16")) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "UTF32ToString")) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "stringToUTF32")) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "lengthBytesUTF32")) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8")) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "allocateUTF8OnStack")) Module["allocateUTF8OnStack"] = function() { abort("'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +Module["writeStackCookie"] = writeStackCookie; +Module["checkStackCookie"] = checkStackCookie; +Module["abortStackOverflow"] = abortStackOverflow; +if (!Object.getOwnPropertyDescriptor(Module, "intArrayFromBase64")) Module["intArrayFromBase64"] = function() { abort("'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; +if (!Object.getOwnPropertyDescriptor(Module, "tryParseAsDataURI")) Module["tryParseAsDataURI"] = function() { abort("'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NORMAL")) Object.defineProperty(Module, "ALLOC_NORMAL", { configurable: true, get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); +if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_STACK")) Object.defineProperty(Module, "ALLOC_STACK", { configurable: true, get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); +if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_DYNAMIC")) Object.defineProperty(Module, "ALLOC_DYNAMIC", { configurable: true, get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); +if (!Object.getOwnPropertyDescriptor(Module, "ALLOC_NONE")) Object.defineProperty(Module, "ALLOC_NONE", { configurable: true, get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); + + + +var calledRun; + + +/** + * @constructor + * @this {ExitStatus} + */ +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +} + +var calledMain = false; + + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +}; + + + + + +/** @type {function(Array=)} */ +function run(args) { + args = args || arguments_; + + if (runDependencies > 0) { + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + + if (ABORT) return; + + initRuntime(); + + preMain(); + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else + { + doRun(); + } + checkStackCookie(); +} +Module['run'] = run; + +function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var print = out; + var printErr = err; + var has = false; + out = err = function(x) { + has = true; + } + try { // it doesn't matter if it fails + var flush = Module['_fflush']; + if (flush) flush(0); + // also flush in the JS FS layer + ['stdout', 'stderr'].forEach(function(name) { + var info = FS.analyzePath('/dev/' + name); + if (!info) return; + var stream = info.object; + var rdev = stream.rdev; + var tty = TTY.ttys[rdev]; + if (tty && tty.output && tty.output.length) { + has = true; + } + }); + } catch(e) {} + out = print; + err = printErr; + if (has) { + warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'); + } +} + +/** @param {boolean|number=} implicit */ +function exit(status, implicit) { + checkUnflushedContent(); + + // if this is just main exit-ing implicitly, and the status is 0, then we + // don't need to do anything here and can just leave. if the status is + // non-zero, though, then we need to report it. + // (we may have warned about this earlier, if a situation justifies doing so) + if (implicit && noExitRuntime && status === 0) { + return; + } + + if (noExitRuntime) { + // if exit() was called, we may warn the user if the runtime isn't actually being shut down + if (!implicit) { + err('program exited (with status: ' + status + '), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)'); + } + } else { + + ABORT = true; + EXITSTATUS = status; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + quit_(status, new ExitStatus(status)); +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + + + noExitRuntime = true; + +run(); + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/docs/never-web.md b/docs/never-web.md new file mode 100644 index 00000000..0f4f521d --- /dev/null +++ b/docs/never-web.md @@ -0,0 +1,351 @@ + + + + + +# Never on The Web + +You may try Never on the web. Just select an example or write your +own code! + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+  +
+ + + + diff --git a/docs/perceptron.md b/docs/perceptron.md deleted file mode 100644 index fdcec721..00000000 --- a/docs/perceptron.md +++ /dev/null @@ -1,385 +0,0 @@ ---- -title: Neural Network in Never ---- - -# Neural Network in Never - - -## Introduction - -Never is a functional programming language which includes matrices as first -class objects. It is very likely that you hear about Never for the first time. -I will demonstrate its major functions by implementing a simple neural network. -In fact it is an example of neural network basic component known as perceptron. -I will try to explain everything step by step so you can follow the article easily. - -## Sigmoid - -```never -func sigmoid(x : float) -> float -{ - 1.0 / (1.0 + exp(-x)) -} -``` - -Almost all programming languages include a concept of a function. In the above -example function ```sigmoid``` takes ```x``` as formal parameter and -returns function value. The function transforms almost all values below zero -to zero and almost all values above zero to one. It is used in neural networks -to have zero-one results for parameters. - -## Linear Congruential Generator - -```never -func randomize(seed : int) -> () -> int -{ - let v = seed; - func rand() -> int - { - v = (v * 1103515245 + 12345) % 2147483648 - } - rand -} -``` - -Functions in Never can be nested to any level. They can also access parameters -or local variables defined in their syntactic scope. In the above -example function ```rand``` can access and modify variable ```v``` defined -in the scope of function ```randomize```. Each time the function is invoked -variable ```v``` will be modified and can be treated as local counter. - -Functions are also first class objects which means they can be accepted -or returned by other functions. In the above example function ```rand``` -is returned by function ```randomize```. What is also noticeable is that -```v``` becomes closed in the scope of function returned. Because of that -sometimes functions such as ```rand``` are called closures. - -In particular function ```rand``` is a linear congruential generator or in simple -words a function which generates pseud-random values. It will be used later -to initialize neural network. - -## Matrix Algebra - -```never -func print_matrix(W[D1, D2] : float) -> int -{ - let r = 0; - let c = 0; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - prints(W[r, c] + " ") - }; - prints("\n") - } -} -``` - -Never supports matrices which can be passed and returned by functions as any -other type. In the above example function ```print_matrix``` takes two dimensional -array ```W``` as its formal parameter. Function dimensions are accessible -by parameters ```D1``` and ```D2```. Such matrix passing style is known as -conformant arrays and lets to avoid problems of accessing matrces elements out -of their bounds. The above function prints matrix elements in row order. First -all elements in columns of row 0, next of row 1, and so on. Function ```prints``` -takes string as parameter and prints it on console. Addition operator is overloaded -(which means it can take arguments of different types) and in the above case adds -float and string parameter by changing float into its string representation. - -```never -func one_matrix(W[D1, D2] : float) -> int -{ - let r = 0; - let c = 0; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - W[r, c] = 1.0 - } - } -} -``` - -Functions can also modify passed parameters. The above function initializes -all matrix elements to one. Later this matrix will be used to perform matrix -subtraction. - -```never -func rand_matrix(W[D1, D2] : float, rand() -> int) -> int -{ - let r = 0; - let c = 0; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - W[r, c] = (rand() % 1000) / 1000.0 - } - } -} -``` - -```never -func sigmoid_matrix(W[D1, D2] : float) -> [_,_] : float -{ - let r = 0; - let c = 0; - let S = {[ D1, D2 ]} : float; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - S[r, c] = sigmoid(W[r, c]) - } - }; - S -} -``` - -Of course we may initialize matrix elements to any value. Function ```rand_matrix``` -assigns values generated by function ```rand``` to matrix elements. The example -also presents how function ```rand``` is passed as a parameter. Second example -shows how function ```sigmoid_matrix``` calculates sigmoid values for each -matrix elements. - -```never -func T_matrix(W[D1, D2] : float) -> [_,_] : float -{ - let r = 0; - let c = 0; - let T = {[ D2, D1 ]} : float; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - T[c, r] = W[r, c] - } - }; - T -} -``` - -One of common matrix operation is transposition. The function ```T_matrix``` -returns matrix whose element at index ```[r, c]``` is placed at index ```[c, r]``` -in the returned matrix. - -```never -func Hadamard_matrix(W1[D1, D2] : float, W2[D3, D4] : float) -> [_,_] : float -{ - let r = 0; - let c = 0; - let H = {[ D1, D2 ]} : float; - - for (r = 0; r < D1; r = r + 1) - { - for (c = 0; c < D2; c = c + 1) - { - H[r, c] = W1[r, c] * W2[r, c] - } - }; - H -} -``` - -Matrices can also be multiplied. Hadamard multiplication is a special kind -of multiplication where each element of matrix ```W1``` is multiplied -by corresponding element of matrix ```W2```. Of course each matrix should -have same dimensions size. Matrix multiplication which uses dot product -to calculate values of its elements is implemented in Never by operator ```*```. - -As all basic building operations are described we can implement neural network. - -## Forward Propagation - -![Perceptron][perceptron] - -Supervised learning is one of methods used to generate neural network. The -algorithm has set of inputs and set of expected results. The difference between -expected result and output generated by the network is used to change neural -network parameters. The algorithm may be formalized in matrix algebra. - -As usual lets start with basic components which are needed. As stated above -we need set of inputs ```x``` and expected results ```y```. They may be -expressed in Never as follows: - -```never - let x = [ [0, 1, 0], - [1, 0, 0], - [1, 1, 1], - [0, 0, 1] ] : float; -``` - -```never - let y = [ [1, 0, 1, 0] ] : float; - let yT = T_matrix(y); -``` - -Expected results ```y``` are single values. To simplify notation instead of typing -```y = [ [1], [0], [1], [0] ]``` it is more convenient to define vector -```y = [ 1, 0, 1, 0 ]``` and transpose it. As you may notice it is expected -the the network will ignore boundary values ```x0```, ```x2``` and -return only value of ```x1```. - -Input weights ```W``` are first initialized to random values. The following code -can set ```[3, 1]``` matrix. - -```never - let W = {[ 3, 1 ]} : float; - let rand = randomize(165); - rand_matrix(W, rand); -``` - -Now output calculation formula is simple. What is also worth noticing is that -array ```s``` contains four values for each input sample. - -```never - let z = {[ 4, 1 ]} : float; - let s = {[ 4, 1 ]} : float; - - z = x * W; - s = sigmoid_matrix(z); -``` - -This step finishes forward propagation. Actually, if values in matrix ```W``` -were correct then we would get also proper output values. Unfortunatelly -they need to adjusted by backpropagation phase. - -## Backpropagation - -The network needs to pass several learning cycles to change random values -```W``` set in initial phase into such which will give smallest error and -thus expected results. - -Lets recall that matrix ```s``` contains output values for each input value. -Error can be calculated by subtracting each element of ```yT``` from ```s```. -Of course we keep these values in a matrix. - -```never - let err = {[ 4, 1 ]} : float; - err = yT - s; -``` - -Now we should correct weights in matrix ```W``` so that values for each input -will lead to smallest error. For that sigmoid derivation is used. One may -easily check that first derivative of function ```s = 1.0 / (1.0 + exp(-x))``` is -```sD = s * (1 - s)```. First derivative multiplied by error (or function -gradient) lets to move towards minimum of a function. This method is known -as gradient descent. Please note that we want to correct values in ```W``` by -subtracting error. Also we want to move in gradient's opposite direction. -Thus plus sign in the equation. To summarize backpropagation equation is -```W = W + xT * err * sD```. - -All calculation are done for each input value at once. Matrix of input values -is given by transpose of matrix ```T```. To multiply values by their -corresponding elements matrix Hadamard multiplication is used. -Value ```1``` is replaced by matrix with all elements initialized to ```1```. - -```never - let sD = {[ 4, 1 ]} : float; - let one = {[ 4, 1 ]} : float; - - sD = Hadamard_matrix(s, one - s); - W = W + xT * Hadamard_matrix(err, sD) -``` - -Learning cycles are executed using loop over forward and backpropagation -phases. - -```never - let i = 0; - for (i = 0; i < 1000; i = i + 1) -``` - -## Listing - -```never -func nn() -> int -{ - let x = [ [0, 1, 0], - [1, 0, 0], - [1, 1, 1], - [0, 0, 1] ] : float; - let xT = T_matrix(x); - let y = [ [1, 0, 1, 0] ] : float; - let yT = T_matrix(y); - let W = {[ 3, 1 ]} : float; - let z = {[ 4, 1 ]} : float; - let s = {[ 4, 1 ]} : float; - let sD = {[ 4, 1 ]} : float; - let err = {[ 4, 1 ]} : float; - let one = {[ 4, 1 ]} : float; - let rand = randomize(165); - let i = 0; - - one_matrix(one); - rand_matrix(W, rand); - - for (i = 0; i < 1000; i = i + 1) - { - z = x * W; - s = sigmoid_matrix(z); - - err = yT - s; - sD = Hadamard_matrix(s, one - s); - W = W + xT * Hadamard_matrix(err, sD) - }; - - z = ([[ 0, 1, 0 ]] : float) * W; - s = sigmoid_matrix(z); - print_matrix(s); - - z = ([[ 0, 1, 1 ]] : float) * W; - s = sigmoid_matrix(z); - print_matrix(s); - - 0 -} -``` - -The above code presents the whole network learning algorithm on one listing. - -## Beginning at the End - -```never -func main() -> int -{ - nn(); -} -``` - -All code in Never begins in ```main``` function. Thus we only execute function -```nn``` inside it. - -| [ X ] | y | expected | -|--------------|---------|----------| -| [ 1, 1, 1 ] | 0.96 | 1.00 | -| [ 1, 1, 0 ] | 1.00 | 1.00 | -| [ 1, 0, 1 ] | 0.00 | 0.00 | -| [ 1, 0, 0 ] | 0.05 | 0.00 | -| [ 0, 1, 1 ] | 1.00 | 1.00 | -| [ 0, 1, 0 ] | 1.00 | 1.00 | -| [ 0, 0, 1 ] | 0.05 | 0.00 | -| [ 0, 0, 0 ] | 0.50 | 0.00 | - -Of course it is interesting to verify what neural network responses are. -I prepared a code which outputs values for every possible input. As you may see -in seven out of eight cases the network returns expected values. - -## Summary - -The article demonstrates how Never language can be used to define a simple -neural network. Also supervised neural network learning algorithm is demonstrated. -I hope you liked the article and learnt something useful about neural networks, -matrix algebra or Never programming language. - -[perceptron]: https://never-lang.github.io/never/perceptron.png "Perceptron" - - - diff --git a/docs/perceptron.png b/docs/perceptron.png deleted file mode 100644 index a5ee104abeacbbc838c3c4c70014d0f4b17b6b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18966 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 DrUHN^ diff --git a/docs/perceptron.svg b/docs/perceptron.svg deleted file mode 100644 index db43c5a5..00000000 --- a/docs/perceptron.svg +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - x1 - - - - x2 - - - - x3 - - - - - s(Σxi*wi) - - - - y - - - w1 - - w2 - - w3 - - - - - - - diff --git a/docs/pitria.md b/docs/pitria.md deleted file mode 100644 index a276f786..00000000 --- a/docs/pitria.md +++ /dev/null @@ -1,63 +0,0 @@ -# Pythagorean Triangle - -This example presents how to create Pythagorean triangles using list comprehension and ranges. - -```never -record Triangle -{ - a : int; - b : int; - c : int; -} - -func printTriangle(t[D] : Triangle) -> int -{ - for (d in t) - prints("pythagorean triangle" + - " a = " + d.a + - " b = " + d.b + - " c = " + d.c + "\n") -} - -func getRange() -> [_] : int -{ - [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ] : int -} - -func main() -> int -{ - let r = getRange(); - let pitria = [ Triangle(a, b, c) | - a in r; - b in r; - c in r; - a * a + b * b == c * c ] : Triangle; - - printTriangle(pitria); - - 0 -} -``` - -Function ```getRange``` can be substituted with one returning range type. - -```never -func getRange() -> [..] : range -{ - [ 1..13 ] -} -``` - -After running the program, the following output is displayed. - -Output: - -```plaintext -pythagorean triangle a = 3 b = 4 c = 5 -pythagorean triangle a = 4 b = 3 c = 5 -pythagorean triangle a = 5 b = 12 c = 13 -pythagorean triangle a = 6 b = 8 c = 10 -pythagorean triangle a = 8 b = 6 c = 10 -pythagorean triangle a = 12 b = 5 c = 13 -``` - diff --git a/docs/qsort.md b/docs/qsort.md deleted file mode 100644 index 50354ae7..00000000 --- a/docs/qsort.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Quick Sort ---- - -# Sorting - Quick Sort - -Data sorting is one of fundamental problems introduced at algorithm courses. -One of well known algorithms which is frequently used to efficiently sort data -is called quick sort. This blog presents quick sort algorithm implementation -in Never programming language. - -## Introduction - -There are many sorting algorithms described with different properties such -as time complexity, stability and others. - -Time complexity detemines how much time is spent to sort given data. Many sorting -algorithms have O(n^2) or O(n\*log(n)) complexities which denotes how many operations are needed -when n number of items is sorted. In special cases, for example when sorting -integer items from finite range, it may take O(n) operations to sort them. In general, though, -sorting algorithms use O(n\*log(n)) or O(n^2) operations. Quick sort time -complexity depends on data which is being sorted. In many cases it will take -O(n\*log(n)) operations to sort data. However, in some cases it may take O(n^2) -operations. Despite this drawback, the algorithm frequently presents O(n\*log(n)) -characteristics and effitently sorts data. - -Another mentioned property is stability. -In short, when sorting records which consit of two attributes by the first -attribute, the order of records by the second attribute will be kept. To illustrate -this property lets imagine that we are sorting list of names by the first name. -When, before sorting, two names with the same first name are in order, then -after sorting, their mutual order will be kept. Unfortunatelly this property -is not kept by quick sort algorithm. In some cases this may limit its usage. - -Quick sort basic idea is to split data into two sequences which are recursively -sorted. During every pass items in each sequence lower than some chosen item -(called pivot) are moved to the left part and larger than it are moved to the -right. As long as they are to the left or to the right of the pivot, their -mutual order is not considered. When such subsequences are sorted next, -then their order will be sorted. Also, please note, that the pivot is at its -correct place when sorting each sequence. (Btw, this property is used to quickly -choose median of given data, but we will skip this algorithm in this article). - -Quick sort algorithm is often considered as toublesome as choosing the pivot -and easily moving items to the left or right side of the sequence may be tidous. -Later I will show how to avoid such obstacles and make quick sort implementation -as easy as other sorting algorithms. - -## Algorithm - -In the beginning lets perpare some utility functions. Which will be needed to -visualize and implement workings of the algorithm. - -```never -func print_tab(tab[D] : int) -> int -{ - var i = 0; - - for (i = 0; i < D; i = i + 1) - prints(tab[i] + " "); - - prints("\n"); - - 0 -} - -func swap(a : int, b : int) -> int -{ - var t = 0; - - t = a; - a = b; - b = t; - - 0 -} - -func randomize(seed : int) -> () -> int -{ - let v = seed; - func rand() -> int - { - v = (v * 11 + 12) % 21474 - } - rand -} -``` - -The first of the above functions prints out array which is passed. Function -```swap``` swaps two items. Last, ```randomize``` returns ```rand``` closer -which is used to generate random values. Quick sort algorithm uses random -places to choose pivot. This way we can try to avoid O(n^2) algorithm complexity. - -```never -func qsort_rec(tab[D] : int, - beg : int, end : int, - rand() -> int) -> int -{ - var i = 0; - var j = beg - 1; - var p = 0; - - if (beg < end - 1) - { - p = beg + rand() % (end - beg); - swap(tab[p], tab[end - 1]); - - prints(beg + " " + end + " " + p + "\n"); - - for (i = beg; i < end; i = i + 1) - { - if (tab[i] < tab[end - 1]) - { - j = j + 1; - swap(tab[j], tab[i]) - } - }; - - j = j + 1; - swap(tab[j], tab[end - 1]); - - qsort_rec(tab, beg, j, rand); - qsort_rec(tab, j + 1, end, rand) - } - else - { - 0 - }; - - 0 -} - -func qsort(tab[D] : int) -> int -{ - var rand = randomize(6); - - qsort_rec(tab, 0, D, rand) -} -``` - -Functions ```qsort``` and ```qsort_rec``` implement quick sort algorithm. Function -```qsort``` is used to initialize recursive invocations of sequence sortings. -Array size in Never is passed together with array. To quickly split array -into two parts we will use start and end index of the array instead. However, -the first invocation of ```qsort_rec``` takes first and last indexes based on array -size. Function ```qsort_rec``` chooses pivot ```p``` and then moves item -in this position to the end of a sequence. This trick lets to easily implement -the algorithm. Also starting index ```j``` where items are moved is initalized -to ```-1```. After sequence pass an item moved to the end is placed in correct -position. Then sorting continues in left and right subsequences. - - -```never -func main() -> int -{ - var tab = [ 4, 9, 2, 7, 5, 6, 8, 3, 10, 1 ] : int; - - print_tab(tab); - - qsort(tab); - - print_tab(tab); - - 0 -} -``` - -The above algorithm is demonstrated in function ```main``` to sort sample data. - -## Summary - -In this article I presented quick sort algorithm implementation in Never -programming language. Of course it is possible to implement it using any other -language. The trick to move pivot to the end of sequence sorted in each -recursive pass lets to implement it easily. - - diff --git a/docs/rodcut.md b/docs/rodcut.md deleted file mode 100644 index 346f5be9..00000000 --- a/docs/rodcut.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Rod Cutting ---- - -# Dynamic Programming - Rod Cutting - -## Introduction - -Dynamic programming is well known algorithm design method. -It is used to solve problems where problem of size N is solved using -solution of problems of size N - 1 (or smaller). Introductory example is -calculation of Fibonacci numbers where F(N) (problem of size N) is calculated -as sum of F(N - 2) and F(N - 1) (problems of size N - 2 and N - 1). -Usually smaller problems are calculated many times. To avoid repeatable -calculations their result is memorized in an array. This technique -(known as memoization) significantly speeds up calculations. -In the next sections I will present classic problem known as rod cutting -which is solved using dynamic programming. - -## Problem - -Rod cutting problem is formulated as maximum profit that -can be obtained by cutting a rod into parts. The question is how to cut -the rod so that profit is maximized. - -## Recursive Algorithm - - -```never -func max(a : int, b : int) -> int -{ - a > b ? a : b -} -``` - -As rod cutting problem mentions maximum profit, likely maximum function -is needed. The above code snippet presents such function. - -```never -func cutrod(price[_] : int, len : int) -> int -{ - var i = 0; - var max_p = -1; - - if (len <= 0) - { - max_p = 0 - } - else - { - while (i < len) - { - max_p = max(max_p, price[i] + cutrod(price, len - i - 1)); - i = i + 1 - } - }; - - max_p -} -``` - -Now a little more difficult part. Given price list (in array ```price```) -of different rod lengths and length of the rod, maximum profit ```max_p``` can -be calculated as profit obtained by cutting rod of length ```i``` plus profit earned by -cutting rod of ```length - i``` (in the code above ```1``` is subtracted as -rod of length ```i``` is at index ```i - 1``` in the array ```price```). Please note -that problem of size ```len``` is calculated using solution to problem -of size ```len - i - 1```. This sentence can be formulated by simple -expression ```max_p = max(max_p, price[i] + cutrod(price, len - i - 1))```. - -```never -func main() -> int -{ - let price = [ 1, 5, 8, 9, 10, 17, 17, 20 ] : int; - - cutrod(price, 8) -} -``` - -An example of maximizing profit obtained by cutting a rod of length 8 where -sections of lengths 1, 2, 3, ... can be sold for 1, 5, 8, ... is presented above. - -### Memoization - -```never -func cutrod(price[P] : int, memo[M] : int, len : int) -> int -{ - var i = 0; - var max_p = -1; - - if (memo[len] != -1) - { - max_p = memo[len] - } - else - { - while (i < len) - { - max_p = max(max_p, price[i] + cutrod(price, memo, len - i - 1)); - i = i + 1 - } - }; - - memo[len] = max_p -} -``` - -```never -func main() -> int -{ - let price = [ 1, 5, 8, 9, 10, 17, 17, 20 ] : int; - let memo = [ 0, -1, -1, -1, -1, -1, -1, -1, -1 ] : int; - - cutrod(price, memo, 8) -} -``` -As mentioned in the introduction dynamic programming uses memoization to speed up -calculations. Solutions to smaller problems are stored in array ```memo```. -When function ```cutrod``` is invoked for given rod length and profit of -selling such rod is known then it is returned immediately. The above code snippet -introduces this optimization. - -## Summary - -This article presents short introduction to dynamic programming. There -are many other classic problems which can be solved using this method. -Coin change, matrix multiplication or longest common subsequence are examples -of most well known problems. I encourage you to study them. - - diff --git a/docs/tailrec.md b/docs/tailrec.md deleted file mode 100644 index 758875c6..00000000 --- a/docs/tailrec.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Tail Recursion ---- - -# Recursion - -*To Understand Recursion, You Must First Understand Recursion.* - -![Uroboros; Public Domain reproduced by Carlos Adanero][uroboros] - -## Introduction -Many problems are expressed using themselves as subproblems. This leads to an interesting observation, that to solve a problem one needs to solve the same problem again. Of course such loop needs to be broken somewhere. Usually subproblems are of smaller size than the original. In mathematics a classical example of such a function is Fibonacci function which is defined as ```fib(1) = 1, fib(2) = 1, fib(n) == fib(n - 1) + fib(n - 2)```. Programmers also noticed that value of such functions can be automatically calculated by a computer. Unfortunately computers are electrical devices which have their limitations. One of them is speed of execution which is finite and thus larger problems take longer to execute. The other one is memory size which also influences size of problems which can be solved. In many functions the same subproblem is calculated repeatadely. As computers execute instructions they must be programmed to reuse previously calculated values. Otherwise they will blindly recalculate same problems again and again. For example, simple implementation of the Fibonacci function for each ```n``` would solve the same subproblems twice. In recursion of course! Which leads to exponential number of instructions invoked. Despite those limitations it is tempting to use recursion to express problems. They become easier to express and later understand. In many cases, when subproblem is divided by two, for example, in many practical problems this leads to very few levels of recursion which can be handled by physical computers. For problems with 1 million elements such division results only in 20 levels of recursion calls. Also it is easy to use memory and store results of already calculated functions. Such a technique, known as memoizations, significantly speeds to calculations. Another technique, which is described in this article, is known as tail recursion. - -## Tail Recursion -The following code listing presents Fibonacci function expressed in [Never][never-lang] language. It is expressed almost in the same way as its mathematical definition. To calculate ```fib(20)``` function ```fib``` is called 21891 times. When executed on a typical laptop it takes approximately 0.6s to execute (unsing Never language). - -```never -func fib(n : int) -> int -{ - (n == 0) ? 1 : (n == 1) ? 1 : fib(n - 1) + fib(n - 2) -} -``` - -Mathematicians and computer scientists began to think how this situation could be improved. Mathematicians noticed that when the recursion call is the last one results are evaluated differently. Function result is calculated as result of immediate subproblem. Thus, there are much fewer subproblems which are calculated. Computer scientists realized that the call can be optimized and avoided completely. Such recursive last calls turn into a loop which is executed again and again. In the above example the last function called is addition. How can it be turned into tail recursion? - -First, it needs to be the last call. Second, it needs parameter ```n```. Also we may notice that result is a sum of two previous values, lets name them ```a``` and ```b```. - -```never -func fib(n : int, a : int, b : int) -> int -{ - (n == 0) ? a : (n == 1) ? b : fib(n - 1, b, a + b) -} -``` - -The above listing presents tail recursive definition of the Fibonacci function. During each call its value is calculated by adding two previous values. What is most important there will be just 20 recursive calls. Now it takes only 0.004s to execute. 150 times faster and 1094 fewer function calls! - -## Function Evaluation -Other functions can be turned into tail recursive as well. - -```never -func gcd(x : int, y : int) -> int -{ - (y == 0) ? x : gcd(y, x % y) -} -``` - -The above function present greatest common divisor function. - -```never -func factorial(n : int, val : int) -> int -{ - n == 0 ? val : factorial(n - 1, n * val) -} -``` - -```never -func power(a : int, n : int, val : int) -> int -{ - n == 0 ? val : power(a, n - 1, a * val) -} -``` - -Next two functions define factorial and power functions. - -## Programming -Tail recursive functions can be used to create programs. When evaluating mathematical functions we were not interested how their value is calculated. However, when creating programs, we may use the fact that tail recursive function is executed in a loop. Now we are less interested in results as such. The program benefits from repeated calls made when recursive function is invoked. - -To illustrate this technique lets have a look at the following examples. Different functions are executed over elements of an array. [Never][never-lang] language declares an array of four integers as ```{ 1, 2, 3, 4 } -> int``` and gets value of its elements using ```t[i]``` syntax. When an array is passed to a function its size is given in ```t[elems] -> int``` parameter. - -```never -func tprint( t[elems] : int ) -> int -{ - func __tprint( val : int, i : int, t[elems] : int ) -> int - { - i < elems - 1 ? __tprint( print(t[i]), i + 1, t ) : t[i] - } - - __tprint(t[0], 0, t) -} -func main() -> int -{ - tprint( [ 10, 20, 30, 40, 50, 60 ] : int ) -} -``` - -The above function ```__tprint``` is invoked for every element of an array. Each element of the array is printed using ```print(t[i])``` function. Next the ```__tprint``` is invoked again to print the next value. To make program more readable function ```__tprint``` is defined within function ```tprint``` which takes the array as its parameter. This technique will recur in following examples. - -```never -func tsum( t[elems] : int) -> int -{ - func __tsum( sum : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tsum( sum + t[i], i + 1, t ) : sum - } - __tsum(0, 0, t) -} -func main() -> int -{ - tsum( [ 10, 20, 30, 40, 50, 60 ] : int ) -} -``` -To calculate sum of array elements in each recursive call sum is increased. Finally sum of all elements is returned. - -```never -func tmin( t[elems] : int ) -> int -{ - func __tmin( min : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tmin( t[i] < min ? t[i] : min, i + 1, t ) : min - } - __tmin(t[0], 0, t) -} -func main() -> int -{ - tmin( [ 60, 20, 10, 30, 50, 40, 80, 90, 100 ] : int ) -} -``` -Similar idea can be used to determine the lowest value within an array... - -```never -func exists( e : int, t[elems] : int ) -> int -{ - func __exists( i : int, e : int, t[elems] : int ) -> int - { - i < elems ? ( e == t[i] ? 1 : __exists( i + 1, e, t ) ) : 0 - } - __exists( 0, e, t ) -} -func main() -> int -{ - exists( 100, [ 60, 20, 10, 30, 50, 40, 80, 90, 100 ] : int ) -} -``` -...or used to determine if given value exists with an array. Recursive calls stop when sought after value is found. - -```never -func add_five(e : int) -> int -{ - print(e + 5) -} - -func tforeach( t[elems] : int, each(e : int) -> int) -> int -{ - func __tforeach( val : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tforeach( each(t[i]), i + 1, t ) : 0 - } - __tforeach(t[0], 0, t) -} -func main() -> int -{ - tforeach( [ 10, 20, 50, 30, 40 ] : int, add_five ) -} -``` -[Never][never-lang] supports first-call functions which can be passed to other functions. This property can be used to execute arbitrary function over all elements. In the above example function ```add_five``` is passed to ```tforeach``` function. - -```never -func sum_mapi(i : int, e : int) -> int -{ - print(i + e) -} - -func tmapi( t[elems] : int, mapi(i : int, e : int) -> int) -> int -{ - func __tmapi( val : int, i : int, t[elems] : int ) -> int - { - i < elems ? __tmapi( mapi(i, t[i]), i + 1, t ) : 0 - } - __tmapi(t[0], 0, t) -} -func main() -> int -{ - tmapi( [ 10, 20, 50, 30, 40 ] : int, sum_mapi ) -} -``` -The above listing presents ```mapi``` function which is invoked with element index and its value. - -```never -func odd( e : int ) -> int -{ - e % 2 -} -func do( e : int ) -> int -{ - print(e + 1) -} - -func filter( t[elems] : int, if( int ) -> int, do( int ) -> int ) -> int -{ - func __filter( val : int, i : int, t[elems] : int, if( e : int ) -> int, do( e : int ) -> int ) -> int - { - i < elems ? __filter( if(t[i]) ? do(t[i]) : 0, i + 1, t, if, do ) : 0 - } - __filter( 0, 0, t, if, do ) -} -func main() -> int -{ - filter( [ 61, 22, 11, 34, 58, 41, 83, 92, 101 ] : int, - odd, do ) -} -``` -The idea to pass first-class functions can be extended. The above listing presents ```filter``` function which is executed over all elements of an array. When ```if``` function return value other than zero then function ```do``` is invoked. - -## Summary -Examples presented in this article show how tail recursion can be used in practise. Both to calculate values of functions or used to execute code over elements of an array. Using tail -recursive functions lets to increase program execution speed and reduce memory size. - -[uroboros]: https://never-lang.github.io/never/Serpiente_alquimica.jpg "Uroboros" -[never-lang]: https://never-lang.github.io/never - - diff --git a/docs/wave.md b/docs/wave.md deleted file mode 100644 index 098dc3a2..00000000 --- a/docs/wave.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Wave ---- - -One of the concepts behind Linux (or Unix) design is to execute small programs which -process each others outputs to deliver final result. In this article -I will present how to create a small animation which uses several Linux utilities. - -![Wave][wave] - -## Wave - -Animation uses well know [POV-Ray][Povray] raytracing tool to generate 3D ```z = sin(x, y)``` -function. First we need to generate a frame of the animation sequence. - -```never -record Point -{ - x : float; - y : float; - z : float; -} - -func print_point(p : Point) -> int -{ - prints("<" + p.x + ", " + p.y + ", " + p.z + ">"); - 0 -} - -func print_rect(data[D1, D2] : Point, x : int, y : int) -> int -{ - prints("triangle { "); - print_point(data[x, y]); - prints(", "); - print_point(data[x + 1, y]); - prints(", "); - print_point(data[x + 1, y + 1]); - prints(" }\n"); - - prints("triangle { "); - print_point(data[x, y]); - prints(", "); - print_point(data[x + 1, y + 1]); - prints(", "); - print_point(data[x, y + 1]); - prints(" }\n"); - - 0 -} - -func print_wave(data[D1, D2] : Point) -> int -{ - var x = 0; - var y = 0; - - for (x = 0; x < D1 - 1; x = x + 1) - { - for (y = 0; y < D2 - 1; y = y + 1) - { - print_rect(data, x, y) - } - }; - - 0 -} - -func head() -> int -{ - prints("\ - camera { \ - location <0, -16, -12> \ - look_at <0, 0, 0> \ - rotate <0, 0, 30> \ - } \ - light_source { <0, 0, -32> color rgb<1, 1, 1> } \ - mesh { \n"); - - 0 -} - -func tail() -> int -{ - prints("\ - texture { \ - pigment { color rgb<0.9, 0.9, 0.9> } \ - finish { ambient 0.2 diffuse 0.7 } \ - } \ - }\n"); - - 0 -} - -func get_wave(phi : float, size : int) -> [_, _] : Point -{ - var x = 0; - var y = 0; - var x_v = 0.0; - var y_v = 0.0; - var z_v = 0.0; - var tab = {[ size, size ]} : Point; - - for (x = 0; x < size; x = x + 1) - { - for (y = 0; y < size; y = y + 1) - { - tab[x, y] = Point(0.0, 0.0, 0.0); - - x_v = -2.0 * 3.141 + 4.0 * 3.141 / size * x; - y_v = -2.0 * 3.141 + 4.0 * 3.141 / size * y; - z_v = sin(phi + sqrt(x_v * x_v + y_v * y_v)); - - tab[x, y].x = x_v; - tab[x, y].y = y_v; - tab[x, y].z = z_v - } - }; - - tab -} - -func generate(phi : float) -> int -{ - var data = get_wave(phi, 24); - - head(); - print_wave(data); - tail(); - - 10 -} - - -func main(phi : int) -> int -{ - generate(2.0 * 3.141 / 32.0 * phi); - 0 -} - -``` - -The above listsing uses [Never][never-lang] programming language to generate Povray scene -description. 3D data is calculated in function ```get_wave```. Sin function -values range from -2*pi to 2*pi both for ```x``` and ```y``` arguments. Next the data -is output as Povray mesh by functions ```head```, ```print_wave``` and ```tail```. -Function ```main``` takes an argument which specifies frame number. Frame number -is an animation offset used in ```sin``` function. - -## Povray, bash and convert - -To generate animation several frames need to be combined together. - -```bash -for f in {0..63} -do -never -m 50000 -f wave.nev $f > wave_$f.pov -done -``` - -First 64 frames are generated which pass offset from 0 to 4*pi which gives -full animation cycle. - -Next frames are processed with Povray to generate graphics. - -```bash -for f in wave*.pov -do -povray $f -done -``` - -And last they are combined together with convert tool. - -```bash -convert -delay 10 -loop 0 wave_{0..63}.png wave.gif -``` - -I hope you liked this tutorial! - -## Links - -* [Never][never-lang] -* [POV-Ray][Povray] -* [convert][convert] - -[wave]: https://never-lang.github.io/never/wave_small.gif "Wave" -[never-lang]: https://never-lang.github.io/never -[Povray]: http://www.povray.org/ "POV-Ray" -[Convert]: https://imagemagick.org/script/convert.php - - diff --git a/docs/wave_small.gif b/docs/wave_small.gif deleted file mode 100644 index c8222741cc6e2fcfd9a81a66deaee2a895262ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652872 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

9f$j5j> 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 z<>lNint_value == 0) { *result = CONSTRED_FAIL; - print_error_msg(value->line_no, "division by zero\n"); + print_error_msg(value->line_no, "division by zero"); return 0; } @@ -250,7 +250,7 @@ int expr_constred(expr * value, int * result) if (right_value->float_value == 0) { *result = CONSTRED_FAIL; - print_error_msg(value->line_no, "division by zero\n"); + print_error_msg(value->line_no, "division by zero"); return 0; } @@ -275,7 +275,7 @@ int expr_constred(expr * value, int * result) if (right_value->int_value == 0) { *result = CONSTRED_FAIL; - print_error_msg(value->line_no, "division by zero\n"); + print_error_msg(value->line_no, "division by zero"); return 0; } diff --git a/front/gencode.c b/front/gencode.c index ef521006..5e10e906 100644 --- a/front/gencode.c +++ b/front/gencode.c @@ -36,7 +36,7 @@ int expr_enumtype_check_call(func * func_value, symtab * stab, expr * value, int value->enumtype.called == 0) { *result = GENCODE_FAIL; - print_error_msg(value->line_no, "enum type record %s::%s not constructed\n", + print_error_msg(value->line_no, "enum type record %s::%s not constructed", value->enumtype.enum_id, value->enumtype.item_id); } @@ -285,7 +285,7 @@ int expr_id_gencode(unsigned int syn_level, func * func_value, symtab * stab, if (entry->enumtype_value != NULL) { *result = GENCODE_FAIL; - print_error_msg(value->line_no, "found enum %s, at this stage it is very bad\n", + print_error_msg(value->line_no, "found enum %s, at this stage it is very bad", value->id.id); assert(0); } @@ -294,7 +294,7 @@ int expr_id_gencode(unsigned int syn_level, func * func_value, symtab * stab, if (entry->enumerator_value != NULL) { *result = GENCODE_FAIL; - print_error_msg(value->line_no, "found enumerator %s, at this stage it is very bad\n", + print_error_msg(value->line_no, "found enumerator %s, at this stage it is very bad", value->id.id); assert(0); } @@ -389,7 +389,7 @@ int func_gencode_freevars_freevar(func * func_value, symtab * stab, freevar * fr entry->type == SYMTAB_ENUMERATOR) { *result = GENCODE_FAIL; - print_error_msg(0, "found %s, at this stage it is very bad\n", + print_error_msg(0, "found %s, at this stage it is very bad", symtab_entry_type_str(entry->type)); assert(0); } diff --git a/front/parser.y b/front/parser.y index e77c1f46..0d78bb3a 100644 --- a/front/parser.y +++ b/front/parser.y @@ -9,7 +9,6 @@ #include "never.h" int parse_result; -extern int line_no; int yylex(token * tokp) { diff --git a/front/scanner.h b/front/scanner.h index 4cc7078d..419fa48f 100644 --- a/front/scanner.h +++ b/front/scanner.h @@ -24,6 +24,9 @@ #include "types.h" +extern unsigned int line_no; +void set_line_no(unsigned int value); + int yylex_destroy(); int lex_scan(token * tokp); diff --git a/front/scanner.l b/front/scanner.l index 7e534771..8e554793 100644 --- a/front/scanner.l +++ b/front/scanner.l @@ -15,6 +15,11 @@ unsigned int line_no = 1; string * string_value = NULL; +void set_line_no(unsigned int value) +{ + line_no = value; +} + void scanner_printf(const char * format, ...) { va_list ap; diff --git a/front/strutil.c b/front/strutil.c index 425185c3..20cf861a 100644 --- a/front/strutil.c +++ b/front/strutil.c @@ -157,12 +157,12 @@ void string_print(char * val) void string_print_int(int val) { - printf("%d\n", val); + printf("%d\r\n", val); } void string_print_float(float val) { - printf("%.2f\n", val); + printf("%.2f\r\n", val); } void string_print_char(char val) diff --git a/front/tcforin.c b/front/tcforin.c index a37a81f7..f5df94b5 100644 --- a/front/tcforin.c +++ b/front/tcforin.c @@ -69,7 +69,7 @@ int symtab_add_param_from_forin(symtab * tab, forin * value, case COMB_TYPE_RECORD: case COMB_TYPE_RECORD_ID: print_error_msg(value->in_value->line_no, - "for in loop expression incorrect type %s\n", + "for in loop expression incorrect type %s", comb_type_str(value->in_value->comb.comb)); break; } @@ -96,7 +96,7 @@ int expr_forin_check_type(symtab * tab, expr * value, func * func_value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "for in loop expression is not of one dimensional array, slice or range is %s\n", + "for in loop expression is not of one dimensional array, slice or range is %s", comb_type_str(value->forin_value->in_value->comb.comb)); } diff --git a/front/tcheckarr.c b/front/tcheckarr.c index 7765ba9f..2d160eff 100644 --- a/front/tcheckarr.c +++ b/front/tcheckarr.c @@ -47,7 +47,7 @@ int array_depth_list_well_formed(array * array_value, expr_list_weak * depth_lis { *result = TYPECHECK_FAIL; print_error_msg( - value->line_no, "incorrect types in array %s %s\n", + value->line_no, "incorrect types in array %s %s", param_type_str(ret->type), expr_type_str(value->type)); } } @@ -68,7 +68,7 @@ int array_depth_list_well_formed(array * array_value, expr_list_weak * depth_lis { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "incorrect types in array %s %s\n", + "incorrect types in array %s %s", param_type_str(ret->type), expr_type_str(value->type)); } @@ -85,7 +85,7 @@ int array_depth_list_well_formed(array * array_value, expr_list_weak * depth_lis *result = TYPECHECK_FAIL; print_error_msg( value->line_no, - "incorrect dimesions in array %s %s\n", + "incorrect dimesions in array %s %s", param_type_str(ret->type), expr_type_str(value->type)); } @@ -94,7 +94,7 @@ int array_depth_list_well_formed(array * array_value, expr_list_weak * depth_lis { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "incorrect types in array %s %s\n", + "incorrect types in array %s %s", param_type_str(ret->type), expr_type_str(value->type)); } @@ -195,7 +195,7 @@ int array_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "array is not well formed\n"); + print_error_msg(value->line_no, "array is not well formed"); } } else if (value->array.array_value->type == ARRAY_SUB) @@ -218,7 +218,7 @@ int array_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "dynamic array of %s is not supported\n", + print_error_msg(value->line_no, "dynamic array of %s is not supported", param_type_str(value->array.array_value->ret->type)); } @@ -233,7 +233,7 @@ int array_check_type(symtab * tab, expr * value, func * func_value, unsigned int else { value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "array is not well formed\n"); + print_error_msg(value->line_no, "array is not well formed"); } } diff --git a/front/tciflet.c b/front/tciflet.c index bc04a161..bf51f649 100644 --- a/front/tciflet.c +++ b/front/tciflet.c @@ -39,7 +39,7 @@ int iflet_guard_expr_cmp(iflet * iflet_value, int * result) { *result = TYPECHECK_FAIL; print_error_msg(iflet_value->line_no, - "enums are different %s and %s\n", + "enums are different %s and %s", value->comb.comb_enumtype->id, iflet_value->guard_item->enum_id); return 0; @@ -50,7 +50,7 @@ int iflet_guard_expr_cmp(iflet * iflet_value, int * result) { *result = TYPECHECK_FAIL; print_error_msg(iflet_value->line_no, - "enums are different %s and %s\n", + "enums are different %s and %s", value->comb.comb_enumtype->id, iflet_value->guard_record->enum_id); return 0; diff --git a/front/tcmatch.c b/front/tcmatch.c index e2614f3e..2e8a48f4 100644 --- a/front/tcmatch.c +++ b/front/tcmatch.c @@ -75,7 +75,7 @@ int symtab_add_matchbind_from_matchbind_list(symtab * tab, match_guard_record * enumerator_value->record_value->params == NULL) && matchbinds->count > 0) { *result = TYPECHECK_FAIL; - print_error_msg(guard_record->line_no, "enum record %s.%s takes no params while guard has %d\n", + print_error_msg(guard_record->line_no, "enum record %s.%s takes no params while guard has %d", guard_record->enum_id, guard_record->item_id, matchbinds->count); @@ -85,7 +85,7 @@ int symtab_add_matchbind_from_matchbind_list(symtab * tab, match_guard_record * if (enumerator_value->record_value->params->count != matchbinds->count) { *result = TYPECHECK_FAIL; - print_error_msg(guard_record->line_no, "enum record %s.%s takes %d params while guard has %d\n", + print_error_msg(guard_record->line_no, "enum record %s.%s takes %d params while guard has %d", guard_record->enum_id, guard_record->item_id, enumerator_value->record_value->params->count, @@ -135,14 +135,14 @@ int expr_match_guard_item_check_type(symtab * tab, match_guard_item * guard_item else { *result = TYPECHECK_FAIL; - print_error_msg(guard_item->line_no, "cannot find enum item %s.%s\n", + print_error_msg(guard_item->line_no, "cannot find enum item %s.%s", guard_item->enum_id, guard_item->item_id); } } else { *result = TYPECHECK_FAIL; - print_error_msg(guard_item->line_no, "found %s instead of enum %s\n", + print_error_msg(guard_item->line_no, "found %s instead of enum %s", symtab_entry_type_str(entry->type), guard_item->enum_id); } @@ -150,7 +150,7 @@ int expr_match_guard_item_check_type(symtab * tab, match_guard_item * guard_item else { *result = TYPECHECK_FAIL; - print_error_msg(guard_item->line_no, "cannot find enum %s\n", + print_error_msg(guard_item->line_no, "cannot find enum %s", guard_item->enum_id); } @@ -176,14 +176,14 @@ int expr_match_guard_record_check_type(symtab * tab, match_guard_record * guard_ else { *result = TYPECHECK_FAIL; - print_error_msg(guard_record->line_no, "cannot find enum item %s.%s\n", + print_error_msg(guard_record->line_no, "cannot find enum item %s.%s", guard_record->enum_id, guard_record->item_id); } } else { *result = TYPECHECK_FAIL; - print_error_msg(guard_record->line_no, "found %s instead of enum %s\n", + print_error_msg(guard_record->line_no, "found %s instead of enum %s", symtab_entry_type_str(entry->type), guard_record->enum_id); } @@ -191,7 +191,7 @@ int expr_match_guard_record_check_type(symtab * tab, match_guard_record * guard_ else { *result = TYPECHECK_FAIL; - print_error_msg(guard_record->line_no, "cannot find enum %s\n", + print_error_msg(guard_record->line_no, "cannot find enum %s", guard_record->enum_id); } @@ -257,7 +257,7 @@ int expr_match_guard_left_cmp(expr * value, match_guard * match_value, int * res { *result = TYPECHECK_FAIL; print_error_msg(match_value->line_no, - "enums are different %s and %s\n", + "enums are different %s and %s", value->comb.comb_enumtype->id, match_value->guard_item.guard->enum_id); return 0; @@ -268,7 +268,7 @@ int expr_match_guard_left_cmp(expr * value, match_guard * match_value, int * res { *result = TYPECHECK_FAIL; print_error_msg(match_value->line_no, - "enums are different %s and %s\n", + "enums are different %s and %s", value->comb.comb_enumtype->id, match_value->guard_record.guard->enum_id); return 0; @@ -287,7 +287,7 @@ int expr_match_guard_list_left_cmp(expr * value, match_guard_list * list, int * { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "match expression is %s not enum\n", comb_type_str(value->comb.comb)); + "match expression is %s not enum", comb_type_str(value->comb.comb)); return 0; } @@ -352,7 +352,7 @@ int expr_match_guard_mark_item(match_guard * match_value) if (enumerator_value->mark == 1) { print_warning_msg(match_value->line_no, - "repeated enum name %s.%s in match expression\n", + "repeated enum name %s.%s in match expression", match_value->guard_item.guard->enum_id, match_value->guard_item.guard->item_id); } @@ -369,7 +369,7 @@ int expr_match_guard_mark_item(match_guard * match_value) if (enumerator_value->mark == 1) { print_warning_msg(match_value->line_no, - "repeated enum name %s.%s in match expression\n", + "repeated enum name %s.%s in match expression", match_value->guard_record.guard->enum_id, match_value->guard_record.guard->item_id); } @@ -440,7 +440,7 @@ int expr_match_guard_are_all_mark_items(expr * value, int * result) if (enumerator_value != NULL && enumerator_value->mark == 0) { print_error_msg(value->line_no, - "match expression does not cover %s.%s enum\n", + "match expression does not cover %s.%s enum", enum_value->id, enumerator_value->id); *result = TYPECHECK_FAIL; } @@ -455,7 +455,7 @@ int expr_match_guard_are_all_mark_items(expr * value, int * result) else if (match_expr != NULL) { print_error_msg(value->line_no, - "match expression wrong type %s\n", + "match expression wrong type %s", comb_type_str(match_expr->comb.comb)); *result = TYPECHECK_FAIL; } @@ -474,14 +474,14 @@ int expr_match_guard_list_exhaustive(expr * value, match_guard_list * list, int if (match_else_cnt > 1) { print_warning_msg(value->line_no, - "match expression contains more than one else guard\n"); + "match expression contains more than one else guard"); } /* else as last guard present (warning) */ if (expr_match_guard_list_last_else(list) == TYPECHECK_FAIL) { print_warning_msg(value->line_no, - "match expression else guard is not last\n"); + "match expression else guard is not last"); } } else diff --git a/front/typecheck.c b/front/typecheck.c index 028048ba..86e9379f 100644 --- a/front/typecheck.c +++ b/front/typecheck.c @@ -483,14 +483,14 @@ int param_expr_cmp(param * param_value, expr * expr_value) { expr_conv(expr_value, EXPR_FLOAT_TO_INT); - print_warning_msg(expr_value->line_no, "converted float to int\n"); + print_warning_msg(expr_value->line_no, "converted float to int"); return TYPECHECK_SUCC; } else if (param_value->type == PARAM_FLOAT && expr_value->comb.comb == COMB_TYPE_INT) { expr_conv(expr_value, EXPR_INT_TO_FLOAT); - print_warning_msg(expr_value->line_no, "converted int to float\n"); + print_warning_msg(expr_value->line_no, "converted int to float"); return TYPECHECK_SUCC; } else if (param_value->type == PARAM_FLOAT && expr_value->comb.comb == COMB_TYPE_FLOAT) @@ -513,7 +513,7 @@ int param_expr_cmp(param * param_value, expr * expr_value) { expr_conv(expr_value, EXPR_FLOAT_TO_INT); - print_warning_msg(expr_value->line_no, "converted float to int\n"); + print_warning_msg(expr_value->line_no, "converted float to int"); return TYPECHECK_SUCC; } else if (param_value->type == PARAM_ARRAY && @@ -616,7 +616,7 @@ int expr_comb_is_enum(expr * value, int * result) *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "expression is %s not enum name\n", + "expression is %s not enum name", comb_type_str(value->comb.comb)); return TYPECHECK_FAIL; @@ -666,7 +666,7 @@ int expr_comb_cmp_and_set(expr * left, expr * right, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "arrays are different first line %u second line %u\n", + "arrays are different first line %u second line %u", left->line_no, right->line_no); } @@ -698,7 +698,7 @@ int expr_comb_cmp_and_set(expr * left, expr * right, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "slices are different first line %u second line %u\n", + "slices are different first line %u second line %u", left->line_no, right->line_no); } @@ -720,7 +720,7 @@ int expr_comb_cmp_and_set(expr * left, expr * right, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "functions are different %s:%u %s:%u\n", + "functions are different %s:%u %s:%u", left->id, left->line_no, right->id, right->line_no); } @@ -746,7 +746,7 @@ int expr_comb_cmp_and_set(expr * left, expr * right, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "types on conditional expression do not match %s %s\n", + "types on conditional expression do not match %s %s", comb_type_str(left->comb.comb), comb_type_str(right->comb.comb)); } @@ -765,7 +765,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { func * al_func = entry->func_value; print_error_msg(line_no, - "function %s already defined at line %u\n", + "function %s already defined at line %u", entry->id, al_func->line_no); } break; @@ -773,7 +773,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { param * al_param = entry->param_value; print_error_msg(line_no, - "parameter %s already defined at line %u\n", + "parameter %s already defined at line %u", entry->id, al_param->line_no); } break; @@ -781,7 +781,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { bind * al_bind = entry->bind_value; print_error_msg(line_no, - "bind %s already defined at line %u\n", + "bind %s already defined at line %u", entry->id, al_bind->line_no); } break; @@ -789,7 +789,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { matchbind * al_matchbind = entry->matchbind_value; print_error_msg(line_no, - "match bind %s already defined at line %u\n", + "match bind %s already defined at line %u", entry->id, al_matchbind->line_no); } break; @@ -797,7 +797,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { qualifier * al_qualifier = entry->qualifier_value; print_error_msg(line_no, - "qualifier %s already defined at line %u\n", + "qualifier %s already defined at line %u", entry->id, al_qualifier->line_no); } break; @@ -805,7 +805,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { forin * al_forin = entry->forin_value; print_error_msg(line_no, - "forin iterator %s already defined at line %u\n", + "forin iterator %s already defined at line %u", entry->id, al_forin->line_no); } break; @@ -813,7 +813,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { enumerator * al_enumerator = entry->enumerator_value; print_error_msg(line_no, - "enum item %s already defined at line %u\n", + "enum item %s already defined at line %u", entry->id, al_enumerator->line_no); } break; @@ -821,7 +821,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { enumtype * al_enumtype = entry->enumtype_value; print_error_msg(line_no, - "enum %s already defined at line %u\n", + "enum %s already defined at line %u", entry->id, al_enumtype->line_no); } break; @@ -829,7 +829,7 @@ int symtab_entry_exists(symtab_entry * entry, unsigned int line_no) { record * al_record = entry->record_value; print_error_msg(line_no, - "record %s already defined at line %u\n", + "record %s already defined at line %u", entry->id, al_record->line_no); } break; @@ -1024,7 +1024,7 @@ int param_enum_record_check_type(symtab * tab, param * param_value, *result = TYPECHECK_FAIL; param_value->record_value = NULL; - print_error_msg(param_value->line_no, "cannot find record or enum %s\n", + print_error_msg(param_value->line_no, "cannot find record or enum %s", param_value->record_id); } else if (entry->type == SYMTAB_RECORD) @@ -1041,7 +1041,7 @@ int param_enum_record_check_type(symtab * tab, param * param_value, *result = TYPECHECK_FAIL; param_value->record_value = NULL; - print_error_msg(param_value->line_no, "expected record or enum but %s found\n", + print_error_msg(param_value->line_no, "expected record or enum but %s found", symtab_entry_type_str(entry->type)); } @@ -1212,7 +1212,7 @@ int expr_id_check_type(symtab * tab, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "found enum id %s\n", value->id.id); + print_error_msg(value->line_no, "found enum id %s", value->id.id); } break; case SYMTAB_ENUMERATOR: @@ -1221,7 +1221,7 @@ int expr_id_check_type(symtab * tab, expr * value, int * result) *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "found enumerator %s\n", value->id.id); + print_error_msg(value->line_no, "found enumerator %s", value->id.id); } break; } @@ -1229,7 +1229,7 @@ int expr_id_check_type(symtab * tab, expr * value, int * result) else { *result = TYPECHECK_FAIL; - print_error_msg(value->line_no, "cannot find identifier %s\n", + print_error_msg(value->line_no, "cannot find identifier %s", value->id.id); } return 0; @@ -1257,7 +1257,7 @@ int expr_enumtype_check_type(symtab * tab, expr * value, int * result) { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot find enum %s::%s\n", + print_error_msg(value->line_no, "cannot find enum %s::%s", value->enumtype.enum_id, value->enumtype.item_id); } @@ -1266,7 +1266,7 @@ int expr_enumtype_check_type(symtab * tab, expr * value, int * result) { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "expected enumtype %s but found %s\n", + print_error_msg(value->line_no, "expected enumtype %s but found %s", value->enumtype.enum_id, symtab_entry_type_str(entry->type)); } @@ -1275,7 +1275,7 @@ int expr_enumtype_check_type(symtab * tab, expr * value, int * result) { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot find enumtype %s\n", + print_error_msg(value->line_no, "cannot find enumtype %s", value->enumtype.enum_id); } @@ -1312,7 +1312,7 @@ int expr_neg_check_type(symtab * tab, expr * value, func * func_value, { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot negate type %s\n", + print_error_msg(value->line_no, "cannot negate type %s", comb_type_str(value->left->comb.comb)); } @@ -1335,7 +1335,7 @@ int expr_add_sub_check_type(symtab * tab, expr * value, func * func_value, expr_conv(value->left, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_INT) @@ -1343,7 +1343,7 @@ int expr_add_sub_check_type(symtab * tab, expr * value, func * func_value, expr_conv(value->right, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_FLOAT) @@ -1405,7 +1405,7 @@ int expr_add_sub_check_type(symtab * tab, expr * value, func * func_value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot exec arithmetic operation on types %s %s\n", + "cannot exec arithmetic operation on types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -1429,7 +1429,7 @@ int expr_mul_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->left, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_INT) @@ -1437,7 +1437,7 @@ int expr_mul_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->right, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_FLOAT) @@ -1470,7 +1470,7 @@ int expr_mul_check_type(symtab * tab, expr * value, func * func_value, unsigned value->comb.comb_dims = value->right->comb.comb_dims; value->comb.comb_ret = value->right->comb.comb_ret; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_ARRAY && @@ -1482,7 +1482,7 @@ int expr_mul_check_type(symtab * tab, expr * value, func * func_value, unsigned value->comb.comb_dims = value->right->comb.comb_dims; value->comb.comb_ret = value->right->comb.comb_ret; - print_warning_msg(value->line_no, "converted float to int\n"); + print_warning_msg(value->line_no, "converted float to int"); } else if (value->left->comb.comb == COMB_TYPE_ARRAY && value->right->comb.comb == COMB_TYPE_ARRAY && @@ -1511,7 +1511,7 @@ int expr_mul_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot exec arithmetic operation on types %s %s\n", + "cannot exec arithmetic operation on types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -1536,7 +1536,7 @@ int expr_div_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->left, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_INT) @@ -1544,7 +1544,7 @@ int expr_div_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->right, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_FLOAT) @@ -1556,7 +1556,7 @@ int expr_div_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot exec arithmetic operation on types %s %s\n", + "cannot exec arithmetic operation on types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -1575,7 +1575,7 @@ int expr_ass_check_type(symtab * tab, expr * value, func * func_value, unsigned value->left->type != EXPR_ARRAY_DEREF) { print_warning_msg(value->line_no, - "expression on assignment left side is not an identifier but %s\n", + "expression on assignment left side is not an identifier but %s", expr_type_str(value->left->type)); } @@ -1595,7 +1595,7 @@ int expr_ass_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->right, EXPR_FLOAT_TO_INT); value->comb.comb = COMB_TYPE_INT; - print_warning_msg(value->line_no, "converted float to int\n"); + print_warning_msg(value->line_no, "converted float to int"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_INT) @@ -1603,7 +1603,7 @@ int expr_ass_check_type(symtab * tab, expr * value, func * func_value, unsigned expr_conv(value->right, EXPR_INT_TO_FLOAT); value->comb.comb = COMB_TYPE_FLOAT; - print_warning_msg(value->line_no, "converted int to float\n"); + print_warning_msg(value->line_no, "converted int to float"); } else if (value->left->comb.comb == COMB_TYPE_FLOAT && value->right->comb.comb == COMB_TYPE_FLOAT) @@ -1689,7 +1689,7 @@ int expr_ass_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot assign different types %s %s\n", + "cannot assign different types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -1776,7 +1776,7 @@ int expr_eq_check_type(symtab * tab, expr * value, func * func_value, unsigned i { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot compare types %s %s\n", + print_error_msg(value->line_no, "cannot compare types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -1796,7 +1796,7 @@ int expr_cond_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot execute conditional operator on %s\n", + "cannot execute conditional operator on %s", comb_type_str(value->left->comb.comb)); return 0; } @@ -1815,13 +1815,13 @@ int array_dims_check_type_expr(symtab * tab, expr * value, func * func_value, un if (value->comb.comb == COMB_TYPE_FLOAT) { expr_conv(value, EXPR_FLOAT_TO_INT); - print_warning_msg(value->line_no, "converted float to int\n"); + print_warning_msg(value->line_no, "converted float to int"); } else if (value->comb.comb != COMB_TYPE_INT) { *result = res = TYPECHECK_FAIL; print_error_msg(value->line_no, - "incorrect types %s passed to deref array\n", + "incorrect types %s passed to deref array", comb_type_str(value->comb.comb)); } return res; @@ -1873,7 +1873,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect types of arguments passed to deref array\n"); + "incorrect types of arguments passed to deref array"); } } else @@ -1882,7 +1882,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, value->comb.comb = COMB_TYPE_ERR; print_error_msg( value->line_no, - "incorrect number of dimesions passed to deref array\n"); + "incorrect number of dimesions passed to deref array"); } } @@ -1902,7 +1902,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect types of arguments passed to deref range\n"); + "incorrect types of arguments passed to deref range"); } } else @@ -1910,7 +1910,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to deref range\n"); + "incorrect number of dimensions passed to deref range"); } } else if (value->array_deref.array_expr->comb.comb == COMB_TYPE_SLICE) @@ -1928,7 +1928,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect types of arguments passed to deref slice\n"); + "incorrect types of arguments passed to deref slice"); } } else @@ -1936,7 +1936,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to deref slice\n"); + "incorrect number of dimensions passed to deref slice"); } } @@ -1954,7 +1954,7 @@ int expr_array_deref_check_type(symtab * tab, expr * value, *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect types to deref string\n"); + "incorrect types to deref string"); } } else @@ -1963,14 +1963,14 @@ int expr_array_deref_check_type(symtab * tab, expr * value, value->comb.comb = COMB_TYPE_ERR; print_error_msg( value->line_no, - "strings can be deref only using one dimesion\n"); + "strings can be deref only using one dimesion"); } } else { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot deref %s\n", + print_error_msg(value->line_no, "cannot deref %s", comb_type_str(value->array_deref.array_expr->comb.comb)); } @@ -1996,7 +1996,7 @@ int expr_slice_check_type(symtab * tab, expr * value, func * func_value, unsigne *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to slice array\n"); + "incorrect number of dimensions passed to slice array"); } } else if (value->slice.array_expr->comb.comb == COMB_TYPE_RANGE) @@ -2012,7 +2012,7 @@ int expr_slice_check_type(symtab * tab, expr * value, func * func_value, unsigne *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to slice range\n"); + "incorrect number of dimensions passed to slice range"); } } else if (value->slice.array_expr->comb.comb == COMB_TYPE_SLICE) @@ -2028,7 +2028,7 @@ int expr_slice_check_type(symtab * tab, expr * value, func * func_value, unsigne *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to slice slice\n"); + "incorrect number of dimensions passed to slice slice"); } } else if (value->slice.array_expr->comb.comb == COMB_TYPE_STRING) @@ -2042,14 +2042,14 @@ int expr_slice_check_type(symtab * tab, expr * value, func * func_value, unsigne *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "incorrect number of dimensions passed to slice string\n"); + "incorrect number of dimensions passed to slice string"); } } else { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot deref %s\n", + print_error_msg(value->line_no, "cannot deref %s", comb_type_str(value->slice.array_expr->comb.comb)); } @@ -2080,7 +2080,7 @@ int expr_range_dim_check_type(symtab * tab, expr * value, func * func_value, { *result = TYPECHECK_FAIL; print_error_msg(value->range_dim.from->line_no, - "expected range from of type int but got %s\n", + "expected range from of type int but got %s", comb_type_str(value->range_dim.from->comb.comb)); } @@ -2088,7 +2088,7 @@ int expr_range_dim_check_type(symtab * tab, expr * value, func * func_value, { *result = TYPECHECK_FAIL; print_error_msg(value->range_dim.to->line_no, - "expected range to of type int but got %s\n", + "expected range to of type int but got %s", comb_type_str(value->range_dim.to->comb.comb)); } @@ -2135,7 +2135,7 @@ int expr_call_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "function call type mismatch\n"); + print_error_msg(value->line_no, "function call type mismatch"); } break; case COMB_TYPE_RECORD_ID: @@ -2151,7 +2151,7 @@ int expr_call_check_type(symtab * tab, expr * value, func * func_value, unsigned value->comb.comb = COMB_TYPE_ERR; value->comb.comb_record = NULL; - print_error_msg(value->line_no, "record create type mismatch\n"); + print_error_msg(value->line_no, "record create type mismatch"); } break; @@ -2175,7 +2175,7 @@ int expr_call_check_type(symtab * tab, expr * value, func * func_value, unsigned value->comb.comb = COMB_TYPE_ERR; value->comb.comb_enumtype = NULL; - print_error_msg(value->line_no, "enum record type mismatch\n"); + print_error_msg(value->line_no, "enum record type mismatch"); } break; case COMB_TYPE_BOOL: @@ -2194,7 +2194,7 @@ int expr_call_check_type(symtab * tab, expr * value, func * func_value, unsigned *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot execute function on type %s\n", + print_error_msg(value->line_no, "cannot execute function on type %s", comb_type_str(value->call.func_expr->comb.comb)); } break; @@ -2225,7 +2225,7 @@ int qualifier_check_type(symtab * tab, qualifier * value, func * func_value, uns { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "generators over one dimensional arrays\n"); + "generators over one dimensional arrays"); } } symtab_add_qualifier_from_qualifier(tab, value, syn_level, result); @@ -2238,7 +2238,7 @@ int qualifier_check_type(symtab * tab, qualifier * value, func * func_value, uns { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "filter should be bool type is %s\n", + "filter should be bool type is %s", comb_type_str(value->expr_value->comb.comb)); } } @@ -2290,7 +2290,7 @@ int expr_listcomp_check_type(symtab * tab, listcomp * listcomp_value, { *result = TYPECHECK_FAIL; print_error_msg(listcomp_value->line_no, - "incorrect return type in list comprehension %s %s\n", + "incorrect return type in list comprehension %s %s", comb_type_str(listcomp_value->expr_value->comb.comb), param_type_str(listcomp_value->ret->type)); } @@ -2323,7 +2323,7 @@ int expr_attr_check_type(symtab * tab, expr * value, func * func_value, unsigned { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot find attribute %s in record %s\n", + print_error_msg(value->line_no, "cannot find attribute %s in record %s", value->attr.id, record_value->id); } } @@ -2332,7 +2332,7 @@ int expr_attr_check_type(symtab * tab, expr * value, func * func_value, unsigned { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot get record attribute of type %s\n", + print_error_msg(value->line_no, "cannot get record attribute of type %s", comb_type_str(value->attr.record_value->comb.comb)); } @@ -2398,7 +2398,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "cannot exec mod operation on types %s %s\n", + "cannot exec mod operation on types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -2429,7 +2429,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot compare types %s %s\n", + print_error_msg(value->line_no, "cannot compare types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -2452,7 +2452,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot compare types %s %s\n", + print_error_msg(value->line_no, "cannot compare types %s %s", comb_type_str(value->left->comb.comb), comb_type_str(value->right->comb.comb)); } @@ -2467,7 +2467,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot ne types %s\n", + print_error_msg(value->line_no, "cannot ne types %s", comb_type_str(value->left->comb.comb)); } break; @@ -2533,7 +2533,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "while loop condition type is %s\n", + "while loop condition type is %s", comb_type_str(value->whileloop.cond->comb.comb)); } break; @@ -2552,7 +2552,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "for loop condition is %s\n", + "for loop condition is %s", comb_type_str(value->forloop.cond->comb.comb)); } break; @@ -2582,7 +2582,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot convert type %s to float\n", + print_error_msg(value->line_no, "cannot convert type %s to float", value->line_no, comb_type_str(value->left->comb.comb)); } break; @@ -2596,7 +2596,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "cannot convert type %s to int\n", + print_error_msg(value->line_no, "cannot convert type %s to int", value->line_no, comb_type_str(value->left->comb.comb)); } break; @@ -2612,7 +2612,7 @@ int expr_check_type(symtab * tab, expr * value, func * func_value, unsigned int { *result = TYPECHECK_FAIL; value->comb.comb = COMB_TYPE_ERR; - print_error_msg(value->line_no, "list comprehension is not well formed\n"); + print_error_msg(value->line_no, "list comprehension is not well formed"); } break; case EXPR_ATTR: @@ -2659,7 +2659,7 @@ int expr_seq_check_type(symtab * tab, expr * value, func * func_value, unsigned value->comb.comb = COMB_TYPE_ERR; print_error_msg(value->line_no, - "no type in sequence %s\n", expr_type_str(value->type)); + "no type in sequence %s", expr_type_str(value->type)); } return 0; @@ -2746,7 +2746,7 @@ int except_check_id(except * value, int * result) value->no = EXCEPT_NO_UNKNOWN; *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "unknown exception %s\n", value->id); + "unknown exception %s", value->id); } return 0; } @@ -2767,7 +2767,7 @@ int except_check_type(symtab * tab, except * value, { *result = TYPECHECK_FAIL; print_error_msg(value->line_no, - "incorrect return type in function %s\n", + "incorrect return type in function %s", func_value->decl->id); } @@ -2809,6 +2809,7 @@ int func_except_check_type(symtab * tab, func_except * value, func * func_value, int func_ffi_check_type(symtab * tab, func * func_value, unsigned int syn_level, int * result) { +#ifndef NO_FFI if (func_value->stab == NULL) { func_value->stab = symtab_new(32, SYMTAB_TYPE_FUNC, tab); @@ -2823,6 +2824,11 @@ int func_ffi_check_type(symtab * tab, func * func_value, unsigned int syn_level, { param_check_type(func_value->stab, func_value->decl->ret, syn_level, result); } +#else + *result = TYPECHECK_FAIL; + print_error_msg(func_value->line_no, + "FFI not supported with JS %s", func_value->decl->id); +#endif return 0; } @@ -2899,7 +2905,7 @@ int func_native_check_type(symtab * tab, func * func_value, unsigned int syn_lev { *result = TYPECHECK_FAIL; print_error_msg(func_value->line_no, - "incorrect return type in function %s\n", + "incorrect return type in function %s", func_value->decl->id); } } @@ -3219,14 +3225,14 @@ int func_main_check_type(const char * main_name, symtab * tab, int * result) *result = TYPECHECK_FAIL; print_error_msg( func_value->line_no, - "function main can take only numerical parameters\n", + "function main can take only numerical parameters", func_value->decl->params->count); } if (func_value->decl->ret == NULL) { *result = TYPECHECK_FAIL; print_error_msg(func_value->line_no, - "incorrect function main return type\n"); + "incorrect function main return type"); } else { @@ -3234,20 +3240,20 @@ int func_main_check_type(const char * main_name, symtab * tab, int * result) { *result = TYPECHECK_FAIL; print_error_msg(func_value->line_no, - "incorrect function main return type\n"); + "incorrect function main return type"); } } } else { *result = TYPECHECK_FAIL; - print_error_msg(0, "incorrect function main, expected function\n"); + print_error_msg(0, "incorrect function main, expected function"); } } else { *result = TYPECHECK_FAIL; - print_error_msg(0, "function %s is not defined\n", main_name); + print_error_msg(0, "function %s is not defined", main_name); } return 0; diff --git a/main.c b/main.c index 0af555af..b04963f8 100644 --- a/main.c +++ b/main.c @@ -48,7 +48,33 @@ static int get_result(object * result) { fprintf(stderr, "unknown result type %d\n", result->type); } - + + return ret; +} + +int never(const char * src) +{ + int ret = 0; + + object result = { 0 }; + program * prog = program_new(); + + ret = nev_compile_str(src, prog); + if (ret == 0) + { + ret = nev_execute(prog, &result, DEFAULT_VM_MEM_SIZE, DEFAULT_VM_STACK_SIZE); + if (ret == 0) { + ret = get_result(&result); + } + } + +#ifndef NO_FFI + printf("\n"); + fflush(stdout); +#endif + + program_delete(prog); + return ret; } diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 2c0afd14..00000000 --- a/mkdocs.yml +++ /dev/null @@ -1,25 +0,0 @@ -site_name: never-lang -site_author: Sławomir Maludziński -repo_url: https://github.com/never-lang/never -repo_name: GitHub -theme: - name: readthedocs - custom_dir: docs/custom_theme - highlightjs: false - -nav: - - Documentation: index.md - - Tutorials: - - Sorting - Quick Sort: qsort.md - - Data Structures - Binary Tree: btree.md - - Dynamic Programming - Rod Cutting : rodcut.md - - Tribute to Alonso C.: curradd.md - - Fizz Buzz: fizzbuzz.md - - Pythagorean Triangle: pitria.md - - Tail Recursion: tailrec.md - - Neural Network: perceptron.md - - Wave: wave.md - - Brain F***: brainf.md - - FFI: ffi.md - - Contact: contact.md - diff --git a/never-init.js b/never-init.js new file mode 100644 index 00000000..ffa9baf7 --- /dev/null +++ b/never-init.js @@ -0,0 +1,4 @@ +var Module = { + 'print': function(text) { var output = document.getElementById("output"); output.value += text; }, + 'printErr': function(text) { var output = document.getElementById("output"); output.value += text; } +}; diff --git a/test/test_ffi.c b/test/test_ffi.c index 5599da47..28bdf543 100644 --- a/test/test_ffi.c +++ b/test/test_ffi.c @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#ifndef NO_FFI + #include "nev.h" #include "fficall.h" #include @@ -162,3 +164,5 @@ int main(int argc, char * argv[]) return 0; } +#endif /* NO_FFI */ +