whisper.rn 0.5.0-rc.9 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/android/build.gradle +2 -1
  2. package/android/gradle.properties +1 -1
  3. package/cpp/ggml-alloc.c +265 -141
  4. package/cpp/ggml-backend-impl.h +4 -1
  5. package/cpp/ggml-backend-reg.cpp +30 -13
  6. package/cpp/ggml-backend.cpp +221 -38
  7. package/cpp/ggml-backend.h +17 -1
  8. package/cpp/ggml-common.h +17 -0
  9. package/cpp/ggml-cpu/amx/amx.cpp +4 -2
  10. package/cpp/ggml-cpu/arch/arm/quants.c +132 -596
  11. package/cpp/ggml-cpu/arch/arm/repack.cpp +14 -286
  12. package/cpp/ggml-cpu/arch/x86/quants.c +184 -675
  13. package/cpp/ggml-cpu/arch/x86/repack.cpp +4679 -1657
  14. package/cpp/ggml-cpu/arch-fallback.h +32 -2
  15. package/cpp/ggml-cpu/common.h +14 -0
  16. package/cpp/ggml-cpu/ggml-cpu-impl.h +13 -6
  17. package/cpp/ggml-cpu/ggml-cpu.c +70 -42
  18. package/cpp/ggml-cpu/ggml-cpu.cpp +35 -28
  19. package/cpp/ggml-cpu/ops.cpp +1587 -1177
  20. package/cpp/ggml-cpu/ops.h +5 -8
  21. package/cpp/ggml-cpu/quants.c +35 -0
  22. package/cpp/ggml-cpu/quants.h +8 -0
  23. package/cpp/ggml-cpu/repack.cpp +458 -47
  24. package/cpp/ggml-cpu/repack.h +22 -0
  25. package/cpp/ggml-cpu/simd-mappings.h +89 -60
  26. package/cpp/ggml-cpu/traits.cpp +2 -2
  27. package/cpp/ggml-cpu/traits.h +1 -1
  28. package/cpp/ggml-cpu/vec.cpp +170 -26
  29. package/cpp/ggml-cpu/vec.h +506 -63
  30. package/cpp/ggml-cpu.h +1 -1
  31. package/cpp/ggml-impl.h +119 -9
  32. package/cpp/ggml-metal/ggml-metal-common.cpp +446 -0
  33. package/cpp/ggml-metal/ggml-metal-common.h +52 -0
  34. package/cpp/ggml-metal/ggml-metal-context.h +33 -0
  35. package/cpp/ggml-metal/ggml-metal-context.m +600 -0
  36. package/cpp/ggml-metal/ggml-metal-device.cpp +1376 -0
  37. package/cpp/ggml-metal/ggml-metal-device.h +226 -0
  38. package/cpp/ggml-metal/ggml-metal-device.m +1312 -0
  39. package/cpp/ggml-metal/ggml-metal-impl.h +722 -0
  40. package/cpp/ggml-metal/ggml-metal-ops.cpp +3158 -0
  41. package/cpp/ggml-metal/ggml-metal-ops.h +82 -0
  42. package/cpp/ggml-metal/ggml-metal.cpp +718 -0
  43. package/cpp/ggml-metal/ggml-whisper-sim.metallib +0 -0
  44. package/cpp/ggml-metal/ggml-whisper.metallib +0 -0
  45. package/cpp/ggml-metal-impl.h +90 -51
  46. package/cpp/ggml-metal.h +1 -6
  47. package/cpp/ggml-opt.cpp +97 -41
  48. package/cpp/ggml-opt.h +25 -6
  49. package/cpp/ggml-quants.c +111 -16
  50. package/cpp/ggml-quants.h +6 -0
  51. package/cpp/ggml.c +486 -98
  52. package/cpp/ggml.h +221 -16
  53. package/cpp/gguf.cpp +8 -1
  54. package/cpp/jsi/RNWhisperJSI.cpp +25 -6
  55. package/cpp/jsi/ThreadPool.h +3 -3
  56. package/cpp/whisper.cpp +100 -76
  57. package/cpp/whisper.h +1 -0
  58. package/ios/CMakeLists.txt +6 -1
  59. package/ios/RNWhisper.mm +6 -6
  60. package/ios/RNWhisperContext.mm +2 -0
  61. package/ios/RNWhisperVadContext.mm +16 -13
  62. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-backend-impl.h +4 -1
  63. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-backend.h +17 -1
  64. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-common.h +17 -0
  65. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-cpu.h +1 -1
  66. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-impl.h +119 -9
  67. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-metal-impl.h +90 -51
  68. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-metal.h +1 -6
  69. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-opt.h +25 -6
  70. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-quants.h +6 -0
  71. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml.h +221 -16
  72. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/whisper.h +1 -0
  73. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Info.plist +0 -0
  74. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/ggml-whisper.metallib +0 -0
  75. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/rnwhisper +0 -0
  76. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-backend-impl.h +4 -1
  77. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-backend.h +17 -1
  78. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-common.h +17 -0
  79. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-cpu.h +1 -1
  80. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-impl.h +119 -9
  81. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-metal-impl.h +90 -51
  82. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-metal.h +1 -6
  83. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-opt.h +25 -6
  84. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-quants.h +6 -0
  85. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml.h +221 -16
  86. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/whisper.h +1 -0
  87. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Info.plist +0 -0
  88. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/_CodeSignature/CodeResources +1 -1
  89. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/ggml-whisper-sim.metallib +0 -0
  90. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/rnwhisper +0 -0
  91. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-backend-impl.h +4 -1
  92. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-backend.h +17 -1
  93. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-common.h +17 -0
  94. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-cpu.h +1 -1
  95. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-impl.h +119 -9
  96. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-metal-impl.h +90 -51
  97. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-metal.h +1 -6
  98. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-opt.h +25 -6
  99. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-quants.h +6 -0
  100. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml.h +221 -16
  101. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/whisper.h +1 -0
  102. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Info.plist +0 -0
  103. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/ggml-whisper.metallib +0 -0
  104. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/rnwhisper +0 -0
  105. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-backend-impl.h +4 -1
  106. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-backend.h +17 -1
  107. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-common.h +17 -0
  108. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-cpu.h +1 -1
  109. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-impl.h +119 -9
  110. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-metal-impl.h +90 -51
  111. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-metal.h +1 -6
  112. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-opt.h +25 -6
  113. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-quants.h +6 -0
  114. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml.h +221 -16
  115. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/whisper.h +1 -0
  116. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Info.plist +0 -0
  117. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/_CodeSignature/CodeResources +1 -1
  118. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/ggml-whisper-sim.metallib +0 -0
  119. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/rnwhisper +0 -0
  120. package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js +13 -0
  121. package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js.map +1 -1
  122. package/lib/commonjs/version.json +1 -1
  123. package/lib/module/realtime-transcription/RealtimeTranscriber.js +13 -0
  124. package/lib/module/realtime-transcription/RealtimeTranscriber.js.map +1 -1
  125. package/lib/module/version.json +1 -1
  126. package/lib/typescript/realtime-transcription/RealtimeTranscriber.d.ts.map +1 -1
  127. package/lib/typescript/realtime-transcription/types.d.ts +6 -0
  128. package/lib/typescript/realtime-transcription/types.d.ts.map +1 -1
  129. package/package.json +1 -1
  130. package/src/realtime-transcription/RealtimeTranscriber.ts +17 -0
  131. package/src/realtime-transcription/types.ts +6 -0
  132. package/src/version.json +1 -1
  133. package/whisper-rn.podspec +8 -9
  134. package/cpp/ggml-metal.m +0 -6284
  135. package/cpp/ggml-whisper-sim.metallib +0 -0
  136. package/cpp/ggml-whisper.metallib +0 -0
@@ -241,7 +241,16 @@
241
241
  #define WSP_GGML_ROPE_TYPE_MROPE 8
242
242
  #define WSP_GGML_ROPE_TYPE_VISION 24
243
243
 
244
+ #define WSP_GGML_MROPE_SECTIONS 4
245
+
244
246
  #define WSP_GGML_UNUSED(x) (void)(x)
247
+ #ifdef __CUDACC__
248
+ template<typename... Args>
249
+ __host__ __device__ constexpr inline void wsp_ggml_unused_vars_impl(Args&&...) noexcept {}
250
+ #define WSP_GGML_UNUSED_VARS(...) wsp_ggml_unused_vars_impl(__VA_ARGS__)
251
+ #else
252
+ #define WSP_GGML_UNUSED_VARS(...) do { (void)sizeof((__VA_ARGS__, 0)); } while(0)
253
+ #endif // __CUDACC__
245
254
 
246
255
  #define WSP_GGML_PAD(x, n) (((x) + (n) - 1) & ~((n) - 1))
247
256
 
@@ -275,19 +284,19 @@
275
284
  // WSP_GGML_TENSOR_LOCALS(size_t, nb1, src1, nb);
276
285
  //
277
286
  #define WSP_GGML_TENSOR_LOCALS_1(type, prefix, pointer, array) \
278
- const type prefix##0 = (pointer)->array[0]; \
287
+ const type prefix##0 = (pointer) ? (pointer)->array[0] : 0; \
279
288
  WSP_GGML_UNUSED(prefix##0);
280
289
  #define WSP_GGML_TENSOR_LOCALS_2(type, prefix, pointer, array) \
281
290
  WSP_GGML_TENSOR_LOCALS_1 (type, prefix, pointer, array) \
282
- const type prefix##1 = (pointer)->array[1]; \
291
+ const type prefix##1 = (pointer) ? (pointer)->array[1] : 0; \
283
292
  WSP_GGML_UNUSED(prefix##1);
284
293
  #define WSP_GGML_TENSOR_LOCALS_3(type, prefix, pointer, array) \
285
294
  WSP_GGML_TENSOR_LOCALS_2 (type, prefix, pointer, array) \
286
- const type prefix##2 = (pointer)->array[2]; \
295
+ const type prefix##2 = (pointer) ? (pointer)->array[2] : 0; \
287
296
  WSP_GGML_UNUSED(prefix##2);
288
297
  #define WSP_GGML_TENSOR_LOCALS(type, prefix, pointer, array) \
289
298
  WSP_GGML_TENSOR_LOCALS_3 (type, prefix, pointer, array) \
290
- const type prefix##3 = (pointer)->array[3]; \
299
+ const type prefix##3 = (pointer) ? (pointer)->array[3] : 0; \
291
300
  WSP_GGML_UNUSED(prefix##3);
292
301
 
293
302
  #define WSP_GGML_TENSOR_UNARY_OP_LOCALS \
@@ -304,6 +313,16 @@
304
313
  WSP_GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) \
305
314
  WSP_GGML_TENSOR_LOCALS(size_t, nb, dst, nb)
306
315
 
316
+ #define WSP_GGML_TENSOR_TERNARY_OP_LOCALS \
317
+ WSP_GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) \
318
+ WSP_GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) \
319
+ WSP_GGML_TENSOR_LOCALS(int64_t, ne1, src1, ne) \
320
+ WSP_GGML_TENSOR_LOCALS(size_t, nb1, src1, nb) \
321
+ WSP_GGML_TENSOR_LOCALS(int64_t, ne2, src2, ne) \
322
+ WSP_GGML_TENSOR_LOCALS(size_t, nb2, src2, nb) \
323
+ WSP_GGML_TENSOR_LOCALS(int64_t, ne, dst, ne) \
324
+ WSP_GGML_TENSOR_LOCALS(size_t, nb, dst, nb)
325
+
307
326
  #define WSP_GGML_TENSOR_BINARY_OP_LOCALS01 \
308
327
  WSP_GGML_TENSOR_LOCALS(int64_t, ne0, src0, ne) \
309
328
  WSP_GGML_TENSOR_LOCALS(size_t, nb0, src0, nb) \
@@ -314,6 +333,13 @@
314
333
  extern "C" {
315
334
  #endif
316
335
 
336
+ // Function type used in fatal error callbacks
337
+ typedef void (*wsp_ggml_abort_callback_t)(const char * error_message);
338
+
339
+ // Set the abort callback (passing null will restore original abort functionality: printing a message to stdout)
340
+ // Returns the old callback for chaining
341
+ WSP_GGML_API wsp_ggml_abort_callback_t wsp_ggml_set_abort_callback(wsp_ggml_abort_callback_t callback);
342
+
317
343
  WSP_GGML_NORETURN WSP_GGML_ATTRIBUTE_FORMAT(3, 4)
318
344
  WSP_GGML_API void wsp_ggml_abort(const char * file, int line, const char * fmt, ...);
319
345
 
@@ -388,7 +414,8 @@ extern "C" {
388
414
  // WSP_GGML_TYPE_IQ4_NL_4_4 = 36,
389
415
  // WSP_GGML_TYPE_IQ4_NL_4_8 = 37,
390
416
  // WSP_GGML_TYPE_IQ4_NL_8_8 = 38,
391
- WSP_GGML_TYPE_COUNT = 39,
417
+ WSP_GGML_TYPE_MXFP4 = 39, // MXFP4 (1 block)
418
+ WSP_GGML_TYPE_COUNT = 40,
392
419
  };
393
420
 
394
421
  // precision
@@ -423,6 +450,7 @@ extern "C" {
423
450
  WSP_GGML_FTYPE_MOSTLY_IQ4_XS = 22, // except 1d tensors
424
451
  WSP_GGML_FTYPE_MOSTLY_IQ1_M = 23, // except 1d tensors
425
452
  WSP_GGML_FTYPE_MOSTLY_BF16 = 24, // except 1d tensors
453
+ WSP_GGML_FTYPE_MOSTLY_MXFP4 = 25, // except 1d tensors
426
454
  };
427
455
 
428
456
  // available tensor operations:
@@ -431,6 +459,7 @@ extern "C" {
431
459
 
432
460
  WSP_GGML_OP_DUP,
433
461
  WSP_GGML_OP_ADD,
462
+ WSP_GGML_OP_ADD_ID,
434
463
  WSP_GGML_OP_ADD1,
435
464
  WSP_GGML_OP_ACC,
436
465
  WSP_GGML_OP_SUB,
@@ -482,13 +511,15 @@ extern "C" {
482
511
  WSP_GGML_OP_CONV_TRANSPOSE_1D,
483
512
  WSP_GGML_OP_IM2COL,
484
513
  WSP_GGML_OP_IM2COL_BACK,
514
+ WSP_GGML_OP_IM2COL_3D,
485
515
  WSP_GGML_OP_CONV_2D,
516
+ WSP_GGML_OP_CONV_3D,
486
517
  WSP_GGML_OP_CONV_2D_DW,
487
518
  WSP_GGML_OP_CONV_TRANSPOSE_2D,
488
519
  WSP_GGML_OP_POOL_1D,
489
520
  WSP_GGML_OP_POOL_2D,
490
521
  WSP_GGML_OP_POOL_2D_BACK,
491
- WSP_GGML_OP_UPSCALE, // nearest interpolate
522
+ WSP_GGML_OP_UPSCALE,
492
523
  WSP_GGML_OP_PAD,
493
524
  WSP_GGML_OP_PAD_REFLECT_1D,
494
525
  WSP_GGML_OP_ROLL,
@@ -520,6 +551,7 @@ extern "C" {
520
551
  WSP_GGML_OP_CROSS_ENTROPY_LOSS,
521
552
  WSP_GGML_OP_CROSS_ENTROPY_LOSS_BACK,
522
553
  WSP_GGML_OP_OPT_STEP_ADAMW,
554
+ WSP_GGML_OP_OPT_STEP_SGD,
523
555
 
524
556
  WSP_GGML_OP_GLU,
525
557
 
@@ -550,6 +582,9 @@ extern "C" {
550
582
  WSP_GGML_GLU_OP_REGLU,
551
583
  WSP_GGML_GLU_OP_GEGLU,
552
584
  WSP_GGML_GLU_OP_SWIGLU,
585
+ WSP_GGML_GLU_OP_SWIGLU_OAI,
586
+ WSP_GGML_GLU_OP_GEGLU_ERF,
587
+ WSP_GGML_GLU_OP_GEGLU_QUICK,
553
588
 
554
589
  WSP_GGML_GLU_OP_COUNT,
555
590
  };
@@ -639,6 +674,9 @@ extern "C" {
639
674
 
640
675
  // misc
641
676
 
677
+ WSP_GGML_API const char * wsp_ggml_version(void);
678
+ WSP_GGML_API const char * wsp_ggml_commit(void);
679
+
642
680
  WSP_GGML_API void wsp_ggml_time_init(void); // call this once at the beginning of the program
643
681
  WSP_GGML_API int64_t wsp_ggml_time_ms(void);
644
682
  WSP_GGML_API int64_t wsp_ggml_time_us(void);
@@ -819,6 +857,13 @@ extern "C" {
819
857
  struct wsp_ggml_tensor * b,
820
858
  enum wsp_ggml_type type);
821
859
 
860
+ // dst[i0, i1, i2] = a[i0, i1, i2] + b[i0, ids[i1, i2]]
861
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_add_id(
862
+ struct wsp_ggml_context * ctx,
863
+ struct wsp_ggml_tensor * a,
864
+ struct wsp_ggml_tensor * b,
865
+ struct wsp_ggml_tensor * ids);
866
+
822
867
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_add1(
823
868
  struct wsp_ggml_context * ctx,
824
869
  struct wsp_ggml_tensor * a,
@@ -1137,6 +1182,22 @@ extern "C" {
1137
1182
  struct wsp_ggml_context * ctx,
1138
1183
  struct wsp_ggml_tensor * a);
1139
1184
 
1185
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_erf(
1186
+ struct wsp_ggml_context * ctx,
1187
+ struct wsp_ggml_tensor * a);
1188
+
1189
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_erf_swapped(
1190
+ struct wsp_ggml_context * ctx,
1191
+ struct wsp_ggml_tensor * a);
1192
+
1193
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_quick(
1194
+ struct wsp_ggml_context * ctx,
1195
+ struct wsp_ggml_tensor * a);
1196
+
1197
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_quick_swapped(
1198
+ struct wsp_ggml_context * ctx,
1199
+ struct wsp_ggml_tensor * a);
1200
+
1140
1201
  // A: n columns, r rows,
1141
1202
  // B: n columns, r rows,
1142
1203
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_glu_split(
@@ -1160,6 +1221,23 @@ extern "C" {
1160
1221
  struct wsp_ggml_tensor * a,
1161
1222
  struct wsp_ggml_tensor * b);
1162
1223
 
1224
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_erf_split(
1225
+ struct wsp_ggml_context * ctx,
1226
+ struct wsp_ggml_tensor * a,
1227
+ struct wsp_ggml_tensor * b);
1228
+
1229
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_geglu_quick_split(
1230
+ struct wsp_ggml_context * ctx,
1231
+ struct wsp_ggml_tensor * a,
1232
+ struct wsp_ggml_tensor * b);
1233
+
1234
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_swiglu_oai(
1235
+ struct wsp_ggml_context * ctx,
1236
+ struct wsp_ggml_tensor * a,
1237
+ struct wsp_ggml_tensor * b,
1238
+ float alpha,
1239
+ float limit);
1240
+
1163
1241
  // normalize along rows
1164
1242
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_norm(
1165
1243
  struct wsp_ggml_context * ctx,
@@ -1259,6 +1337,19 @@ extern "C" {
1259
1337
  struct wsp_ggml_tensor * a,
1260
1338
  float s);
1261
1339
 
1340
+ // x = s * a + b
1341
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_scale_bias(
1342
+ struct wsp_ggml_context * ctx,
1343
+ struct wsp_ggml_tensor * a,
1344
+ float s,
1345
+ float b);
1346
+
1347
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_scale_bias_inplace(
1348
+ struct wsp_ggml_context * ctx,
1349
+ struct wsp_ggml_tensor * a,
1350
+ float s,
1351
+ float b);
1352
+
1262
1353
  // b -> view(a,offset,nb1,nb2,3), return modified a
1263
1354
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_set(
1264
1355
  struct wsp_ggml_context * ctx,
@@ -1313,6 +1404,7 @@ extern "C" {
1313
1404
  struct wsp_ggml_tensor * a,
1314
1405
  struct wsp_ggml_tensor * b);
1315
1406
 
1407
+ // note: casting from f32 to i32 will discard the fractional part
1316
1408
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_cast(
1317
1409
  struct wsp_ggml_context * ctx,
1318
1410
  struct wsp_ggml_tensor * a,
@@ -1437,7 +1529,11 @@ extern "C" {
1437
1529
  struct wsp_ggml_context * ctx,
1438
1530
  struct wsp_ggml_tensor * a);
1439
1531
 
1440
- // supports 3D: a->ne[2] == b->ne[1]
1532
+ // supports 4D a:
1533
+ // a [n_embd, ne1, ne2, ne3]
1534
+ // b I32 [n_rows, ne2, ne3, 1]
1535
+ //
1536
+ // return [n_embd, n_rows, ne2, ne3]
1441
1537
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_get_rows(
1442
1538
  struct wsp_ggml_context * ctx,
1443
1539
  struct wsp_ggml_tensor * a, // data
@@ -1503,8 +1599,14 @@ extern "C" {
1503
1599
  struct wsp_ggml_context * ctx,
1504
1600
  struct wsp_ggml_tensor * a);
1505
1601
 
1602
+ // a [ne0, ne01, ne02, ne03]
1603
+ // mask [ne0, ne11, ne12, ne13] | ne11 >= ne01, F16 or F32, optional
1604
+ //
1605
+ // broadcast:
1606
+ // ne02 % ne12 == 0
1607
+ // ne03 % ne13 == 0
1608
+ //
1506
1609
  // fused soft_max(a*scale + mask*(ALiBi slope))
1507
- // mask is optional
1508
1610
  // max_bias = 0.0f for no ALiBi
1509
1611
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_soft_max_ext(
1510
1612
  struct wsp_ggml_context * ctx,
@@ -1513,6 +1615,10 @@ extern "C" {
1513
1615
  float scale,
1514
1616
  float max_bias);
1515
1617
 
1618
+ WSP_GGML_API void wsp_ggml_soft_max_add_sinks(
1619
+ struct wsp_ggml_tensor * a,
1620
+ struct wsp_ggml_tensor * sinks);
1621
+
1516
1622
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_soft_max_ext_back(
1517
1623
  struct wsp_ggml_context * ctx,
1518
1624
  struct wsp_ggml_tensor * a,
@@ -1571,7 +1677,7 @@ extern "C" {
1571
1677
  struct wsp_ggml_tensor * b,
1572
1678
  struct wsp_ggml_tensor * c,
1573
1679
  int n_dims,
1574
- int sections[4],
1680
+ int sections[WSP_GGML_MROPE_SECTIONS],
1575
1681
  int mode,
1576
1682
  int n_ctx_orig,
1577
1683
  float freq_base,
@@ -1597,6 +1703,22 @@ extern "C" {
1597
1703
  float beta_fast,
1598
1704
  float beta_slow);
1599
1705
 
1706
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_rope_multi_inplace(
1707
+ struct wsp_ggml_context * ctx,
1708
+ struct wsp_ggml_tensor * a,
1709
+ struct wsp_ggml_tensor * b,
1710
+ struct wsp_ggml_tensor * c,
1711
+ int n_dims,
1712
+ int sections[WSP_GGML_MROPE_SECTIONS],
1713
+ int mode,
1714
+ int n_ctx_orig,
1715
+ float freq_base,
1716
+ float freq_scale,
1717
+ float ext_factor,
1718
+ float attn_factor,
1719
+ float beta_fast,
1720
+ float beta_slow);
1721
+
1600
1722
  WSP_GGML_DEPRECATED(WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_rope_custom(
1601
1723
  struct wsp_ggml_context * ctx,
1602
1724
  struct wsp_ggml_tensor * a,
@@ -1754,6 +1876,41 @@ extern "C" {
1754
1876
  int d0, // dilation dimension 0
1755
1877
  int d1); // dilation dimension 1
1756
1878
 
1879
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_im2col_3d(
1880
+ struct wsp_ggml_context * ctx,
1881
+ struct wsp_ggml_tensor * a,
1882
+ struct wsp_ggml_tensor * b,
1883
+ int64_t IC,
1884
+ int s0, // stride width
1885
+ int s1, // stride height
1886
+ int s2, // stride depth
1887
+ int p0, // padding width
1888
+ int p1, // padding height
1889
+ int p2, // padding depth
1890
+ int d0, // dilation width
1891
+ int d1, // dilation height
1892
+ int d2, // dilation depth
1893
+ enum wsp_ggml_type dst_type);
1894
+
1895
+ // a: [OC*IC, KD, KH, KW]
1896
+ // b: [N*IC, ID, IH, IW]
1897
+ // result: [N*OC, OD, OH, OW]
1898
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_conv_3d(
1899
+ struct wsp_ggml_context * ctx,
1900
+ struct wsp_ggml_tensor * a,
1901
+ struct wsp_ggml_tensor * b,
1902
+ int64_t IC,
1903
+ int s0, // stride width
1904
+ int s1, // stride height
1905
+ int s2, // stride depth
1906
+ int p0, // padding width
1907
+ int p1, // padding height
1908
+ int p2, // padding depth
1909
+ int d0, // dilation width
1910
+ int d1, // dilation height
1911
+ int d2 // dilation depth
1912
+ );
1913
+
1757
1914
  // kernel size is a->ne[0] x a->ne[1]
1758
1915
  // stride is equal to kernel size
1759
1916
  // padding is zero
@@ -1825,6 +1982,23 @@ extern "C" {
1825
1982
  int d0, // dilation dimension 0
1826
1983
  int d1); // dilation dimension 1
1827
1984
 
1985
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_conv_3d_direct(
1986
+ struct wsp_ggml_context * ctx,
1987
+ struct wsp_ggml_tensor * a, // kernel [KW, KH, KD, IC * OC]
1988
+ struct wsp_ggml_tensor * b, // input [W, H, D, C * N]
1989
+ int s0, // stride
1990
+ int s1,
1991
+ int s2,
1992
+ int p0, // padding
1993
+ int p1,
1994
+ int p2,
1995
+ int d0, // dilation
1996
+ int d1,
1997
+ int d2,
1998
+ int n_channels,
1999
+ int n_batch,
2000
+ int n_channels_out);
2001
+
1828
2002
  enum wsp_ggml_op_pool {
1829
2003
  WSP_GGML_OP_POOL_MAX,
1830
2004
  WSP_GGML_OP_POOL_AVG,
@@ -1915,6 +2089,19 @@ extern "C" {
1915
2089
  int p2,
1916
2090
  int p3);
1917
2091
 
2092
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_pad_ext(
2093
+ struct wsp_ggml_context * ctx,
2094
+ struct wsp_ggml_tensor * a,
2095
+ int lp0,
2096
+ int rp0,
2097
+ int lp1,
2098
+ int rp1,
2099
+ int lp2,
2100
+ int rp2,
2101
+ int lp3,
2102
+ int rp3
2103
+ );
2104
+
1918
2105
  // pad each dimension with reflection: [a, b, c, d] -> [b, a, b, c, d, c]
1919
2106
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_pad_reflect_1d(
1920
2107
  struct wsp_ggml_context * ctx,
@@ -1967,11 +2154,17 @@ extern "C" {
1967
2154
 
1968
2155
  #define WSP_GGML_KQ_MASK_PAD 64
1969
2156
 
1970
- // q: [n_embd_k, n_batch, n_head, 1]
1971
- // k: [n_embd_k, n_kv, n_head_kv, 1]
1972
- // v: [n_embd_v, n_kv, n_head_kv, 1] !! not transposed !!
1973
- // mask: [n_kv, n_batch_pad, 1, 1] !! n_batch_pad = WSP_GGML_PAD(n_batch, WSP_GGML_KQ_MASK_PAD) !!
1974
- // res: [n_embd_v, n_head, n_batch, 1] !! permuted !!
2157
+ // q: [n_embd_k, n_batch, n_head, ne3 ]
2158
+ // k: [n_embd_k, n_kv, n_head_kv, ne3 ]
2159
+ // v: [n_embd_v, n_kv, n_head_kv, ne3 ] !! not transposed !!
2160
+ // mask: [n_kv, n_batch_pad, ne32, ne33] !! n_batch_pad = WSP_GGML_PAD(n_batch, WSP_GGML_KQ_MASK_PAD) !!
2161
+ // res: [n_embd_v, n_head, n_batch, ne3 ] !! permuted !!
2162
+ //
2163
+ // broadcast:
2164
+ // n_head % n_head_kv == 0
2165
+ // n_head % ne32 == 0
2166
+ // ne3 % ne33 == 0
2167
+ //
1975
2168
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_flash_attn_ext(
1976
2169
  struct wsp_ggml_context * ctx,
1977
2170
  struct wsp_ggml_tensor * q,
@@ -1989,6 +2182,10 @@ extern "C" {
1989
2182
  WSP_GGML_API enum wsp_ggml_prec wsp_ggml_flash_attn_ext_get_prec(
1990
2183
  const struct wsp_ggml_tensor * a);
1991
2184
 
2185
+ WSP_GGML_API void wsp_ggml_flash_attn_ext_add_sinks(
2186
+ struct wsp_ggml_tensor * a,
2187
+ struct wsp_ggml_tensor * sinks);
2188
+
1992
2189
  // TODO: needs to be adapted to wsp_ggml_flash_attn_ext
1993
2190
  WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_flash_attn_back(
1994
2191
  struct wsp_ggml_context * ctx,
@@ -2010,7 +2207,8 @@ extern "C" {
2010
2207
  struct wsp_ggml_tensor * dt,
2011
2208
  struct wsp_ggml_tensor * A,
2012
2209
  struct wsp_ggml_tensor * B,
2013
- struct wsp_ggml_tensor * C);
2210
+ struct wsp_ggml_tensor * C,
2211
+ struct wsp_ggml_tensor * ids);
2014
2212
 
2015
2213
  // partition into non-overlapping windows with padding if needed
2016
2214
  // example:
@@ -2193,7 +2391,14 @@ extern "C" {
2193
2391
  struct wsp_ggml_tensor * grad,
2194
2392
  struct wsp_ggml_tensor * m,
2195
2393
  struct wsp_ggml_tensor * v,
2196
- struct wsp_ggml_tensor * adamw_params); // parameters such a the learning rate
2394
+ struct wsp_ggml_tensor * adamw_params); // parameters such as the learning rate
2395
+
2396
+ // stochastic gradient descent step (with weight decay)
2397
+ WSP_GGML_API struct wsp_ggml_tensor * wsp_ggml_opt_step_sgd(
2398
+ struct wsp_ggml_context * ctx,
2399
+ struct wsp_ggml_tensor * a,
2400
+ struct wsp_ggml_tensor * grad,
2401
+ struct wsp_ggml_tensor * sgd_params); // alpha, weight decay
2197
2402
 
2198
2403
  //
2199
2404
  // automatic differentiation
@@ -526,6 +526,7 @@ extern "C" {
526
526
  // use whisper_tokenize() to convert text to tokens
527
527
  // maximum of whisper_n_text_ctx()/2 tokens are used (typically 224)
528
528
  const char * initial_prompt;
529
+ bool carry_initial_prompt; // if true, always prepend initial_prompt to every decode window (may reduce conditioning on previous text)
529
530
  const whisper_token * prompt_tokens;
530
531
  int prompt_n_tokens;
531
532
 
@@ -6,7 +6,7 @@
6
6
  <dict>
7
7
  <key>Info.plist</key>
8
8
  <data>
9
- E8CBDAzB/YQNCQbm/dX/q74uSgk=
9
+ Ql9T3+Qa6jsdDzLj+Tl4viO3bss=
10
10
  </data>
11
11
  </dict>
12
12
  <key>files2</key>
@@ -362,6 +362,19 @@ class RealtimeTranscriber {
362
362
  this.log(`No audio data available for slice ${slice.index}`);
363
363
  return;
364
364
  }
365
+ if (this.callbacks.onBeginTranscribe) {
366
+ const shouldTranscribe = (await this.callbacks.onBeginTranscribe({
367
+ sliceIndex: slice.index,
368
+ audioData,
369
+ duration: slice.data.length / 16000 / 2 * 1000,
370
+ // Convert to milliseconds
371
+ vadEvent: this.vadEvents.get(slice.index)
372
+ })) ?? true;
373
+ if (!shouldTranscribe) {
374
+ this.log(`User callback declined transcription for slice ${slice.index}`);
375
+ return;
376
+ }
377
+ }
365
378
 
366
379
  // Add to transcription queue
367
380
  this.transcriptionQueue.unshift({
@@ -1 +1 @@
1
- {"version":3,"names":["_SliceManager","require","_WavFileWriter","_types","RealtimeTranscriber","callbacks","isActive","isTranscribing","vadEnabled","transcriptionQueue","accumulatedData","Uint8Array","wavFileWriter","lastSpeechDetectedTime","lastVadState","lastStatsSnapshot","transcriptionResults","Map","vadEvents","constructor","dependencies","options","arguments","length","undefined","whisperContext","vadContext","audioStream","fs","audioSliceSec","audioMinSec","maxSlicesInMemory","vadOptions","VAD_PRESETS","default","vadPreset","autoSliceOnSpeechEnd","autoSliceThreshold","transcribeOptions","initialPrompt","promptPreviousSlices","audioOutputPath","logger","sliceManager","SliceManager","onData","handleAudioData","bind","onError","handleError","onStatusChange","handleAudioStatusChange","start","Error","_this$callbacks$onSta","_this$callbacks","_this$options$audioSt4","_this$options$audioSt5","_this$options$audioSt6","_this$options$audioSt7","_this$options$audioSt8","call","reset","_this$options$audioSt","_this$options$audioSt2","_this$options$audioSt3","WavFileWriter","sampleRate","audioStreamConfig","channels","bitsPerSample","initialize","audioSource","bufferSize","emitStatsUpdate","log","error","_this$callbacks$onSta2","_this$callbacks2","stop","_this$callbacks$onSta3","_this$callbacks3","processAccumulatedDataForSliceManagement","processTranscriptionQueue","finalize","streamData","appendAudioData","data","catch","accumulateAudioData","errorMessage","message","newData","combined","set","minBufferSamples","result","addAudioData","slice","index","processSliceVAD","queueSliceForTranscription","checkAutoSlice","vadEvent","_slice","shouldTriggerAutoSlice","type","currentSliceInfo","getCurrentSliceInfo","currentSlice","getSliceByIndex","currentSliceIndex","currentDuration","Date","now","startTime","targetDuration","minDuration","meetsMinDuration","meetsThreshold","toFixed","nextSlice","_this$callbacks$onVad","_this$callbacks4","audioData","getAudioDataForTranscription","detectSpeech","timestamp","onVad","isSpeech","isSpeechEnd","speechDuration","unshift","sliceIndex","currentTimestamp","vadEventType","confidence","duration","audioBuffer","buffer","vadSegments","detectSpeechData","_vadSegments","totalTime","reduce","sum","segment","t1","t0","audioDuration","Math","min","threshold","currentThreshold","isProcessingTranscriptionQueue","item","shift","processTranscription","buildPrompt","promptParts","push","previousResults","Array","from","entries","filter","_ref","sort","_ref2","_ref3","a","b","map","_ref4","_result$transcribeEve","transcribeEvent","Boolean","join","_this$callbacks$onTra","_this$callbacks5","prompt","promise","transcribeData","onProgress","endTime","isCapturing","isRecording","processTime","recordingTime","memoryUsage","getMemoryUsage","get","sampleCount","isProcessed","isReleased","onTranscribe","delete","_this$callbacks$onTra2","_this$callbacks6","errorEvent","_this$callbacks$onErr","_this$callbacks7","updateCallbacks","updateVadOptions","updateAutoSliceOptions","getStatistics","audioStats","accumulatedSamples","vadStats","enabled","contextAvailable","sliceStats","autoSliceConfig","getTranscriptionResults","values","_this$callbacks$onTra3","_this$callbacks8","startEvent","forceNextSlice","cancel","clear","release","_this$wavFileWriter","eventType","currentStats","shouldEmitStatsUpdate","_this$callbacks$onSta4","_this$callbacks9","statsEvent","onStatsUpdate","current","previous","_current$sliceStats","_current$sliceStats$m","_previous$sliceStats","_previous$sliceStats$","currentMemory","estimatedMB","previousMemory","memoryDiff","abs","exports"],"sourceRoot":"../../../src","sources":["realtime-transcription/RealtimeTranscriber.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAeA,IAAAE,MAAA,GAAAF,OAAA;AAlBA;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,mBAAmB,CAAC;EAWvBC,SAAS,GAAiC,CAAC,CAAC;EAkB5CC,QAAQ,GAAG,KAAK;EAEhBC,cAAc,GAAG,KAAK;EAEtBC,UAAU,GAAG,KAAK;EAElBC,kBAAkB,GAGrB,EAAE;EAECC,eAAe,GAAe,IAAIC,UAAU,CAAC,CAAC,CAAC;EAE/CC,aAAa,GAAyB,IAAI;;EAElD;EACQC,sBAAsB,GAAG,CAAC;;EAElC;EACQC,YAAY,GAAyB,SAAS;;EAEtD;EACQC,iBAAiB,GAAQ,IAAI;;EAErC;EACQC,oBAAoB,GAGxB,IAAIC,GAAG,EAAE;;EAEb;EACQC,SAAS,GAAkC,IAAID,GAAG,EAAE;EAE5DE,WAAWA,CACTC,YAA6C,EAG7C;IAAA,IAFAC,OAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAC7BjB,SAAuC,GAAAiB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAE5C,IAAI,CAACG,cAAc,GAAGL,YAAY,CAACK,cAAc;IACjD,IAAI,CAACC,UAAU,GAAGN,YAAY,CAACM,UAAU;IACzC,IAAI,CAACC,WAAW,GAAGP,YAAY,CAACO,WAAW;IAC3C,IAAI,CAACC,EAAE,GAAGR,YAAY,CAACQ,EAAE;IACzB,IAAI,CAACvB,SAAS,GAAGA,SAAS;;IAE1B;IACA,IAAI,CAACgB,OAAO,GAAG;MACbQ,aAAa,EAAER,OAAO,CAACQ,aAAa,IAAI,EAAE;MAC1CC,WAAW,EAAET,OAAO,CAACS,WAAW,IAAI,CAAC;MACrCC,iBAAiB,EAAEV,OAAO,CAACU,iBAAiB,IAAI,CAAC;MACjDC,UAAU,EAAEX,OAAO,CAACW,UAAU,IAAIC,kBAAW,CAACC,OAAO;MACrDC,SAAS,EAAEd,OAAO,CAACc,SAAS;MAC5BC,oBAAoB,EAAEf,OAAO,CAACe,oBAAoB,IAAI,IAAI;MAC1DC,kBAAkB,EAAEhB,OAAO,CAACgB,kBAAkB,IAAI,GAAG;MACrDC,iBAAiB,EAAEjB,OAAO,CAACiB,iBAAiB,IAAI,CAAC,CAAC;MAClDC,aAAa,EAAElB,OAAO,CAACkB,aAAa;MACpCC,oBAAoB,EAAEnB,OAAO,CAACmB,oBAAoB,IAAI,IAAI;MAC1DC,eAAe,EAAEpB,OAAO,CAACoB,eAAe;MACxCC,MAAM,EAAErB,OAAO,CAACqB,MAAM,KAAK,MAAM,CAAC,CAAC;IACrC,CAAC;;IAED;IACA,IAAI,IAAI,CAACrB,OAAO,CAACc,SAAS,IAAIF,kBAAW,CAAC,IAAI,CAACZ,OAAO,CAACc,SAAS,CAAC,EAAE;MACjE,IAAI,CAACd,OAAO,CAACW,UAAU,GAAG;QACxB,GAAGC,kBAAW,CAAC,IAAI,CAACZ,OAAO,CAACc,SAAS,CAAC;QACtC,GAAG,IAAI,CAACd,OAAO,CAACW;MAClB,CAAC;IACH;;IAEA;IACA,IAAI,CAACxB,UAAU,GAAG,CAAC,CAAC,IAAI,CAACkB,UAAU;;IAEnC;IACA,IAAI,CAACiB,YAAY,GAAG,IAAIC,0BAAY,CAClC,IAAI,CAACvB,OAAO,CAACQ,aAAa,EAC1B,IAAI,CAACR,OAAO,CAACU,iBAAiB,CAC/B;;IAED;IACA,IAAI,CAACJ,WAAW,CAACkB,MAAM,CAAC,IAAI,CAACC,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAACpB,WAAW,CAACqB,OAAO,CAAC,IAAI,CAACC,WAAW,CAACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAACpB,WAAW,CAACuB,cAAc,CAAC,IAAI,CAACC,uBAAuB,CAACJ,IAAI,CAAC,IAAI,CAAC,CAAC;EAC1E;;EAEA;AACF;AACA;EACE,MAAMK,KAAKA,CAAA,EAAkB;IAC3B,IAAI,IAAI,CAAC9C,QAAQ,EAAE;MACjB,MAAM,IAAI+C,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IAEA,IAAI;MAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MACF,IAAI,CAACtD,QAAQ,GAAG,IAAI;MACpB,CAAAgD,qBAAA,IAAAC,eAAA,OAAI,CAAClD,SAAS,EAAC6C,cAAc,cAAAI,qBAAA,uBAA7BA,qBAAA,CAAAO,IAAA,CAAAN,eAAA,EAAgC,IAAI,CAAC;;MAErC;MACA,IAAI,CAACO,KAAK,EAAE;;MAEZ;MACA,IAAI,IAAI,CAAClC,EAAE,IAAI,IAAI,CAACP,OAAO,CAACoB,eAAe,EAAE;QAAA,IAAAsB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;QAC3C,IAAI,CAACrD,aAAa,GAAG,IAAIsD,4BAAa,CACpC,IAAI,CAACtC,EAAE,EACP,IAAI,CAACP,OAAO,CAACoB,eAAe,EAC5B;UACE0B,UAAU,EAAE,EAAAJ,qBAAA,OAAI,CAAC1C,OAAO,CAAC+C,iBAAiB,cAAAL,qBAAA,uBAA9BA,qBAAA,CAAgCI,UAAU,KAAI,KAAK;UAC/DE,QAAQ,EAAE,EAAAL,sBAAA,OAAI,CAAC3C,OAAO,CAAC+C,iBAAiB,cAAAJ,sBAAA,uBAA9BA,sBAAA,CAAgCK,QAAQ,KAAI,CAAC;UACvDC,aAAa,EAAE,EAAAL,sBAAA,OAAI,CAAC5C,OAAO,CAAC+C,iBAAiB,cAAAH,sBAAA,uBAA9BA,sBAAA,CAAgCK,aAAa,KAAI;QAClE,CAAC,CACF;QACD,MAAM,IAAI,CAAC1D,aAAa,CAAC2D,UAAU,EAAE;MACvC;;MAEA;MACA,MAAM,IAAI,CAAC5C,WAAW,CAAC4C,UAAU,CAAC;QAChCJ,UAAU,EAAE,EAAAX,sBAAA,OAAI,CAACnC,OAAO,CAAC+C,iBAAiB,cAAAZ,sBAAA,uBAA9BA,sBAAA,CAAgCW,UAAU,KAAI,KAAK;QAC/DE,QAAQ,EAAE,EAAAZ,sBAAA,OAAI,CAACpC,OAAO,CAAC+C,iBAAiB,cAAAX,sBAAA,uBAA9BA,sBAAA,CAAgCY,QAAQ,KAAI,CAAC;QACvDC,aAAa,EAAE,EAAAZ,sBAAA,OAAI,CAACrC,OAAO,CAAC+C,iBAAiB,cAAAV,sBAAA,uBAA9BA,sBAAA,CAAgCY,aAAa,KAAI,EAAE;QAClEE,WAAW,EAAE,EAAAb,sBAAA,OAAI,CAACtC,OAAO,CAAC+C,iBAAiB,cAAAT,sBAAA,uBAA9BA,sBAAA,CAAgCa,WAAW,KAAI,CAAC;QAC7DC,UAAU,EAAE,EAAAb,sBAAA,OAAI,CAACvC,OAAO,CAAC+C,iBAAiB,cAAAR,sBAAA,uBAA9BA,sBAAA,CAAgCa,UAAU,KAAI,EAAE,GAAG;MACjE,CAAC,CAAC;MACF,MAAM,IAAI,CAAC9C,WAAW,CAACyB,KAAK,EAAE;;MAE9B;MACA,IAAI,CAACsB,eAAe,CAAC,eAAe,CAAC;MAErC,IAAI,CAACC,GAAG,CAAC,gCAAgC,CAAC;IAC5C,CAAC,CAAC,OAAOC,KAAK,EAAE;MAAA,IAAAC,sBAAA,EAAAC,gBAAA;MACd,IAAI,CAACxE,QAAQ,GAAG,KAAK;MACrB,CAAAuE,sBAAA,IAAAC,gBAAA,OAAI,CAACzE,SAAS,EAAC6C,cAAc,cAAA2B,sBAAA,uBAA7BA,sBAAA,CAAAhB,IAAA,CAAAiB,gBAAA,EAAgC,KAAK,CAAC;MACtC,MAAMF,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkB;IAC1B,IAAI,CAAC,IAAI,CAACzE,QAAQ,EAAE;MAClB;IACF;IAEA,IAAI;MAAA,IAAA0E,sBAAA,EAAAC,gBAAA;MACF,IAAI,CAAC3E,QAAQ,GAAG,KAAK;;MAErB;MACA,MAAM,IAAI,CAACqB,WAAW,CAACoD,IAAI,EAAE;;MAE7B;MACA,IAAI,IAAI,CAACrE,eAAe,CAACa,MAAM,GAAG,CAAC,EAAE;QACnC,IAAI,CAAC2D,wCAAwC,EAAE;MACjD;;MAEA;MACA,MAAM,IAAI,CAACC,yBAAyB,EAAE;;MAEtC;MACA,IAAI,IAAI,CAACvE,aAAa,EAAE;QACtB,MAAM,IAAI,CAACA,aAAa,CAACwE,QAAQ,EAAE;QACnC,IAAI,CAACxE,aAAa,GAAG,IAAI;MAC3B;;MAEA;MACA,IAAI,CAACkD,KAAK,EAAE;MAEZ,CAAAkB,sBAAA,IAAAC,gBAAA,OAAI,CAAC5E,SAAS,EAAC6C,cAAc,cAAA8B,sBAAA,uBAA7BA,sBAAA,CAAAnB,IAAA,CAAAoB,gBAAA,EAAgC,KAAK,CAAC;;MAEtC;MACA,IAAI,CAACP,eAAe,CAAC,eAAe,CAAC;MAErC,IAAI,CAACC,GAAG,CAAC,gCAAgC,CAAC;IAC5C,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAI,CAAC3B,WAAW,CAAE,eAAc2B,KAAM,EAAC,CAAC;IAC1C;EACF;;EAEA;AACF;AACA;EACU9B,eAAeA,CAACuC,UAA2B,EAAQ;IACzD,IAAI,CAAC,IAAI,CAAC/E,QAAQ,EAAE;MAClB;IACF;IAEA,IAAI;MACF;MACA,IAAI,IAAI,CAACM,aAAa,EAAE;QACtB,IAAI,CAACA,aAAa,CAAC0E,eAAe,CAACD,UAAU,CAACE,IAAI,CAAC,CAACC,KAAK,CAAEZ,KAAK,IAAK;UACnE,IAAI,CAACD,GAAG,CAAE,sCAAqCC,KAAM,EAAC,CAAC;QACzD,CAAC,CAAC;MACJ;;MAEA;MACA,IAAI,CAACa,mBAAmB,CAACJ,UAAU,CAACE,IAAI,CAAC;IAC3C,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd,MAAMc,YAAY,GAChBd,KAAK,YAAYvB,KAAK,GAAGuB,KAAK,CAACe,OAAO,GAAG,wBAAwB;MACnE,IAAI,CAAC1C,WAAW,CAACyC,YAAY,CAAC;IAChC;EACF;;EAEA;AACF;AACA;EACUD,mBAAmBA,CAACG,OAAmB,EAAQ;IACrD,MAAMC,QAAQ,GAAG,IAAIlF,UAAU,CAC7B,IAAI,CAACD,eAAe,CAACa,MAAM,GAAGqE,OAAO,CAACrE,MAAM,CAC7C;IACDsE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACpF,eAAe,CAAC;IAClCmF,QAAQ,CAACC,GAAG,CAAC,IAAInF,UAAU,CAACiF,OAAO,CAAC,EAAE,IAAI,CAAClF,eAAe,CAACa,MAAM,CAAC;IAClE,IAAI,CAACb,eAAe,GAAGmF,QAAQ;;IAE/B;IACA,MAAME,gBAAgB,GAAG,KAAK,GAAG,CAAC,EAAC;IACnC,IAAI,IAAI,CAACrF,eAAe,CAACa,MAAM,IAAIwE,gBAAgB,EAAE;MACnD,IAAI,CAACb,wCAAwC,EAAE;IACjD;EACF;;EAEA;AACF;AACA;EACUA,wCAAwCA,CAAA,EAAS;IACvD,IAAI,IAAI,CAACxE,eAAe,CAACa,MAAM,KAAK,CAAC,EAAE;MACrC;IACF;;IAEA;IACA,MAAMyE,MAAM,GAAG,IAAI,CAACrD,YAAY,CAACsD,YAAY,CAAC,IAAI,CAACvF,eAAe,CAAC;IAEnE,IAAIsF,MAAM,CAACE,KAAK,EAAE;MAChB,IAAI,CAACvB,GAAG,CACL,SAAQqB,MAAM,CAACE,KAAK,CAACC,KAAM,WAAUH,MAAM,CAACE,KAAK,CAACX,IAAI,CAAChE,MAAO,SAAQ,CACxE;;MAED;MACA,IAAI,CAAC,IAAI,CAAChB,cAAc,IAAI,IAAI,CAACC,UAAU,EAAE;QAC3C,IAAI,CAAC4F,eAAe,CAACJ,MAAM,CAACE,KAAK,CAAC,CAACV,KAAK,CAAEZ,KAAU,IAAK;UACvD,IAAI,CAAC3B,WAAW,CAAE,yBAAwB2B,KAAM,EAAC,CAAC;QACpD,CAAC,CAAC;MACJ,CAAC,MAAM,IAAI,CAAC,IAAI,CAACrE,cAAc,EAAE;QAC/B;QACA,IAAI,CAAC8F,0BAA0B,CAACL,MAAM,CAACE,KAAK,CAAC,CAACV,KAAK,CAAEZ,KAAU,IAAK;UAClE,IAAI,CAAC3B,WAAW,CAAE,4CAA2C2B,KAAM,EAAC,CAAC;QACvE,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACD,GAAG,CAAE,kBAAiBqB,MAAM,CAACE,KAAK,CAACC,KAAM,yBAAwB,CAAC;MACzE;MAEA,IAAI,CAACzB,eAAe,CAAC,eAAe,CAAC;IACvC;;IAEA;IACA,IAAI,CAAChE,eAAe,GAAG,IAAIC,UAAU,CAAC,CAAC,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,MAAc2F,cAAcA,CAC1BC,QAA0B,EAC1BC,MAAW,EACI;IACf,IAAI,CAAC,IAAI,CAACnF,OAAO,CAACe,oBAAoB,IAAI,CAAC,IAAI,CAAC5B,UAAU,EAAE;MAC1D;IACF;;IAEA;IACA,MAAMiG,sBAAsB,GAC1BF,QAAQ,CAACG,IAAI,KAAK,YAAY,IAAIH,QAAQ,CAACG,IAAI,KAAK,SAAS;IAE/D,IAAI,CAACD,sBAAsB,EAAE;MAC3B;IACF;;IAEA;IACA,MAAME,gBAAgB,GAAG,IAAI,CAAChE,YAAY,CAACiE,mBAAmB,EAAE;IAChE,MAAMC,YAAY,GAAG,IAAI,CAAClE,YAAY,CAACmE,eAAe,CACpDH,gBAAgB,CAACI,iBAAiB,CACnC;IAED,IAAI,CAACF,YAAY,EAAE;MACjB;IACF;;IAEA;IACA,MAAMG,eAAe,GAAG,CAACC,IAAI,CAACC,GAAG,EAAE,GAAGL,YAAY,CAACM,SAAS,IAAI,IAAI,EAAC;IACrE,MAAMC,cAAc,GAAG,IAAI,CAAC/F,OAAO,CAACQ,aAAa;IACjD,MAAMwF,WAAW,GAAG,IAAI,CAAChG,OAAO,CAACS,WAAW;IAC5C,MAAMO,kBAAkB,GAAG+E,cAAc,GAAG,IAAI,CAAC/F,OAAO,CAACgB,kBAAkB;;IAE3E;IACA,MAAMiF,gBAAgB,GAAGN,eAAe,IAAIK,WAAW;IACvD,MAAME,cAAc,GAAGP,eAAe,IAAI3E,kBAAkB;IAE5D,IAAIiF,gBAAgB,IAAIC,cAAc,EAAE;MACtC,IAAI,CAAC5C,GAAG,CACL,mBAAkB4B,QAAQ,CAACG,IAAK,OAAMM,eAAe,CAACQ,OAAO,CAAC,CAAC,CAAE,IAAG,GAClE,SAAQH,WAAY,iBAAgBhF,kBAAkB,CAACmF,OAAO,CAC7D,CAAC,CACD,cAAaJ,cAAe,IAAG,CACpC;;MAED;MACA,MAAM,IAAI,CAACK,SAAS,EAAE;IACxB,CAAC,MAAM;MACL,IAAI,CAAC9C,GAAG,CACL,oCAAmC4B,QAAQ,CAACG,IAAK,IAAG,GAClD,YAAWM,eAAe,CAACQ,OAAO,CACjC,CAAC,CACD,UAASH,WAAY,gBAAehF,kBAAkB,CAACmF,OAAO,CAC9D,CAAC,CACD,IAAG,GACJ,UAASF,gBAAiB,iBAAgBC,cAAe,GAAE,CAC/D;IACH;EACF;;EAEA;AACF;AACA;EACE,MAAcnB,eAAeA,CAACF,KAAU,EAAiB;IACvD,IAAI;MAAA,IAAAwB,qBAAA,EAAAC,gBAAA;MACF;MACA,MAAMC,SAAS,GAAG,IAAI,CAACjF,YAAY,CAACkF,4BAA4B,CAC9D3B,KAAK,CAACC,KAAK,CACZ;MAED,IAAI,CAACyB,SAAS,EAAE;QACd,IAAI,CAACjD,GAAG,CACL,uDAAsDuB,KAAK,CAACC,KAAM,EAAC,CACrE;QACD;MACF;;MAEA;;MAEA;MACA,MAAMI,QAAQ,GAAG,MAAM,IAAI,CAACuB,YAAY,CAACF,SAAS,EAAE1B,KAAK,CAACC,KAAK,CAAC;MAChEI,QAAQ,CAACwB,SAAS,GAAGd,IAAI,CAACC,GAAG,EAAE;;MAE/B;MACA,IAAI,CAAChG,SAAS,CAAC4E,GAAG,CAACI,KAAK,CAACC,KAAK,EAAEI,QAAQ,CAAC;;MAEzC;MACA,CAAAmB,qBAAA,IAAAC,gBAAA,OAAI,CAACtH,SAAS,EAAC2H,KAAK,cAAAN,qBAAA,uBAApBA,qBAAA,CAAA7D,IAAA,CAAA8D,gBAAA,EAAuBpB,QAAQ,CAAC;;MAEhC;MACA,MAAM,IAAI,CAACD,cAAc,CAACC,QAAQ,EAAEL,KAAK,CAAC;;MAE1C;MACA,MAAM+B,QAAQ,GACZ1B,QAAQ,CAACG,IAAI,KAAK,cAAc,IAAIH,QAAQ,CAACG,IAAI,KAAK,iBAAiB;MAEzE,MAAMwB,WAAW,GAAG3B,QAAQ,CAACG,IAAI,KAAK,YAAY;MAElD,IAAIuB,QAAQ,EAAE;QACZ,MAAMZ,WAAW,GAAG,IAAI,CAAChG,OAAO,CAACS,WAAW;QAC5C;QACA,MAAMqG,cAAc,GAAGjC,KAAK,CAACX,IAAI,CAAChE,MAAM,GAAG,KAAK,GAAG,CAAC,EAAC;;QAErD,IAAI4G,cAAc,IAAId,WAAW,EAAE;UACjC,IAAI,CAAC1C,GAAG,CACL,4BAA2BuB,KAAK,CAACC,KAAM,8BAA6B,CACtE;UACD,MAAM,IAAI,CAACE,0BAA0B,CAACH,KAAK,CAAC;QAC9C,CAAC,MAAM;UACL,IAAI,CAACvB,GAAG,CACL,6BAA4BuB,KAAK,CAACC,KAAM,KAAIgC,cAAc,CAACX,OAAO,CACjE,CAAC,CACD,OAAMH,WAAY,cAAa,CAClC;QACH;MACF,CAAC,MAAM,IAAIa,WAAW,EAAE;QACtB,IAAI,CAACvD,GAAG,CAAE,yBAAwBuB,KAAK,CAACC,KAAM,EAAC,CAAC;QAChD;QACA;QACA,MAAMgC,cAAc,GAAGjC,KAAK,CAACX,IAAI,CAAChE,MAAM,GAAG,KAAK,GAAG,CAAC,EAAC;QACrD,MAAM8F,WAAW,GAAG,IAAI,CAAChG,OAAO,CAACS,WAAW;QAE5C,IAAIqG,cAAc,IAAId,WAAW,EAAE;UACjC,IAAI,CAAC1C,GAAG,CACL,gCAA+BuB,KAAK,CAACC,KAAM,4CAA2C,CACxF;UACD,MAAM,IAAI,CAACE,0BAA0B,CAACH,KAAK,CAAC;QAC9C,CAAC,MAAM;UACL,IAAI,CAACvB,GAAG,CACL,yCACCuB,KAAK,CAACC,KACP,KAAIgC,cAAc,CAACX,OAAO,CAAC,CAAC,CAAE,OAAMH,WAAY,cAAa,CAC/D;QACH;MACF,CAAC,MAAM;QACL,IAAI,CAAC1C,GAAG,CAAE,+BAA8BuB,KAAK,CAACC,KAAM,EAAC,CAAC;MACxD;;MAEA;MACA,IAAI,CAACzB,eAAe,CAAC,YAAY,CAAC;IACpC,CAAC,CAAC,OAAOE,KAAU,EAAE;MACnB,IAAI,CAAC3B,WAAW,CACb,kCAAiCiD,KAAK,CAACC,KAAM,KAAIvB,KAAM,EAAC,CAC1D;IACH;EACF;;EAEA;AACF;AACA;EACE,MAAcyB,0BAA0BA,CAACH,KAAU,EAAiB;IAClE,IAAI;MACF;MACA,MAAM0B,SAAS,GAAG,IAAI,CAACjF,YAAY,CAACkF,4BAA4B,CAC9D3B,KAAK,CAACC,KAAK,CACZ;MAED,IAAI,CAACyB,SAAS,EAAE;QACd,IAAI,CAACjD,GAAG,CAAE,qCAAoCuB,KAAK,CAACC,KAAM,EAAC,CAAC;QAC5D;MACF;;MAEA;MACA,IAAI,CAAC1F,kBAAkB,CAAC2H,OAAO,CAAC;QAC9BC,UAAU,EAAEnC,KAAK,CAACC,KAAK;QACvByB;MACF,CAAC,CAAC;MAEF,IAAI,CAACjD,GAAG,CACL,gBAAeuB,KAAK,CAACC,KAAM,uBAAsBD,KAAK,CAACX,IAAI,CAAChE,MAAO,WAAU,CAC/E;MAED,MAAM,IAAI,CAAC4D,yBAAyB,EAAE;IACxC,CAAC,CAAC,OAAOP,KAAU,EAAE;MACnB,IAAI,CAAC3B,WAAW,CAAE,4CAA2C2B,KAAM,EAAC,CAAC;IACvE;EACF;;EAEA;AACF;AACA;EACE,MAAckD,YAAYA,CACxBF,SAAqB,EACrBS,UAAkB,EACS;IAC3B,IAAI,CAAC,IAAI,CAAC3G,UAAU,EAAE;MACpB;MACA;MACA,MAAM4G,gBAAgB,GAAGrB,IAAI,CAACC,GAAG,EAAE;;MAEnC;MACA,MAAMqB,YAAsC,GAC1C,IAAI,CAACzH,YAAY,KAAK,SAAS,GAAG,cAAc,GAAG,iBAAiB;;MAEtE;MACA,IAAI,CAACA,YAAY,GAAG,QAAQ;MAE5B,MAAM;QAAEqD,UAAU,GAAG;MAAM,CAAC,GAAG,IAAI,CAAC9C,OAAO,CAAC+C,iBAAiB,IAAI,CAAC,CAAC;MACnE,OAAO;QACLsC,IAAI,EAAE6B,YAAY;QAClB1H,sBAAsB,EAAE,CAAC;QACzBkH,SAAS,EAAEO,gBAAgB;QAC3BE,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAEb,SAAS,CAACrG,MAAM,GAAG4C,UAAU,GAAG,CAAC;QAAE;QAC7CkE;MACF,CAAC;IACH;IAEA,IAAI;MACF,MAAMK,WAAW,GAAGd,SAAS,CAACe,MAAqB;;MAEnD;MACA,MAAMC,WAAW,GAAG,MAAM,IAAI,CAAClH,UAAU,CAACmH,gBAAgB,CACxDH,WAAW,EACX,IAAI,CAACrH,OAAO,CAACW,UAAU,CACxB;;MAED;MACA,IAAIwG,UAAU,GAAG,GAAG;MACpB,IAAI3H,sBAAsB,GAAG,CAAC;MAC9B,IAAI+H,WAAW,IAAIA,WAAW,CAACrH,MAAM,GAAG,CAAC,EAAE;QAAA,IAAAuH,YAAA;QACzC;QACA,MAAMC,SAAS,GAAGH,WAAW,CAACI,MAAM,CAClC,CAACC,GAAG,EAAEC,OAAO,KAAKD,GAAG,IAAIC,OAAO,CAACC,EAAE,GAAGD,OAAO,CAACE,EAAE,CAAC,EACjD,CAAC,CACF;QACD,MAAMC,aAAa,GAAGzB,SAAS,CAACrG,MAAM,GAAG,KAAK,GAAG,CAAC,EAAC;QACnDiH,UAAU,GACRO,SAAS,GAAG,CAAC,GAAGO,IAAI,CAACC,GAAG,CAACR,SAAS,GAAGM,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG;QAChExI,sBAAsB,GAAG,EAAAiI,YAAA,GAAAF,WAAW,CAACA,WAAW,CAACrH,MAAM,GAAG,CAAC,CAAC,cAAAuH,YAAA,uBAAnCA,YAAA,CAAqCK,EAAE,KAAI,CAAC,CAAC;MACxE;MAEA,MAAMK,SAAS,GAAG,IAAI,CAACnI,OAAO,CAACW,UAAU,CAACwH,SAAS,IAAI,GAAG;MAC1D,IAAIvB,QAAQ,GAAGO,UAAU,GAAGgB,SAAS;MACrC,MAAMlB,gBAAgB,GAAGrB,IAAI,CAACC,GAAG,EAAE;;MAEnC;MACA,IAAIqB,YAAsC;MAC1C,IAAIN,QAAQ,EAAE;QACZM,YAAY,GACV,IAAI,CAACzH,YAAY,KAAK,SAAS,GAAG,cAAc,GAAG,iBAAiB;QAEtE,MAAMuG,WAAW,GAAG,IAAI,CAAChG,OAAO,CAACS,WAAW;QAC5C;QACA,IACEjB,sBAAsB,KAAK,IAAI,CAACA,sBAAsB,IACtD,CAACA,sBAAsB,GAAG,IAAI,CAACA,sBAAsB,IAAI,GAAG,GAC1DwG,WAAW,EACb;UACA,IAAI,IAAI,CAACvG,YAAY,KAAK,SAAS,EAAEyH,YAAY,GAAG,SAAS;UAC7D,IAAI,IAAI,CAACzH,YAAY,KAAK,QAAQ,EAAEyH,YAAY,GAAG,YAAY;UAC/DN,QAAQ,GAAG,KAAK;UAChBO,UAAU,GAAG,GAAG;QAClB;QACA,IAAI,CAAC3H,sBAAsB,GAAGA,sBAAsB;MACtD,CAAC,MAAM;QACL0H,YAAY,GAAG,IAAI,CAACzH,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,SAAS;MAC1E;;MAEA;MACA,IAAI,CAACA,YAAY,GAAGmH,QAAQ,GAAG,QAAQ,GAAG,SAAS;MAEnD,MAAM;QAAE9D,UAAU,GAAG;MAAM,CAAC,GAAG,IAAI,CAAC9C,OAAO,CAAC+C,iBAAiB,IAAI,CAAC,CAAC;MACnE,OAAO;QACLsC,IAAI,EAAE6B,YAAY;QAClB1H,sBAAsB;QACtBkH,SAAS,EAAEO,gBAAgB;QAC3BE,UAAU;QACVC,QAAQ,EAAEb,SAAS,CAACrG,MAAM,GAAG4C,UAAU,GAAG,CAAC;QAAE;QAC7CkE,UAAU;QACVoB,gBAAgB,EAAED;MACpB,CAAC;IACH,CAAC,CAAC,OAAO5E,KAAK,EAAE;MACd,IAAI,CAACD,GAAG,CAAE,wBAAuBC,KAAM,EAAC,CAAC;MACzC;MACA,MAAMA,KAAK;IACb;EACF;EAEQ8E,8BAA8B,GAAG,KAAK;;EAE9C;AACF;AACA;EACE,MAAcvE,yBAAyBA,CAAA,EAAkB;IACvD,IAAI,IAAI,CAACuE,8BAA8B,EAAE;IAEzC,IAAI,CAACA,8BAA8B,GAAG,IAAI;IAE1C,OAAO,IAAI,CAACjJ,kBAAkB,CAACc,MAAM,GAAG,CAAC,EAAE;MACzC,MAAMoI,IAAI,GAAG,IAAI,CAAClJ,kBAAkB,CAACmJ,KAAK,EAAE;MAC5C,IAAI,CAACnJ,kBAAkB,GAAG,EAAE,EAAC;MAC7B,IAAIkJ,IAAI,EAAE;QACR;QACA,MAAM,IAAI,CAACE,oBAAoB,CAACF,IAAI,CAAC,CAACnE,KAAK,CAAEZ,KAAK,IAAK;UACrD,IAAI,CAAC3B,WAAW,CAAE,wBAAuB2B,KAAM,EAAC,CAAC;QACnD,CAAC,CAAC;MACJ;IACF;IAEA,IAAI,CAAC8E,8BAA8B,GAAG,KAAK;EAC7C;;EAEA;AACF;AACA;EACUI,WAAWA,CAAC/C,iBAAyB,EAAsB;IACjE,MAAMgD,WAAqB,GAAG,EAAE;;IAEhC;IACA,IAAI,IAAI,CAAC1I,OAAO,CAACkB,aAAa,EAAE;MAC9BwH,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC3I,OAAO,CAACkB,aAAa,CAAC;IAC9C;;IAEA;IACA,IAAI,IAAI,CAAClB,OAAO,CAACmB,oBAAoB,EAAE;MACrC;MACA,MAAMyH,eAAe,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnJ,oBAAoB,CAACoJ,OAAO,EAAE,CAAC,CACpEC,MAAM,CAACC,IAAA;QAAA,IAAC,CAACjC,UAAU,CAAC,GAAAiC,IAAA;QAAA,OAAKjC,UAAU,GAAGtB,iBAAiB;MAAA,EAAC,CACxDwD,IAAI,CAAC,CAAAC,KAAA,EAAAC,KAAA;QAAA,IAAC,CAACC,CAAC,CAAC,GAAAF,KAAA;QAAA,IAAE,CAACG,CAAC,CAAC,GAAAF,KAAA;QAAA,OAAKC,CAAC,GAAGC,CAAC;MAAA,EAAC,CAAC;MAAA,CAC1BC,GAAG,CAACC,KAAA;QAAA,IAAAC,qBAAA;QAAA,IAAC,GAAG9E,MAAM,CAAC,GAAA6E,KAAA;QAAA,QAAAC,qBAAA,GAAK9E,MAAM,CAAC+E,eAAe,CAACxF,IAAI,cAAAuF,qBAAA,uBAA3BA,qBAAA,CAA6B9E,MAAM;MAAA,EAAC,CACxDqE,MAAM,CAAErE,MAAM,IAAuBgF,OAAO,CAAChF,MAAM,CAAC,CAAC,EAAC;;MAEzD,IAAIiE,eAAe,CAAC1I,MAAM,GAAG,CAAC,EAAE;QAC9BwI,WAAW,CAACC,IAAI,CAAC,GAAGC,eAAe,CAAC;MACtC;IACF;IAEA,OAAOF,WAAW,CAACkB,IAAI,CAAC,GAAG,CAAC,IAAIzJ,SAAS;EAC3C;;EAEA;AACF;AACA;EACE,MAAcqI,oBAAoBA,CAACF,IAGlC,EAAiB;IAChB,IAAI,CAAC,IAAI,CAACrJ,QAAQ,EAAE;MAClB;IACF;IAEA,IAAI,CAACC,cAAc,GAAG,IAAI;;IAE1B;IACA,IAAI,CAACmE,eAAe,CAAC,eAAe,CAAC;IAErC,MAAMyC,SAAS,GAAGF,IAAI,CAACC,GAAG,EAAE;IAE5B,IAAI;MAAA,IAAAgE,qBAAA,EAAAC,gBAAA;MACF;MACA,MAAMC,MAAM,GAAG,IAAI,CAACtB,WAAW,CAACH,IAAI,CAACtB,UAAU,CAAC;MAEhD,MAAMK,WAAW,GAAGiB,IAAI,CAAC/B,SAAS,CAACe,MAAqB;MACxD,MAAM;QAAE0C;MAAQ,CAAC,GAAG,IAAI,CAAC5J,cAAc,CAAC6J,cAAc,CAAC5C,WAAW,EAAE;QAClE,GAAG,IAAI,CAACrH,OAAO,CAACiB,iBAAiB;QACjC8I,MAAM;QAAE;QACRG,UAAU,EAAE/J,SAAS,CAAE;MACzB,CAAC,CAAC;;MAEF,MAAMwE,MAAM,GAAG,MAAMqF,OAAO;MAC5B,MAAMG,OAAO,GAAGvE,IAAI,CAACC,GAAG,EAAE;;MAE1B;MACA,MAAM;QAAE/C,UAAU,GAAG;MAAM,CAAC,GAAG,IAAI,CAAC9C,OAAO,CAAC+C,iBAAiB,IAAI,CAAC,CAAC;MACnE,MAAM2G,eAAwC,GAAG;QAC/CrE,IAAI,EAAE,YAAY;QAClB2B,UAAU,EAAEsB,IAAI,CAACtB,UAAU;QAC3B9C,IAAI,EAAES,MAAM;QACZyF,WAAW,EAAE,IAAI,CAAC9J,WAAW,CAAC+J,WAAW,EAAE;QAC3CC,WAAW,EAAEH,OAAO,GAAGrE,SAAS;QAChCyE,aAAa,EAAEjC,IAAI,CAAC/B,SAAS,CAACrG,MAAM,IAAI4C,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAAE;QAChE0H,WAAW,EAAE,IAAI,CAAClJ,YAAY,CAACmJ,cAAc,EAAE;QAC/CvF,QAAQ,EAAE,IAAI,CAACrF,SAAS,CAAC6K,GAAG,CAACpC,IAAI,CAACtB,UAAU;MAC9C,CAAC;;MAED;MACA,MAAMnC,KAAK,GAAG,IAAI,CAACvD,YAAY,CAACmE,eAAe,CAAC6C,IAAI,CAACtB,UAAU,CAAC;MAChE,IAAInC,KAAK,EAAE;QACT,IAAI,CAAClF,oBAAoB,CAAC8E,GAAG,CAAC6D,IAAI,CAACtB,UAAU,EAAE;UAC7CnC,KAAK,EAAE;YACL;YACAC,KAAK,EAAED,KAAK,CAACC,KAAK;YAClB6F,WAAW,EAAE9F,KAAK,CAAC8F,WAAW;YAC9B7E,SAAS,EAAEjB,KAAK,CAACiB,SAAS;YAC1BqE,OAAO,EAAEtF,KAAK,CAACsF,OAAO;YACtBS,WAAW,EAAE/F,KAAK,CAAC+F,WAAW;YAC9BC,UAAU,EAAEhG,KAAK,CAACgG;UACpB,CAAC;UACDnB;QACF,CAAC,CAAC;MACJ;;MAEA;MACA,CAAAG,qBAAA,IAAAC,gBAAA,OAAI,CAAC9K,SAAS,EAAC8L,YAAY,cAAAjB,qBAAA,uBAA3BA,qBAAA,CAAArH,IAAA,CAAAsH,gBAAA,EAA8BJ,eAAe,CAAC;MAE9C,IAAI,CAAC7J,SAAS,CAACkL,MAAM,CAACzC,IAAI,CAACtB,UAAU,CAAC;;MAEtC;MACA,IAAI,CAAC3D,eAAe,CAAC,eAAe,CAAC;MAErC,IAAI,CAACC,GAAG,CACL,8BAA6BgF,IAAI,CAACtB,UAAW,MAAKrC,MAAM,CAACA,MAAO,GAAE,CACpE;IACH,CAAC,CAAC,OAAOpB,KAAK,EAAE;MAAA,IAAAyH,sBAAA,EAAAC,gBAAA;MACd;MACA,MAAMC,UAAmC,GAAG;QAC1C7F,IAAI,EAAE,OAAO;QACb2B,UAAU,EAAEsB,IAAI,CAACtB,UAAU;QAC3B9C,IAAI,EAAE/D,SAAS;QACfiK,WAAW,EAAE,IAAI,CAAC9J,WAAW,CAAC+J,WAAW,EAAE;QAC3CC,WAAW,EAAE1E,IAAI,CAACC,GAAG,EAAE,GAAGC,SAAS;QACnCyE,aAAa,EAAE,CAAC;QAChBC,WAAW,EAAE,IAAI,CAAClJ,YAAY,CAACmJ,cAAc,EAAE;QAC/CvF,QAAQ,EAAE,IAAI,CAACrF,SAAS,CAAC6K,GAAG,CAACpC,IAAI,CAACtB,UAAU;MAC9C,CAAC;MAED,CAAAgE,sBAAA,IAAAC,gBAAA,OAAI,CAACjM,SAAS,EAAC8L,YAAY,cAAAE,sBAAA,uBAA3BA,sBAAA,CAAAxI,IAAA,CAAAyI,gBAAA,EAA8BC,UAAU,CAAC;MAEzC,IAAI,CAACrL,SAAS,CAACkL,MAAM,CAACzC,IAAI,CAACtB,UAAU,CAAC;MAEtC,IAAI,CAACpF,WAAW,CACb,2CAA0C0G,IAAI,CAACtB,UAAW,KAAIzD,KAAM,EAAC,CACvE;IACH,CAAC,SAAS;MACR;MACA,IAAI,IAAI,CAACnE,kBAAkB,CAACc,MAAM,GAAG,CAAC,EAAE;QACtC,MAAM,IAAI,CAAC4D,yBAAyB,EAAE;MACxC,CAAC,MAAM;QACL,IAAI,CAAC5E,cAAc,GAAG,KAAK;MAC7B;IACF;EACF;;EAEA;AACF;AACA;EACU4C,uBAAuBA,CAACuI,WAAoB,EAAQ;IAC1D,IAAI,CAAC/G,GAAG,CAAE,oBAAmB+G,WAAW,GAAG,SAAS,GAAG,SAAU,EAAC,CAAC;EACrE;;EAEA;AACF;AACA;EACUzI,WAAWA,CAAC2B,KAAa,EAAQ;IAAA,IAAA4H,qBAAA,EAAAC,gBAAA;IACvC,IAAI,CAAC9H,GAAG,CAAE,UAASC,KAAM,EAAC,CAAC;IAC3B,CAAA4H,qBAAA,IAAAC,gBAAA,OAAI,CAACpM,SAAS,EAAC2C,OAAO,cAAAwJ,qBAAA,uBAAtBA,qBAAA,CAAA3I,IAAA,CAAA4I,gBAAA,EAAyB7H,KAAK,CAAC;EACjC;;EAEA;AACF;AACA;EACE8H,eAAeA,CAACrM,SAAgD,EAAQ;IACtE,IAAI,CAACA,SAAS,GAAG;MAAE,GAAG,IAAI,CAACA,SAAS;MAAE,GAAGA;IAAU,CAAC;EACtD;;EAEA;AACF;AACA;EACEsM,gBAAgBA,CAACtL,OAA4B,EAAQ;IACnD,IAAI,CAACA,OAAO,CAACW,UAAU,GAAG;MAAE,GAAG,IAAI,CAACX,OAAO,CAACW,UAAU;MAAE,GAAGX;IAAQ,CAAC;EACtE;;EAEA;AACF;AACA;EACEuL,sBAAsBA,CAACvL,OAGtB,EAAQ;IACP,IAAIA,OAAO,CAACe,oBAAoB,KAAKZ,SAAS,EAAE;MAC9C,IAAI,CAACH,OAAO,CAACe,oBAAoB,GAAGf,OAAO,CAACe,oBAAoB;IAClE;IACA,IAAIf,OAAO,CAACgB,kBAAkB,KAAKb,SAAS,EAAE;MAC5C,IAAI,CAACH,OAAO,CAACgB,kBAAkB,GAAGhB,OAAO,CAACgB,kBAAkB;IAC9D;IACA,IAAI,CAACsC,GAAG,CACL,uCAAsC,IAAI,CAACtD,OAAO,CAACe,oBAAqB,eAAc,IAAI,CAACf,OAAO,CAACgB,kBAAmB,EAAC,CACzH;EACH;;EAEA;AACF;AACA;EACEwK,aAAaA,CAAA,EAAG;IACd,OAAO;MACLvM,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCC,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BsM,UAAU,EAAE;QACVpB,WAAW,EAAE,IAAI,CAAC/J,WAAW,CAAC+J,WAAW,EAAE;QAC3CqB,kBAAkB,EAAE,IAAI,CAACrM,eAAe,CAACa;MAC3C,CAAC;MACDyL,QAAQ,EAAE,IAAI,CAACxM,UAAU,GACrB;QACEyM,OAAO,EAAE,IAAI;QACbC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAACxL,UAAU;QACnCb,sBAAsB,EAAE,IAAI,CAACA;MAC/B,CAAC,GACD,IAAI;MACRsM,UAAU,EAAE,IAAI,CAACxK,YAAY,CAACiE,mBAAmB,EAAE;MACnDwG,eAAe,EAAE;QACfH,OAAO,EAAE,IAAI,CAAC5L,OAAO,CAACe,oBAAoB;QAC1CoH,SAAS,EAAE,IAAI,CAACnI,OAAO,CAACgB,kBAAkB;QAC1C+E,cAAc,EAAE,IAAI,CAAC/F,OAAO,CAACQ,aAAa;QAC1CwF,WAAW,EAAE,IAAI,CAAChG,OAAO,CAACS;MAC5B;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACEuL,uBAAuBA,CAAA,EAGpB;IACD,OAAOnD,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnJ,oBAAoB,CAACsM,MAAM,EAAE,CAAC;EACvD;;EAEA;AACF;AACA;EACE,MAAM7F,SAASA,CAAA,EAAkB;IAAA,IAAA8F,sBAAA,EAAAC,gBAAA;IAC/B,IAAI,CAAC,IAAI,CAAClN,QAAQ,EAAE;MAClB,IAAI,CAACqE,GAAG,CAAC,qDAAqD,CAAC;MAC/D;IACF;;IAEA;IACA,MAAM8I,UAAmC,GAAG;MAC1C/G,IAAI,EAAE,OAAO;MACb2B,UAAU,EAAE,CAAC,CAAC;MAAE;MAChB9C,IAAI,EAAE/D,SAAS;MACfiK,WAAW,EAAE,IAAI,CAAC9J,WAAW,CAAC+J,WAAW,EAAE;MAC3CC,WAAW,EAAE,CAAC;MACdC,aAAa,EAAE,CAAC;MAChBC,WAAW,EAAE,IAAI,CAAClJ,YAAY,CAACmJ,cAAc;IAC/C,CAAC;IAED,CAAAyB,sBAAA,IAAAC,gBAAA,OAAI,CAACnN,SAAS,EAAC8L,YAAY,cAAAoB,sBAAA,uBAA3BA,sBAAA,CAAA1J,IAAA,CAAA2J,gBAAA,EAA8BC,UAAU,CAAC;;IAEzC;IACA,IAAI,IAAI,CAAClN,cAAc,IAAI,IAAI,CAACE,kBAAkB,CAACc,MAAM,GAAG,CAAC,EAAE;MAC7D,IAAI,CAACoD,GAAG,CACN,6EAA6E,CAC9E;;MAED;MACA,MAAM,IAAI,CAACQ,yBAAyB,EAAE;IACxC;IAEA,MAAMa,MAAM,GAAG,IAAI,CAACrD,YAAY,CAAC+K,cAAc,EAAE;IAEjD,IAAI1H,MAAM,CAACE,KAAK,EAAE;MAChB,IAAI,CAACvB,GAAG,CACL,gBAAeqB,MAAM,CAACE,KAAK,CAACC,KAAM,WAAUH,MAAM,CAACE,KAAK,CAACX,IAAI,CAAChE,MAAO,SAAQ,CAC/E;;MAED;MACA,IAAI,CAAC,IAAI,CAAChB,cAAc,IAAI,IAAI,CAACC,UAAU,EAAE;QAC3C,IAAI,CAAC4F,eAAe,CAACJ,MAAM,CAACE,KAAK,CAAC,CAACV,KAAK,CAAEZ,KAAU,IAAK;UACvD,IAAI,CAAC3B,WAAW,CAAE,yBAAwB2B,KAAM,EAAC,CAAC;QACpD,CAAC,CAAC;MACJ,CAAC,MAAM,IAAI,CAAC,IAAI,CAACrE,cAAc,EAAE;QAC/B;QACA,IAAI,CAAC8F,0BAA0B,CAACL,MAAM,CAACE,KAAK,CAAC,CAACV,KAAK,CAAEZ,KAAU,IAAK;UAClE,IAAI,CAAC3B,WAAW,CAAE,4CAA2C2B,KAAM,EAAC,CAAC;QACvE,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACD,GAAG,CAAE,kBAAiBqB,MAAM,CAACE,KAAK,CAACC,KAAM,yBAAwB,CAAC;MACzE;MAEA,IAAI,CAACzB,eAAe,CAAC,eAAe,CAAC;IACvC,CAAC,MAAM;MACL,IAAI,CAACC,GAAG,CAAC,gDAAgD,CAAC;IAC5D;EACF;;EAEA;AACF;AACA;EACEb,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACnB,YAAY,CAACmB,KAAK,EAAE;IACzB,IAAI,CAACrD,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACF,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACG,eAAe,GAAG,IAAIC,UAAU,CAAC,CAAC,CAAC;;IAExC;IACA,IAAI,CAACE,sBAAsB,GAAG,CAAC,CAAC;IAChC,IAAI,CAACC,YAAY,GAAG,SAAS;;IAE7B;IACA,IAAI,CAACC,iBAAiB,GAAG,IAAI;;IAE7B;IACA,IAAI,IAAI,CAACH,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAAC+M,MAAM,EAAE,CAACnI,KAAK,CAAEZ,KAAK,IAAK;QAC3C,IAAI,CAACD,GAAG,CAAE,sCAAqCC,KAAM,EAAC,CAAC;MACzD,CAAC,CAAC;MACF,IAAI,CAAChE,aAAa,GAAG,IAAI;IAC3B;;IAEA;IACA,IAAI,CAACI,oBAAoB,CAAC4M,KAAK,EAAE;;IAEjC;IACA,IAAI,CAAC1M,SAAS,CAAC0M,KAAK,EAAE;EACxB;;EAEA;AACF;AACA;EACE,MAAMC,OAAOA,CAAA,EAAkB;IAAA,IAAAC,mBAAA;IAC7B,IAAI,IAAI,CAACxN,QAAQ,EAAE;MACjB,MAAM,IAAI,CAACyE,IAAI,EAAE;IACnB;IAEA,MAAM,IAAI,CAACpD,WAAW,CAACkM,OAAO,EAAE;IAChC,QAAAC,mBAAA,GAAM,IAAI,CAAClN,aAAa,cAAAkN,mBAAA,uBAAlBA,mBAAA,CAAoB1I,QAAQ,EAAE;IACpC,IAAI,CAAC1D,UAAU,GAAGF,SAAS;EAC7B;;EAEA;AACF;AACA;EACUkD,eAAeA,CAACqJ,SAAqC,EAAQ;IACnE,MAAMC,YAAY,GAAG,IAAI,CAACnB,aAAa,EAAE;;IAEzC;IACA,IACE,CAAC,IAAI,CAAC9L,iBAAiB,IACvBX,mBAAmB,CAAC6N,qBAAqB,CACvCD,YAAY,EACZ,IAAI,CAACjN,iBAAiB,CACvB,EACD;MAAA,IAAAmN,sBAAA,EAAAC,gBAAA;MACA,MAAMC,UAA8B,GAAG;QACrCrG,SAAS,EAAEd,IAAI,CAACC,GAAG,EAAE;QACrBR,IAAI,EAAEqH,SAAS;QACfxI,IAAI,EAAEyI;MACR,CAAC;MAED,CAAAE,sBAAA,IAAAC,gBAAA,OAAI,CAAC9N,SAAS,EAACgO,aAAa,cAAAH,sBAAA,uBAA5BA,sBAAA,CAAArK,IAAA,CAAAsK,gBAAA,EAA+BC,UAAU,CAAC;MAC1C,IAAI,CAACrN,iBAAiB,GAAG;QAAE,GAAGiN;MAAa,CAAC;IAC9C;EACF;;EAEA;AACF;AACA;EACE,OAAeC,qBAAqBA,CAACK,OAAY,EAAEC,QAAa,EAAW;IAAA,IAAAC,mBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,qBAAA;IACzE;IACA,IACEL,OAAO,CAAChO,QAAQ,KAAKiO,QAAQ,CAACjO,QAAQ,IACtCgO,OAAO,CAAC/N,cAAc,KAAKgO,QAAQ,CAAChO,cAAc,EAClD;MACA,OAAO,IAAI;IACb;;IAEA;IACA,MAAMqO,aAAa,GAAG,EAAAJ,mBAAA,GAAAF,OAAO,CAACnB,UAAU,cAAAqB,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAoB3C,WAAW,cAAA4C,qBAAA,uBAA/BA,qBAAA,CAAiCI,WAAW,KAAI,CAAC;IACvE,MAAMC,cAAc,GAAG,EAAAJ,oBAAA,GAAAH,QAAQ,CAACpB,UAAU,cAAAuB,oBAAA,wBAAAC,qBAAA,GAAnBD,oBAAA,CAAqB7C,WAAW,cAAA8C,qBAAA,uBAAhCA,qBAAA,CAAkCE,WAAW,KAAI,CAAC;IACzE,MAAME,UAAU,GAAGzF,IAAI,CAAC0F,GAAG,CAACJ,aAAa,GAAGE,cAAc,CAAC;IAE3D,IACEC,UAAU,GAAG,CAAC,IACbD,cAAc,GAAG,CAAC,IAAIC,UAAU,GAAGD,cAAc,GAAG,GAAI,EACzD;MACA,OAAO,IAAI;IACb;IAEA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;EACUnK,GAAGA,CAACgB,OAAe,EAAQ;IACjC,IAAI,CAACtE,OAAO,CAACqB,MAAM,CAAE,yBAAwBiD,OAAQ,EAAC,CAAC;EACzD;AACF;AAACsJ,OAAA,CAAA7O,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_SliceManager","require","_WavFileWriter","_types","RealtimeTranscriber","callbacks","isActive","isTranscribing","vadEnabled","transcriptionQueue","accumulatedData","Uint8Array","wavFileWriter","lastSpeechDetectedTime","lastVadState","lastStatsSnapshot","transcriptionResults","Map","vadEvents","constructor","dependencies","options","arguments","length","undefined","whisperContext","vadContext","audioStream","fs","audioSliceSec","audioMinSec","maxSlicesInMemory","vadOptions","VAD_PRESETS","default","vadPreset","autoSliceOnSpeechEnd","autoSliceThreshold","transcribeOptions","initialPrompt","promptPreviousSlices","audioOutputPath","logger","sliceManager","SliceManager","onData","handleAudioData","bind","onError","handleError","onStatusChange","handleAudioStatusChange","start","Error","_this$callbacks$onSta","_this$callbacks","_this$options$audioSt4","_this$options$audioSt5","_this$options$audioSt6","_this$options$audioSt7","_this$options$audioSt8","call","reset","_this$options$audioSt","_this$options$audioSt2","_this$options$audioSt3","WavFileWriter","sampleRate","audioStreamConfig","channels","bitsPerSample","initialize","audioSource","bufferSize","emitStatsUpdate","log","error","_this$callbacks$onSta2","_this$callbacks2","stop","_this$callbacks$onSta3","_this$callbacks3","processAccumulatedDataForSliceManagement","processTranscriptionQueue","finalize","streamData","appendAudioData","data","catch","accumulateAudioData","errorMessage","message","newData","combined","set","minBufferSamples","result","addAudioData","slice","index","processSliceVAD","queueSliceForTranscription","checkAutoSlice","vadEvent","_slice","shouldTriggerAutoSlice","type","currentSliceInfo","getCurrentSliceInfo","currentSlice","getSliceByIndex","currentSliceIndex","currentDuration","Date","now","startTime","targetDuration","minDuration","meetsMinDuration","meetsThreshold","toFixed","nextSlice","_this$callbacks$onVad","_this$callbacks4","audioData","getAudioDataForTranscription","detectSpeech","timestamp","onVad","isSpeech","isSpeechEnd","speechDuration","onBeginTranscribe","shouldTranscribe","sliceIndex","duration","get","unshift","currentTimestamp","vadEventType","confidence","audioBuffer","buffer","vadSegments","detectSpeechData","_vadSegments","totalTime","reduce","sum","segment","t1","t0","audioDuration","Math","min","threshold","currentThreshold","isProcessingTranscriptionQueue","item","shift","processTranscription","buildPrompt","promptParts","push","previousResults","Array","from","entries","filter","_ref","sort","_ref2","_ref3","a","b","map","_ref4","_result$transcribeEve","transcribeEvent","Boolean","join","_this$callbacks$onTra","_this$callbacks5","prompt","promise","transcribeData","onProgress","endTime","isCapturing","isRecording","processTime","recordingTime","memoryUsage","getMemoryUsage","sampleCount","isProcessed","isReleased","onTranscribe","delete","_this$callbacks$onTra2","_this$callbacks6","errorEvent","_this$callbacks$onErr","_this$callbacks7","updateCallbacks","updateVadOptions","updateAutoSliceOptions","getStatistics","audioStats","accumulatedSamples","vadStats","enabled","contextAvailable","sliceStats","autoSliceConfig","getTranscriptionResults","values","_this$callbacks$onTra3","_this$callbacks8","startEvent","forceNextSlice","cancel","clear","release","_this$wavFileWriter","eventType","currentStats","shouldEmitStatsUpdate","_this$callbacks$onSta4","_this$callbacks9","statsEvent","onStatsUpdate","current","previous","_current$sliceStats","_current$sliceStats$m","_previous$sliceStats","_previous$sliceStats$","currentMemory","estimatedMB","previousMemory","memoryDiff","abs","exports"],"sourceRoot":"../../../src","sources":["realtime-transcription/RealtimeTranscriber.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":"1.7.6"}
1
+ {"version":"1.8.0"}
@@ -357,6 +357,19 @@ export class RealtimeTranscriber {
357
357
  this.log(`No audio data available for slice ${slice.index}`);
358
358
  return;
359
359
  }
360
+ if (this.callbacks.onBeginTranscribe) {
361
+ const shouldTranscribe = (await this.callbacks.onBeginTranscribe({
362
+ sliceIndex: slice.index,
363
+ audioData,
364
+ duration: slice.data.length / 16000 / 2 * 1000,
365
+ // Convert to milliseconds
366
+ vadEvent: this.vadEvents.get(slice.index)
367
+ })) ?? true;
368
+ if (!shouldTranscribe) {
369
+ this.log(`User callback declined transcription for slice ${slice.index}`);
370
+ return;
371
+ }
372
+ }
360
373
 
361
374
  // Add to transcription queue
362
375
  this.transcriptionQueue.unshift({