react-native-nitro-markdown 0.5.8 → 0.6.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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "ignore_dirs": [
3
+ "android/.cxx",
4
+ "android/build"
5
+ ]
6
+ }
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # react-native-nitro-markdown
2
2
 
3
- [![npm](https://img.shields.io/badge/npm-v0.5.8-orange?style=flat-square)](https://www.npmjs.com/package/react-native-nitro-markdown)
3
+ [![npm](https://img.shields.io/badge/npm-v0.6.1-orange?style=flat-square)](https://www.npmjs.com/package/react-native-nitro-markdown)
4
4
  [![license](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](./LICENSE)
5
5
  [![react-native](https://img.shields.io/badge/react--native-%3E%3D0.75-1677a4?style=flat-square)](https://reactnative.dev/)
6
- [![nitro-modules](https://img.shields.io/badge/nitro--modules-%3E%3D0.35.5-black?style=flat-square)](https://github.com/mrousavy/nitro)
6
+ [![nitro-modules](https://img.shields.io/badge/nitro--modules-%3E%3D0.35.6-black?style=flat-square)](https://github.com/mrousavy/nitro)
7
7
 
8
8
  <p align="center">
9
9
  <img src="https://raw.githubusercontent.com/JoaoPauloCMarra/react-native-nitro-markdown/main/readme/demo.gif" alt="react-native-nitro-markdown demo" width="400" />
@@ -16,7 +16,7 @@ Native Markdown parsing and rendering for React Native, powered by [md4c](https:
16
16
  - **Native C++ parser** -- synchronous parsing via JSI with minimal JS thread overhead
17
17
  - **Full rendering pipeline** -- parser + renderer + streaming session in one package
18
18
  - **GFM support** -- tables, strikethrough, task lists, autolinks
19
- - **Math rendering** -- inline and block LaTeX via `react-native-mathjax-svg` (optional)
19
+ - **Math rendering** -- inline and block LaTeX via native RaTeX
20
20
  - **Opt-in HTML AST nodes** -- preserve raw HTML as `html_inline` / `html_block` for custom renderers
21
21
  - **Large document support** -- top-level block virtualization and cached renderer styles
22
22
  - **Code highlighting** -- built-in JS/TS, Python, and Bash tokenizer with custom highlighter support
@@ -29,42 +29,29 @@ Native Markdown parsing and rendering for React Native, powered by [md4c](https:
29
29
  | Dependency | Version |
30
30
  |---|---|
31
31
  | React Native | `>=0.75.0` |
32
- | react-native-nitro-modules | `>=0.35.5` |
33
- | react-native-mathjax-svg *(optional)* | `>=0.9.0` |
34
- | react-native-svg *(optional, for math)* | `>=13.0.0` |
32
+ | react-native-nitro-modules | `>=0.35.6` |
33
+ | ratex-react-native | `>=0.1.4` |
35
34
 
36
35
  ## Installation
37
36
 
38
37
  With npm:
39
38
 
40
39
  ```bash
41
- npm install react-native-nitro-markdown react-native-nitro-modules
40
+ npm install react-native-nitro-markdown react-native-nitro-modules ratex-react-native
42
41
  cd ios && pod install
43
42
  ```
44
43
 
45
44
  With Bun:
46
45
 
47
46
  ```bash
48
- bun add react-native-nitro-markdown react-native-nitro-modules
47
+ bun add react-native-nitro-markdown react-native-nitro-modules ratex-react-native
49
48
  cd ios && pod install
50
49
  ```
51
50
 
52
- For math rendering:
53
-
54
- ```bash
55
- npm install react-native-mathjax-svg react-native-svg
56
- ```
57
-
58
- or with Bun:
59
-
60
- ```bash
61
- bun add react-native-mathjax-svg react-native-svg
62
- ```
63
-
64
51
  **Expo** (development build):
65
52
 
66
53
  ```bash
67
- npx expo install react-native-nitro-markdown react-native-nitro-modules
54
+ npx expo install react-native-nitro-markdown react-native-nitro-modules ratex-react-native
68
55
  npx expo prebuild
69
56
  ```
70
57
 
@@ -91,7 +78,7 @@ export function Example() {
91
78
  | Option | Default | Enables | Notes |
92
79
  |---|---:|---|---|
93
80
  | `gfm` | `true` | Tables, strikethrough, task lists, permissive autolinks | Set `false` for stricter CommonMark-style parsing |
94
- | `math` | `true` | Inline and display LaTeX spans | Rendering falls back to plain styled text unless optional math deps are installed |
81
+ | `math` | `true` | Inline and display LaTeX spans | Rendered with RaTeX; falls back to styled plain text if the peer dependency is unavailable at runtime |
95
82
  | `html` | `false` | `html_inline` and `html_block` AST nodes | Raw HTML is not rendered by default; provide custom renderers |
96
83
 
97
84
  ```tsx
@@ -170,7 +157,7 @@ session.append("Streaming content...");
170
157
  | `append` | `(chunk: string) => number` | Append text, returns new UTF-16 length |
171
158
  | `clear` | `() => void` | Clear buffer, emit reset event |
172
159
  | `reset` | `(text: string) => void` | Replace full buffer content |
173
- | `replace` | `(from, to, text) => number` | Partial buffer mutation |
160
+ | `replace` | `(from, to, text) => number` | Partial buffer mutation; out-of-bounds ranges are clamped and invalid ranges throw |
174
161
  | `getAllText` | `() => string` | Get full session text |
175
162
  | `getLength` | `() => number` | Get UTF-16 length without copy |
176
163
  | `getTextRange` | `(from, to) => string` | Get substring range |
@@ -299,13 +286,13 @@ Do not pass untrusted HTML directly into a WebView from a renderer. Sanitize or
299
286
 
300
287
  ### Math Rendering
301
288
 
302
- Math parsing is enabled by default. Rendering LaTeX as native SVG requires both optional packages:
289
+ Math parsing is enabled by default. Rendering LaTeX uses the native RaTeX renderer:
303
290
 
304
291
  ```bash
305
- bun add react-native-mathjax-svg react-native-svg
292
+ bun add ratex-react-native
306
293
  ```
307
294
 
308
- Without those packages, `math_inline` and `math_block` render as styled plain text fallback.
295
+ If `ratex-react-native` is unavailable at runtime, `math_inline` and `math_block` render as styled plain text fallback.
309
296
 
310
297
  Inline math (`$...$`) stays inside text flow. Use block math (`$$...$$`) for large formulas; the default `math_block` renderer is horizontally scrollable when the equation is wider than the screen. Custom `math_block` renderers should preserve the same behavior for long display equations.
311
298
 
@@ -515,7 +502,7 @@ Parser and text utilities only -- no React dependencies. Use this for server-sid
515
502
 
516
503
  | Problem | Solution |
517
504
  |---|---|
518
- | Math renders as code-style fallback | Install `react-native-mathjax-svg` and `react-native-svg` |
505
+ | Math renders as code-style fallback | Install `ratex-react-native` |
519
506
  | Large inline math overflows text | Use block math (`$$...$$`) for wide formulas; inline math intentionally stays in text flow |
520
507
  | iOS build fails after install | Run `pod install` in your iOS directory |
521
508
  | Expo app doesn't load native module | Use a development build (`expo prebuild` + `expo run`), not Expo Go |
@@ -39,7 +39,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE
39
39
  # Include Nitro autolinking (adds nitrogen sources, definitions, and links)
40
40
  include(${CMAKE_CURRENT_SOURCE_DIR}/../nitrogen/generated/android/NitroMarkdown+autolinking.cmake)
41
41
 
42
- # L5: Per-build-type optimization flags. Release builds get full optimization and strip debug
42
+ # Per-build-type optimization flags. Release builds get full optimization and strip debug
43
43
  # symbols from the binary. Debug builds disable optimization for easier debugging.
44
44
  target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE
45
45
  $<$<CONFIG:Release>:-O3 -DNDEBUG>
@@ -11,7 +11,7 @@ buildscript {
11
11
 
12
12
  def reactNativeArchitectures() {
13
13
  def value = rootProject.getProperties().get("reactNativeArchitectures")
14
- // L4: Default to 64-bit only. 32-bit ABIs (armeabi-v7a, x86) are excluded from the default
14
+ // Default to 64-bit only. 32-bit ABIs (armeabi-v7a, x86) are excluded from the default
15
15
  // because all Android devices on API 24+ support 64-bit, and 32-bit increases APK size with no
16
16
  // practical benefit for this library. Override via gradle.properties if needed.
17
17
  return value ? value.split(",") : ["arm64-v8a", "x86_64"]
@@ -51,7 +51,7 @@ android {
51
51
 
52
52
  externalNativeBuild {
53
53
  cmake {
54
- // L3/L5: -fstack-protector-strong replaces -fstack-protector-all (better coverage/perf
54
+ // -fstack-protector-strong replaces -fstack-protector-all (better coverage/perf
55
55
  // tradeoff). -Wformat/-Werror=format-security guard against format-string exploits.
56
56
  // -D_FORTIFY_SOURCE=2 enables glibc/Bionic source fortification for buffer overflows.
57
57
  cppFlags "-frtti -fexceptions -Wall -Wextra -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2"
@@ -3,7 +3,7 @@
3
3
  -keep class com.margelo.nitro.com.nitromarkdown.** { *; }
4
4
  -keep class com.nitromarkdown.** { *; }
5
5
 
6
- # C5: Explicitly preserve nitrogen-generated Func_* wrapper classes accessed via JNI reflection.
6
+ # Explicitly preserve nitrogen-generated Func_* wrapper classes accessed via JNI reflection.
7
7
  # These are already covered by the wildcard above, but explicit rules guard against future
8
8
  # refactors that might narrow the wildcard, and make the intent clear to ProGuard/R8.
9
9
  -keep class com.margelo.nitro.com.nitromarkdown.Func_void { *; }
@@ -1,7 +1,6 @@
1
1
  NitroMarkdown_compileSdkVersion=34
2
- # M3: minSdkVersion kept at 24 (Android 7.0) to match the example app's minimum SDK requirement.
2
+ # minSdkVersion stays at 24 (Android 7.0) to match the example app's minimum SDK requirement.
3
3
  # Bumping to 26 would be preferable for security (full ASLR, etc.) but would break example builds.
4
4
  NitroMarkdown_minSdkVersion=24
5
5
  NitroMarkdown_targetSdkVersion=34
6
6
  NitroMarkdown_ndkVersion=27.1.12297006
7
-
@@ -81,6 +81,9 @@ class HybridMarkdownSession : HybridMarkdownSessionSpec() {
81
81
 
82
82
  override fun reset(text: String) {
83
83
  synchronized(lock) {
84
+ if (text.length > MAX_BUFFER_SIZE) {
85
+ throw IllegalArgumentException("Buffer size limit exceeded (max $MAX_BUFFER_SIZE chars)")
86
+ }
84
87
  buffer.replace(0, buffer.length, text)
85
88
  highlightPosition = 0.0
86
89
  }
@@ -97,6 +100,10 @@ class HybridMarkdownSession : HybridMarkdownSessionSpec() {
97
100
  synchronized(lock) {
98
101
  val start = from.toLong().coerceIn(0L, buffer.length.toLong()).toInt()
99
102
  val end = to.toLong().coerceIn(start.toLong(), buffer.length.toLong()).toInt()
103
+ val newSize = buffer.length - (end - start) + text.length
104
+ if (newSize > MAX_BUFFER_SIZE) {
105
+ throw IllegalArgumentException("Buffer size limit exceeded (max $MAX_BUFFER_SIZE chars)")
106
+ }
100
107
  buffer.replace(start, end, text)
101
108
  newLength = buffer.length.toDouble()
102
109
  notifyFrom = start.toDouble()
@@ -132,7 +139,7 @@ class HybridMarkdownSession : HybridMarkdownSessionSpec() {
132
139
  super.dispose()
133
140
  }
134
141
 
135
- // H6: The C++ generated file (JHybridMarkdownSessionSpec.cpp) is marked DO NOT MODIFY and
142
+ // The C++ generated file (JHybridMarkdownSessionSpec.cpp) is marked DO NOT MODIFY and
136
143
  // cannot be edited. However, fbjni (used by Nitro) automatically propagates Java/Kotlin
137
144
  // exceptions thrown across the JNI boundary as C++ exceptions. Therefore, an
138
145
  // IllegalArgumentException thrown in append() will be rethrown on the C++ side without
@@ -2,6 +2,8 @@ import Foundation
2
2
  import NitroModules
3
3
 
4
4
  class HybridMarkdownSession: HybridMarkdownSessionSpec {
5
+ private static let maxBufferSize = 10 * 1024 * 1024
6
+
5
7
  private var buffer = ""
6
8
  private var listeners: [UUID: (Double, Double) -> Void] = [:]
7
9
  private let lock = NSLock()
@@ -23,6 +25,18 @@ class HybridMarkdownSession: HybridMarkdownSessionSpec {
23
25
  return (value as NSString).length
24
26
  }
25
27
 
28
+ private func validateBufferSize(_ size: Int) throws {
29
+ if size > Self.maxBufferSize {
30
+ throw NSError(
31
+ domain: "NitroMarkdown",
32
+ code: 1,
33
+ userInfo: [
34
+ NSLocalizedDescriptionKey: "Buffer size limit exceeded (max \(Self.maxBufferSize) chars)"
35
+ ]
36
+ )
37
+ }
38
+ }
39
+
26
40
  func append(chunk: String) throws -> Double {
27
41
  let notifyFrom: Double
28
42
  let notifyTo: Double
@@ -30,6 +44,7 @@ class HybridMarkdownSession: HybridMarkdownSessionSpec {
30
44
  lock.lock()
31
45
  defer { lock.unlock() }
32
46
  let fromInt = utf16Length(buffer)
47
+ try validateBufferSize(fromInt + utf16Length(chunk))
33
48
  buffer += chunk
34
49
  let toInt = utf16Length(buffer)
35
50
  notifyFrom = Double(fromInt)
@@ -98,6 +113,7 @@ class HybridMarkdownSession: HybridMarkdownSessionSpec {
98
113
  do {
99
114
  lock.lock()
100
115
  defer { lock.unlock() }
116
+ try validateBufferSize(utf16Length(text))
101
117
  buffer = text
102
118
  _highlightPosition = 0
103
119
  notifyTo = Double((text as NSString).length)
@@ -115,20 +131,24 @@ class HybridMarkdownSession: HybridMarkdownSessionSpec {
115
131
  lock.lock()
116
132
  defer { lock.unlock() }
117
133
  guard from.isFinite && to.isFinite && from >= 0 && to >= 0 && from <= to else {
118
- return Double(utf16Length(buffer))
134
+ throw NSError(
135
+ domain: "NitroMarkdown",
136
+ code: 2,
137
+ userInfo: [
138
+ NSLocalizedDescriptionKey: "Invalid range: from=\(from) and to=\(to) must be finite, from must be >= 0, and to must be >= from"
139
+ ]
140
+ )
119
141
  }
120
142
  let nsBuffer = NSMutableString(string: buffer)
121
143
  let length = nsBuffer.length
122
144
  start = max(0, min(Int(from), length))
123
145
  end = max(start, min(Int(to), length))
146
+ try validateBufferSize(length - (end - start) + utf16Length(text))
124
147
  nsBuffer.replaceCharacters(in: NSRange(location: start, length: end - start), with: text)
125
148
  buffer = nsBuffer as String
126
149
  newLength = Double((buffer as NSString).length)
127
- notifyFrom = from
128
- notifyTo = from + Double((text as NSString).length)
129
- }
130
- if start == end && text.isEmpty {
131
- return newLength
150
+ notifyFrom = Double(start)
151
+ notifyTo = Double(start + utf16Length(text))
132
152
  }
133
153
  notifyListeners(from: notifyFrom, to: notifyTo)
134
154
  return newLength
@@ -295,6 +295,9 @@ const Markdown = ({
295
295
  windowSize: virtualization?.windowSize ?? 10,
296
296
  updateCellsBatchingPeriod: virtualization?.updateCellsBatchingPeriod ?? 16,
297
297
  removeClippedSubviews: virtualization?.removeClippedSubviews ?? true,
298
+ bounces: false,
299
+ alwaysBounceVertical: false,
300
+ overScrollMode: "never",
298
301
  showsVerticalScrollIndicator: false
299
302
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(NodeRenderer, {
300
303
  node: parseResult.ast,
@@ -405,6 +408,9 @@ const NodeRendererComponent = ({
405
408
  ...(node.type === "code_inline" && {
406
409
  content: node.content ?? ""
407
410
  }),
411
+ ...((node.type === "math_inline" || node.type === "math_block") && {
412
+ content: (0, _headless.getTextContent)(node)
413
+ }),
408
414
  ...(node.type === "list" && {
409
415
  ordered: node.ordered ?? false,
410
416
  start: node.start
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_blockquote","_code","_heading","_horizontalRule","_image","_link","_list","_math","_paragraph","_table","_theme","_jsxRuntime","hashString","str","hash","i","length","char","charCodeAt","ERROR_PHASE","PARSE","BEFORE_PLUGIN","AFTER_PLUGIN","safeOnError","onError","error","phase","pluginName","Error","String","callbackError","__DEV__","console","warn","baseStylesCache","WeakMap","parseAstCache","Map","MAX_PARSE_CACHE_ENTRIES","MAX_CACHEABLE_TEXT_LENGTH","EMPTY_RENDERERS","isMarkdownNode","value","Reflect","get","warnInDev","message","runtimeConsole","globalThis","cloneMarkdownNode","node","children","map","getParserOptionsKey","options","gfm","undefined","math","html","normalizeParserOptions","parseWithNativeParser","text","parseMarkdownWithOptions","parseMarkdown","getCachedParsedAst","cacheKey","cachedEntry","delete","set","ast","parsedNode","size","oldestCacheKey","keys","next","sortPluginsByPriority","plugins","sort","a","b","priority","applyBeforeParsePlugins","markdown","sortedPlugins","nextMarkdown","plugin","beforeParse","transformed","pluginLabel","name","applyAfterParsePlugins","nextAst","afterParse","Markdown","sourceAst","parseCache","astTransform","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","onLinkPress","virtualize","virtualizationMinBlocks","virtualization","tableOptions","highlightCode","parserOptionGfm","parserOptionMath","parserOptionHtml","onErrorRef","useRef","current","parseResult","useMemo","markdownToParse","parserOptions","parsedAst","parseError","useEffect","raw","getFlattenedText","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","getBaseStyles","contextValue","topLevelBlocks","type","shouldVirtualizeBySetting","shouldVirtualize","keyExtractor","useCallback","index","beg","end","renderVirtualizedItem","item","jsx","NodeRenderer","depth","inListItem","View","container","Text","errorText","MarkdownContext","Provider","FlatList","data","renderItem","virtualizedList","initialNumToRender","maxToRenderPerBatch","windowSize","updateCellsBatchingPeriod","removeClippedSubviews","showsVerticalScrollIndicator","exports","isInline","NodeRendererComponent","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","n","idx","Wrapper","Fragment","wrapperProps","forEach","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","result","document","Heading","heading","Paragraph","paragraph","bold","italic","strikethrough","Link","link","Image","image","InlineCode","code_inline","CodeBlock","code_block","Blockquote","blockquote","HorizontalRule","horizontal_rule","mathContent","replace","trim","MathInline","math_inline","MathBlock","math_block","List","list","ListItem","TaskListItem","task_list_item","TableRenderer","table","memo","previousProps","nextProps","cached","created","createBaseStyles","StyleSheet","create","width","maxWidth","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_blockquote","_code","_heading","_horizontalRule","_image","_link","_list","_math","_paragraph","_table","_theme","_jsxRuntime","hashString","str","hash","i","length","char","charCodeAt","ERROR_PHASE","PARSE","BEFORE_PLUGIN","AFTER_PLUGIN","safeOnError","onError","error","phase","pluginName","Error","String","callbackError","__DEV__","console","warn","baseStylesCache","WeakMap","parseAstCache","Map","MAX_PARSE_CACHE_ENTRIES","MAX_CACHEABLE_TEXT_LENGTH","EMPTY_RENDERERS","isMarkdownNode","value","Reflect","get","warnInDev","message","runtimeConsole","globalThis","cloneMarkdownNode","node","children","map","getParserOptionsKey","options","gfm","undefined","math","html","normalizeParserOptions","parseWithNativeParser","text","parseMarkdownWithOptions","parseMarkdown","getCachedParsedAst","cacheKey","cachedEntry","delete","set","ast","parsedNode","size","oldestCacheKey","keys","next","sortPluginsByPriority","plugins","sort","a","b","priority","applyBeforeParsePlugins","markdown","sortedPlugins","nextMarkdown","plugin","beforeParse","transformed","pluginLabel","name","applyAfterParsePlugins","nextAst","afterParse","Markdown","sourceAst","parseCache","astTransform","renderers","theme","userTheme","styles","nodeStyles","stylingStrategy","style","onParsingInProgress","onParseComplete","onLinkPress","virtualize","virtualizationMinBlocks","virtualization","tableOptions","highlightCode","parserOptionGfm","parserOptionMath","parserOptionHtml","onErrorRef","useRef","current","parseResult","useMemo","markdownToParse","parserOptions","parsedAst","parseError","useEffect","raw","getFlattenedText","base","minimalMarkdownTheme","defaultMarkdownTheme","mergeThemes","baseStyles","getBaseStyles","contextValue","topLevelBlocks","type","shouldVirtualizeBySetting","shouldVirtualize","keyExtractor","useCallback","index","beg","end","renderVirtualizedItem","item","jsx","NodeRenderer","depth","inListItem","View","container","Text","errorText","MarkdownContext","Provider","FlatList","data","renderItem","virtualizedList","initialNumToRender","maxToRenderPerBatch","windowSize","updateCellsBatchingPeriod","removeClippedSubviews","bounces","alwaysBounceVertical","overScrollMode","showsVerticalScrollIndicator","exports","isInline","NodeRendererComponent","parentIsText","useMarkdownContext","renderChildren","childInListItem","childParentIsText","elements","currentInlineGroup","flushInlineGroup","hasMath","some","child","push","flexDirection","alignItems","flexWrap","flexShrink","n","idx","Wrapper","Fragment","wrapperProps","forEach","customRenderer","childrenRendered","baseProps","Renderer","enhancedProps","level","href","title","url","alt","content","getTextContent","language","ordered","start","checked","result","document","Heading","heading","Paragraph","paragraph","bold","italic","strikethrough","Link","link","Image","image","InlineCode","code_inline","CodeBlock","code_block","Blockquote","blockquote","HorizontalRule","horizontal_rule","mathContent","replace","trim","MathInline","math_inline","MathBlock","math_block","List","list","ListItem","TaskListItem","task_list_item","TableRenderer","table","memo","previousProps","nextProps","cached","created","createBaseStyles","StyleSheet","create","width","maxWidth","flex","color","fontSize","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","colors","fontSizes","m","lineHeight","regular","fontWeight","fontStyle","textDecorationLine"],"sourceRoot":"../../src","sources":["markdown.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAWA,IAAAC,YAAA,GAAAD,OAAA;AAWA,IAAAE,SAAA,GAAAF,OAAA;AAQA,IAAAG,gBAAA,GAAAH,OAAA;AAOA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AAQiB,IAAAe,WAAA,GAAAf,OAAA;AAGjB,SAASgB,UAAUA,CAACC,GAAW,EAAU;EACvC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,MAAME,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAACH,CAAC,CAAC;IAC9BD,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAGG,IAAI;IAChCH,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC,CAAC;EACtB;EACA,OAAOA,IAAI;AACb;AAEA,MAAMK,WAAW,GAAG;EAClBC,KAAK,EAAE,OAAO;EACdC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE;AAChB,CAAU;;AAEV;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAClBC,OAA4E,EAC5EC,KAAc,EACdC,KAAQ,EACRC,UAAmB,EACb;EACN,IAAI;IACFH,OAAO,GACLC,KAAK,YAAYG,KAAK,GAAGH,KAAK,GAAG,IAAIG,KAAK,CAACC,MAAM,CAACJ,KAAK,CAAC,CAAC,EACzDC,KAAK,EACLC,UACF,CAAC;EACH,CAAC,CAAC,OAAOG,aAAa,EAAE;IACtB,IAAIC,OAAO,EAAE;MACX;MACAC,OAAO,CAACC,IAAI,CACV,sDAAsD,EACtDH,aACF,CAAC;IACH;EACF;AACF;AAEA,MAAMI,eAAe,GAAG,IAAIC,OAAO,CAA4B,CAAC;AAMhE,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAC3D,MAAMC,uBAAuB,GAAG,EAAE;AAClC,MAAMC,yBAAyB,GAAG,MAAM;AACxC,MAAMC,eAAgC,GAAG,CAAC,CAAC;AAoC3C,MAAMC,cAAc,GAAIC,KAAc,IAA4B;EAChE,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,KAAK;EAC7D,OAAO,OAAOC,OAAO,CAACC,GAAG,CAACF,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ;AACvD,CAAC;AAED,MAAMG,SAAS,GAAGA,CAACC,OAAe,EAAErB,KAAe,KAAW;EAC5D,IAAI,OAAOM,OAAO,KAAK,WAAW,IAAI,CAACA,OAAO,EAAE;EAEhD,MAAMgB,cAAc,GAAGJ,OAAO,CAACC,GAAG,CAACI,UAAU,EAAE,SAAS,CAAC;EACzD,IACE,OAAOD,cAAc,KAAK,QAAQ,IAClCA,cAAc,KAAK,IAAI,IACvB,MAAM,IAAIA,cAAc,IACxB,OAAOA,cAAc,CAACd,IAAI,KAAK,UAAU,EACzC;IACAc,cAAc,CAACd,IAAI,CAACa,OAAO,EAAErB,KAAK,CAAC;EACrC;AACF,CAAC;AAED,MAAMwB,iBAAiB,GAAIC,IAAkB,IAAmB;EAC9D,OAAO;IACL,GAAGA,IAAI;IACPC,QAAQ,EAAED,IAAI,CAACC,QAAQ,EAAEC,GAAG,CAACH,iBAAiB;EAChD,CAAC;AACH,CAAC;AAED,MAAMI,mBAAmB,GAAIC,OAAuB,IAAa;EAC/D,IAAI,CAACA,OAAO,EAAE,OAAO,uCAAuC;EAE5D,MAAMC,GAAG,GAAGD,OAAO,CAACC,GAAG,KAAKC,SAAS,GAAG,SAAS,GAAGF,OAAO,CAACC,GAAG,GAAG,GAAG,GAAG,GAAG;EAC3E,MAAME,IAAI,GACRH,OAAO,CAACG,IAAI,KAAKD,SAAS,GAAG,SAAS,GAAGF,OAAO,CAACG,IAAI,GAAG,GAAG,GAAG,GAAG;EACnE,MAAMC,IAAI,GACRJ,OAAO,CAACI,IAAI,KAAKF,SAAS,GAAG,SAAS,GAAGF,OAAO,CAACI,IAAI,GAAG,GAAG,GAAG,GAAG;EACnE,OAAO,OAAOH,GAAG,SAASE,IAAI,SAASC,IAAI,EAAE;AAC/C,CAAC;AAED,MAAMC,sBAAsB,GAC1BL,OAAuB,IACO;EAC9B,IAAI,CAACA,OAAO,EAAE,OAAOE,SAAS;EAE9B,MAAMD,GAAG,GAAGD,OAAO,CAACC,GAAG;EACvB,MAAME,IAAI,GAAGH,OAAO,CAACG,IAAI;EACzB,MAAMC,IAAI,GAAGJ,OAAO,CAACI,IAAI;EAEzB,IAAIH,GAAG,KAAKC,SAAS,IAAIC,IAAI,KAAKD,SAAS,IAAIE,IAAI,KAAKF,SAAS,EAAE;IACjE,OAAOA,SAAS;EAClB;EAEA,OAAO;IACLD,GAAG;IACHE,IAAI;IACJC;EACF,CAAC;AACH,CAAC;AAED,MAAME,qBAAqB,GAAGA,CAC5BC,IAAY,EACZP,OAAuB,KACN;EACjB,IAAIA,OAAO,EAAE;IACX,OAAO,IAAAQ,kCAAwB,EAACD,IAAI,EAAEP,OAAO,CAAC;EAChD;EACA,OAAO,IAAAS,uBAAa,EAACF,IAAI,CAAC;AAC5B,CAAC;AAED,MAAMG,kBAAkB,GAAGA,CACzBH,IAAY,EACZP,OAAuB,KACN;EACjB,IAAIO,IAAI,CAAC7C,MAAM,GAAGuB,yBAAyB,EAAE;IAC3C,OAAOqB,qBAAqB,CAACC,IAAI,EAAEP,OAAO,CAAC;EAC7C;EAEA,MAAMW,QAAQ,GAAG,GAAGZ,mBAAmB,CAACC,OAAO,CAAC,IAAIO,IAAI,CAAC7C,MAAM,IAAIJ,UAAU,CAACiD,IAAI,CAAC,EAAE;EACrF,MAAMK,WAAW,GAAG9B,aAAa,CAACQ,GAAG,CAACqB,QAAQ,CAAC;EAC/C,IAAIC,WAAW,EAAEL,IAAI,KAAKA,IAAI,EAAE;IAC9BzB,aAAa,CAAC+B,MAAM,CAACF,QAAQ,CAAC;IAC9B7B,aAAa,CAACgC,GAAG,CAACH,QAAQ,EAAEC,WAAW,CAAC;IACxC,OAAOjB,iBAAiB,CAACiB,WAAW,CAACG,GAAG,CAAC;EAC3C;EAEA,MAAMC,UAAU,GAAGV,qBAAqB,CAACC,IAAI,EAAEP,OAAO,CAAC;EACvDlB,aAAa,CAACgC,GAAG,CAACH,QAAQ,EAAE;IAC1BJ,IAAI;IACJQ,GAAG,EAAEC;EACP,CAAC,CAAC;EACF,IAAIlC,aAAa,CAACmC,IAAI,GAAGjC,uBAAuB,EAAE;IAChD,MAAMkC,cAAc,GAAGpC,aAAa,CAACqC,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAChC,KAAK;IACxD,IAAI,OAAO8B,cAAc,KAAK,QAAQ,EAAE;MACtCpC,aAAa,CAAC+B,MAAM,CAACK,cAAc,CAAC;IACtC;EACF;EAEA,OAAOvB,iBAAiB,CAACqB,UAAU,CAAC;AACtC,CAAC;AAED,MAAMK,qBAAqB,GACzBC,OAA0B,IACO;EACjC,IAAI,CAACA,OAAO,IAAIA,OAAO,CAAC5D,MAAM,KAAK,CAAC,EAAE;IACpC,OAAOwC,SAAS;EAClB;EAEA,OAAO,CAAC,GAAGoB,OAAO,CAAC,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACA,CAAC,CAACC,QAAQ,IAAI,CAAC,KAAKF,CAAC,CAACE,QAAQ,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAMC,uBAAuB,GAAGA,CAC9BC,QAAgB,EAChBC,aAAgC,EAChC3D,OAA6E,KAClE;EACX,IAAI,CAAC2D,aAAa,IAAIA,aAAa,CAACnE,MAAM,KAAK,CAAC,EAAE;IAChD,OAAOkE,QAAQ;EACjB;EAEA,IAAIE,YAAY,GAAGF,QAAQ;EAC3B,KAAK,MAAMG,MAAM,IAAIF,aAAa,EAAE;IAClC,IAAI,CAACE,MAAM,CAACC,WAAW,EAAE;IAEzB,IAAI;MACF,MAAMC,WAAW,GAAGF,MAAM,CAACC,WAAW,CAACF,YAAY,CAAC;MACpD,IAAI,OAAOG,WAAW,KAAK,QAAQ,EAAE;QACnCH,YAAY,GAAGG,WAAW;MAC5B;IACF,CAAC,CAAC,OAAO9D,KAAK,EAAE;MACd,MAAM+D,WAAW,GAAGH,MAAM,CAACI,IAAI,GAAG,KAAKJ,MAAM,CAACI,IAAI,GAAG,GAAG,EAAE;MAC1D5C,SAAS,CACP,mDAAmD2C,WAAW,kCAAkC,EAChG/D,KACF,CAAC;MACDF,WAAW,CAACC,OAAO,EAAEC,KAAK,EAAEN,WAAW,CAACE,aAAa,EAAEgE,MAAM,CAACI,IAAI,CAAC;IACrE;EACF;EAEA,OAAOL,YAAY;AACrB,CAAC;AAED,MAAMM,sBAAsB,GAAGA,CAC7BrB,GAAiB,EACjBc,aAAgC,EAChC3D,OAA4E,KAC3D;EACjB,IAAI,CAAC2D,aAAa,IAAIA,aAAa,CAACnE,MAAM,KAAK,CAAC,EAAE;IAChD,OAAOqD,GAAG;EACZ;EAEA,IAAIsB,OAAO,GAAGtB,GAAG;EACjB,KAAK,MAAMgB,MAAM,IAAIF,aAAa,EAAE;IAClC,IAAI,CAACE,MAAM,CAACO,UAAU,EAAE;IAExB,IAAI;MACF,MAAML,WAAW,GAAGF,MAAM,CAACO,UAAU,CAACD,OAAO,CAAC;MAC9C,IAAIlD,cAAc,CAAC8C,WAAW,CAAC,EAAE;QAC/BI,OAAO,GAAGJ,WAAW;MACvB;IACF,CAAC,CAAC,OAAO9D,KAAK,EAAE;MACd,MAAM+D,WAAW,GAAGH,MAAM,CAACI,IAAI,GAAG,KAAKJ,MAAM,CAACI,IAAI,GAAG,GAAG,EAAE;MAC1D5C,SAAS,CACP,kDAAkD2C,WAAW,6BAA6B,EAC1F/D,KACF,CAAC;MACDF,WAAW,CAACC,OAAO,EAAEC,KAAK,EAAEN,WAAW,CAACG,YAAY,EAAE+D,MAAM,CAACI,IAAI,CAAC;IACpE;EACF;EAEA,OAAOE,OAAO;AAChB,CAAC;AA6HM,MAAME,QAA2B,GAAGA,CAAC;EAC1C1C,QAAQ;EACRG,OAAO;EACPsB,OAAO;EACPkB,SAAS;EACTC,UAAU,GAAG,IAAI;EACjBC,YAAY;EACZC,SAAS,GAAGzD,eAAe;EAC3B0D,KAAK,EAAEC,SAAS;EAChBC,MAAM,EAAEC,UAAU;EAClBC,eAAe,GAAG,aAAa;EAC/BC,KAAK;EACLC,mBAAmB;EACnBC,eAAe;EACfC,WAAW;EACXlF,OAAO;EACPmF,UAAU,GAAG,KAAK;EAClBC,uBAAuB,GAAG,EAAE;EAC5BC,cAAc;EACdC,YAAY;EACZC;AACF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAG1D,OAAO,EAAEC,GAAG;EACpC,MAAM0D,gBAAgB,GAAG3D,OAAO,EAAEG,IAAI;EACtC,MAAMyD,gBAAgB,GAAG5D,OAAO,EAAEI,IAAI;;EAEtC;EACA,MAAMyD,UAAU,GAAG,IAAAC,aAAM,EAAC5F,OAAO,CAAC;EAClC2F,UAAU,CAACE,OAAO,GAAG7F,OAAO;EAE5B,MAAM8F,WAAW,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,IAAI;MACF,MAAMpC,aAAa,GAAGR,qBAAqB,CAACC,OAAO,CAAC;MACpD,MAAM4C,eAAe,GAAG1B,SAAS,GAC7B3C,QAAQ,GACR8B,uBAAuB,CAAC9B,QAAQ,EAAEgC,aAAa,EAAEgC,UAAU,CAACE,OAAO,CAAC;MACxE,MAAMI,aAAa,GAAG9D,sBAAsB,CAAC;QAC3CJ,GAAG,EAAEyD,eAAe;QACpBvD,IAAI,EAAEwD,gBAAgB;QACtBvD,IAAI,EAAEwD;MACR,CAAC,CAAC;MACF,IAAIQ,SAAS,GAAG5B,SAAS,GACrB7C,iBAAiB,CAAC6C,SAAS,CAAC,GAC5BC,UAAU,GACR/B,kBAAkB,CAACwD,eAAe,EAAEC,aAAa,CAAC,GAClD7D,qBAAqB,CAAC4D,eAAe,EAAEC,aAAa,CAAC;MAC3DC,SAAS,GAAGhC,sBAAsB,CAChCgC,SAAS,EACTvC,aAAa,EACbgC,UAAU,CAACE,OACb,CAAC;MAED,IAAIhD,GAAG,GAAGqD,SAAS;MACnB,IAAI1B,YAAY,EAAE;QAChB,IAAI;UACF,MAAML,OAAO,GAAGK,YAAY,CAAC0B,SAAS,CAAC;UACvC,IAAIjF,cAAc,CAACkD,OAAO,CAAC,EAAE;YAC3BtB,GAAG,GAAGsB,OAAO;UACf;QACF,CAAC,CAAC,OAAOlE,KAAK,EAAE;UACdoB,SAAS,CACP,+EAA+E,EAC/EpB,KACF,CAAC;UACD4C,GAAG,GAAGqD,SAAS;QACjB;MACF;MAEA,OAAO;QACLrD;MACF,CAAC;IACH,CAAC,CAAC,OAAOsD,UAAU,EAAE;MACnBpG,WAAW,CAAC4F,UAAU,CAACE,OAAO,EAAEM,UAAU,EAAExG,WAAW,CAACC,KAAK,CAAC;MAC9D,OAAO;QACLiD,GAAG,EAAE;MACP,CAAC;IACH;EACF,CAAC,EAAE,CACDlB,QAAQ,EACR6D,eAAe,EACfC,gBAAgB,EAChBC,gBAAgB,EAChBpB,SAAS,EACTC,UAAU,EACVC,YAAY,EACZpB,OAAO,CACR,CAAC;EACF;;EAEA,IAAAgD,gBAAS,EAAC,MAAM;IACdpB,mBAAmB,GAAG,CAAC;EACzB,CAAC,EAAE,CACDrD,QAAQ,EACR6D,eAAe,EACfC,gBAAgB,EAChBC,gBAAgB,EAChBV,mBAAmB,CACpB,CAAC;EAEF,IAAAoB,gBAAS,EAAC,MAAM;IACd,IAAI,CAACN,WAAW,CAACjD,GAAG,IAAI,CAACoC,eAAe,EAAE;IAE1CA,eAAe,CAAC;MACdoB,GAAG,EAAE1E,QAAQ;MACbkB,GAAG,EAAEiD,WAAW,CAACjD,GAAG;MACpBR,IAAI,EAAE,IAAAiE,0BAAgB,EAACR,WAAW,CAACjD,GAAG;IACxC,CAAC,CAAC;EACJ,CAAC,EAAE,CAAClB,QAAQ,EAAEsD,eAAe,EAAEa,WAAW,CAACjD,GAAG,CAAC,CAAC;EAEhD,MAAM6B,KAAK,GAAG,IAAAqB,cAAO,EAAC,MAAM;IAC1B,MAAMQ,IAAI,GACRzB,eAAe,KAAK,SAAS,GACzB0B,2BAAoB,GACpBC,2BAAoB;IAC1B,OAAO,IAAAC,kBAAW,EAACH,IAAI,EAAE5B,SAAS,CAAC;EACrC,CAAC,EAAE,CAACA,SAAS,EAAEG,eAAe,CAAC,CAAC;EAEhC,MAAM6B,UAAU,GAAGC,aAAa,CAAClC,KAAK,CAAC;EACvC,MAAMmC,YAAY,GAAG,IAAAd,cAAO,EAC1B,OAAO;IACLtB,SAAS;IACTC,KAAK;IACLE,MAAM,EAAEC,UAAU;IAClBC,eAAe;IACfI,WAAW;IACXI,YAAY;IACZC;EACF,CAAC,CAAC,EACF,CACEd,SAAS,EACTC,KAAK,EACLG,UAAU,EACVC,eAAe,EACfI,WAAW,EACXI,YAAY,EACZC,aAAa,CAEjB,CAAC;EAED,MAAMuB,cAAc,GAClBhB,WAAW,CAACjD,GAAG,EAAEkE,IAAI,KAAK,UAAU,GAC/BjB,WAAW,CAACjD,GAAG,CAAClB,QAAQ,IAAI,EAAE,GAC/BmE,WAAW,CAACjD,GAAG,GACb,CAACiD,WAAW,CAACjD,GAAG,CAAC,GACjB,EAAE;EACV,MAAMmE,yBAAyB,GAC7B7B,UAAU,KAAK,IAAI,IAClBA,UAAU,KAAK,MAAM,IAAI2B,cAAc,CAACtH,MAAM,IAAI4F,uBAAwB;EAC7E,MAAM6B,gBAAgB,GACpBnB,WAAW,CAACjD,GAAG,KAAK,IAAI,IAAImE,yBAAyB;EAEvD,MAAME,YAAY,GAAG,IAAAC,kBAAW,EAAC,CAACzF,IAAkB,EAAE0F,KAAa,KAAK;IACtE,MAAMC,GAAG,GAAG,OAAO3F,IAAI,CAAC2F,GAAG,KAAK,QAAQ,GAAG3F,IAAI,CAAC2F,GAAG,GAAGD,KAAK;IAC3D,MAAME,GAAG,GAAG,OAAO5F,IAAI,CAAC4F,GAAG,KAAK,QAAQ,GAAG5F,IAAI,CAAC4F,GAAG,GAAGF,KAAK;IAC3D,OAAO,GAAG1F,IAAI,CAACqF,IAAI,IAAIM,GAAG,IAAIC,GAAG,IAAIF,KAAK,EAAE;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,qBAAqB,GAAG,IAAAJ,kBAAW,EACvC,CAAC;IAAEK;EAAuC,CAAC,kBACzC,IAAArI,WAAA,CAAAsI,GAAA,EAACC,YAAY;IAAChG,IAAI,EAAE8F,IAAK;IAACG,KAAK,EAAE,CAAE;IAACC,UAAU,EAAE;EAAM,CAAE,CACzD,EACD,EACF,CAAC;EAED,IAAI,CAAC9B,WAAW,CAACjD,GAAG,EAAE;IACpB,oBACE,IAAA1D,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAAwJ,IAAI;MAAC9C,KAAK,EAAE,CAAC4B,UAAU,CAACmB,SAAS,EAAE/C,KAAK,CAAE;MAAApD,QAAA,eACzC,IAAAxC,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAChD,KAAK,EAAE4B,UAAU,CAACqB,SAAU;QAAArG,QAAA,EAAC;MAAsB,CAAM;IAAC,CAC5D,CAAC;EAEX;EAEA,oBACE,IAAAxC,WAAA,CAAAsI,GAAA,EAAClJ,gBAAA,CAAA0J,eAAe,CAACC,QAAQ;IAAChH,KAAK,EAAE2F,YAAa;IAAAlF,QAAA,eAC5C,IAAAxC,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAAwJ,IAAI;MAAC9C,KAAK,EAAE,CAAC4B,UAAU,CAACmB,SAAS,EAAE/C,KAAK,CAAE;MAAApD,QAAA,EACxCsF,gBAAgB,gBACf,IAAA9H,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA8J,QAAQ;QACPC,IAAI,EAAEtB,cAAe;QACrBuB,UAAU,EAAEd,qBAAsB;QAClCL,YAAY,EAAEA,YAAa;QAC3BnC,KAAK,EAAE4B,UAAU,CAAC2B,eAAgB;QAClCC,kBAAkB,EAAElD,cAAc,EAAEkD,kBAAkB,IAAI,EAAG;QAC7DC,mBAAmB,EAAEnD,cAAc,EAAEmD,mBAAmB,IAAI,EAAG;QAC/DC,UAAU,EAAEpD,cAAc,EAAEoD,UAAU,IAAI,EAAG;QAC7CC,yBAAyB,EACvBrD,cAAc,EAAEqD,yBAAyB,IAAI,EAC9C;QACDC,qBAAqB,EACnBtD,cAAc,EAAEsD,qBAAqB,IAAI,IAC1C;QACDC,OAAO,EAAE,KAAM;QACfC,oBAAoB,EAAE,KAAM;QAC5BC,cAAc,EAAC,OAAO;QACtBC,4BAA4B,EAAE;MAAM,CACrC,CAAC,gBAEF,IAAA5J,WAAA,CAAAsI,GAAA,EAACC,YAAY;QAAChG,IAAI,EAAEoE,WAAW,CAACjD,GAAI;QAAC8E,KAAK,EAAE,CAAE;QAACC,UAAU,EAAE;MAAM,CAAE;IACpE,CACG;EAAC,CACiB,CAAC;AAE/B,CAAC;AAACoB,OAAA,CAAA3E,QAAA,GAAAA,QAAA;AAEF,MAAM4E,QAAQ,GAAIlC,IAA0B,IAAc;EACxD,OACEA,IAAI,KAAK,MAAM,IACfA,IAAI,KAAK,MAAM,IACfA,IAAI,KAAK,QAAQ,IACjBA,IAAI,KAAK,eAAe,IACxBA,IAAI,KAAK,MAAM,IACfA,IAAI,KAAK,aAAa,IACtBA,IAAI,KAAK,YAAY,IACrBA,IAAI,KAAK,YAAY,IACrBA,IAAI,KAAK,aAAa,IACtBA,IAAI,KAAK,aAAa;AAE1B,CAAC;AAED,MAAMmC,qBAA4C,GAAGA,CAAC;EACpDxH,IAAI;EACJiG,KAAK;EACLC,UAAU;EACVuB,YAAY,GAAG;AACjB,CAAC,KAAK;EACJ,MAAM;IAAE1E,SAAS;IAAEC,KAAK;IAAEE,MAAM,EAAEC;EAAW,CAAC,GAAG,IAAAuE,mCAAkB,EAAC,CAAC;EACrE,MAAMzC,UAAU,GAAGC,aAAa,CAAClC,KAAK,CAAC;EAEvC,MAAM2E,cAAc,GAAGA,CACrB1H,QAAyB,EACzB2H,eAAe,GAAG,KAAK,EACvBC,iBAAiB,GAAG,KAAK,KACX;IACd,IAAI,CAAC5H,QAAQ,IAAIA,QAAQ,CAACnC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IAEnD,MAAMgK,QAAqB,GAAG,EAAE;IAChC,IAAIC,kBAAkC,GAAG,EAAE;IAE3C,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7B,IAAID,kBAAkB,CAACjK,MAAM,GAAG,CAAC,EAAE;QACjC,MAAMmK,OAAO,GAAGF,kBAAkB,CAACG,IAAI,CACpCC,KAAK,IAAKA,KAAK,CAAC9C,IAAI,KAAK,aAC5B,CAAC;QAED,IAAI4C,OAAO,IAAI,CAACJ,iBAAiB,EAAE;UACjCC,QAAQ,CAACM,IAAI,cACX,IAAA3K,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAAwJ,IAAI;YAEH9C,KAAK,EAAE;cACLgF,aAAa,EAAE,KAAK;cACpBC,UAAU,EAAE,QAAQ;cACpBC,QAAQ,EAAE,MAAM;cAChBC,UAAU,EAAE;YACd,CAAE;YAAAvI,QAAA,EAED8H,kBAAkB,CAAC7H,GAAG,CAAC,CAACuI,CAAC,EAAEC,GAAG,kBAC7B,IAAAjL,WAAA,CAAAsI,GAAA,EAACC,YAAY;cAEXhG,IAAI,EAAEyI,CAAE;cACRxC,KAAK,EAAEA,KAAK,GAAG,CAAE;cACjBC,UAAU,EAAE0B,eAAgB;cAC5BH,YAAY,EAAE;YAAM,GAJf,GAAGgB,CAAC,CAACpD,IAAI,IAAIqD,GAAG,EAKtB,CACF;UAAC,GAhBG,gBAAgBZ,QAAQ,CAAChK,MAAM,EAiBhC,CACR,CAAC;QACH,CAAC,MAAM;UACL,MAAM6K,OAAO,GAAGd,iBAAiB,GAAGe,eAAQ,GAAGvC,iBAAI;UACnD,MAAMwC,YAAY,GAAGhB,iBAAiB,GAClC,CAAC,CAAC,GACF;YAAExE,KAAK,EAAE4B,UAAU,CAACtE;UAAK,CAAC;UAE9BmH,QAAQ,CAACM,IAAI,cACX,IAAA3K,WAAA,CAAAsI,GAAA,EAAC4C,OAAO;YAAA,GAA6CE,YAAY;YAAA5I,QAAA,EAC9D8H,kBAAkB,CAAC7H,GAAG,CAAC,CAACuI,CAAC,EAAEC,GAAG,kBAC7B,IAAAjL,WAAA,CAAAsI,GAAA,EAACC,YAAY;cAEXhG,IAAI,EAAEyI,CAAE;cACRxC,KAAK,EAAEA,KAAK,GAAG,CAAE;cACjBC,UAAU,EAAE0B,eAAgB;cAC5BH,YAAY,EAAE;YAAK,GAJd,GAAGgB,CAAC,CAACpD,IAAI,IAAIqD,GAAG,EAKtB,CACF;UAAC,GATU,gBAAgBZ,QAAQ,CAAChK,MAAM,EAUpC,CACX,CAAC;QACH;QACAiK,kBAAkB,GAAG,EAAE;MACzB;IACF,CAAC;IAED9H,QAAQ,CAAC6I,OAAO,CAAC,CAACX,KAAK,EAAEzC,KAAK,KAAK;MACjC,IAAI6B,QAAQ,CAACY,KAAK,CAAC9C,IAAI,CAAC,EAAE;QACxB0C,kBAAkB,CAACK,IAAI,CAACD,KAAK,CAAC;MAChC,CAAC,MAAM;QACLH,gBAAgB,CAAC,CAAC;QAClBF,QAAQ,CAACM,IAAI,cACX,IAAA3K,WAAA,CAAAsI,GAAA,EAACC,YAAY;UAEXhG,IAAI,EAAEmI,KAAM;UACZlC,KAAK,EAAEA,KAAK,GAAG,CAAE;UACjBC,UAAU,EAAE0B,eAAgB;UAC5BH,YAAY,EAAEI;QAAkB,GAJ3B,GAAGM,KAAK,CAAC9C,IAAI,IAAIK,KAAK,EAK5B,CACH,CAAC;MACH;IACF,CAAC,CAAC;IAEFsC,gBAAgB,CAAC,CAAC;IAClB,OAAOF,QAAQ;EACjB,CAAC;EAED,MAAMiB,cAAc,GAAGhG,SAAS,CAAC/C,IAAI,CAACqF,IAAI,CAAC;EAC3C,IAAI0D,cAAc,EAAE;IAClB,MAAMC,gBAAgB,GAAGrB,cAAc,CACrC3H,IAAI,CAACC,QAAQ,EACbiG,UAAU,EACVuB,YACF,CAAC;IAED,MAAMwB,SAAS,GAAG;MAChBjJ,IAAI;MACJC,QAAQ,EAAE+I,gBAAgB;MAC1BE,QAAQ,EAAElD;IACZ,CAAC;IAED,MAAMmD,aAAa,GAAG;MACpB,GAAGF,SAAS;MACZ,IAAIjJ,IAAI,CAACqF,IAAI,KAAK,SAAS,IAAI;QAC7B+D,KAAK,EAAGpJ,IAAI,CAACoJ,KAAK,IAAI;MACxB,CAAC,CAAC;MACF,IAAIpJ,IAAI,CAACqF,IAAI,KAAK,MAAM,IAAI;QAAEgE,IAAI,EAAErJ,IAAI,CAACqJ,IAAI,IAAI,EAAE;QAAEC,KAAK,EAAEtJ,IAAI,CAACsJ;MAAM,CAAC,CAAC;MACzE,IAAItJ,IAAI,CAACqF,IAAI,KAAK,OAAO,IAAI;QAC3BkE,GAAG,EAAEvJ,IAAI,CAACqJ,IAAI,IAAI,EAAE;QACpBG,GAAG,EAAExJ,IAAI,CAACwJ,GAAG;QACbF,KAAK,EAAEtJ,IAAI,CAACsJ;MACd,CAAC,CAAC;MACF,IAAItJ,IAAI,CAACqF,IAAI,KAAK,YAAY,IAAI;QAChCoE,OAAO,EAAE,IAAAC,wBAAc,EAAC1J,IAAI,CAAC;QAC7B2J,QAAQ,EAAE3J,IAAI,CAAC2J;MACjB,CAAC,CAAC;MACF,IAAI3J,IAAI,CAACqF,IAAI,KAAK,aAAa,IAAI;QAAEoE,OAAO,EAAEzJ,IAAI,CAACyJ,OAAO,IAAI;MAAG,CAAC,CAAC;MACnE,IAAI,CAACzJ,IAAI,CAACqF,IAAI,KAAK,aAAa,IAAIrF,IAAI,CAACqF,IAAI,KAAK,YAAY,KAAK;QACjEoE,OAAO,EAAE,IAAAC,wBAAc,EAAC1J,IAAI;MAC9B,CAAC,CAAC;MACF,IAAIA,IAAI,CAACqF,IAAI,KAAK,MAAM,IAAI;QAC1BuE,OAAO,EAAE5J,IAAI,CAAC4J,OAAO,IAAI,KAAK;QAC9BC,KAAK,EAAE7J,IAAI,CAAC6J;MACd,CAAC,CAAC;MACF,IAAI7J,IAAI,CAACqF,IAAI,KAAK,gBAAgB,IAAI;QAAEyE,OAAO,EAAE9J,IAAI,CAAC8J,OAAO,IAAI;MAAM,CAAC;IAC1E,CAAC;IAED,MAAMC,MAAM,GAAGhB,cAAc,CAACI,aAAa,CAAC;IAC5C,IAAIY,MAAM,KAAKzJ,SAAS,EAAE;MACxB,OAAOyJ,MAAM;IACf;EACF;EAEA,QAAQ/J,IAAI,CAACqF,IAAI;IACf,KAAK,UAAU;MACb,oBACE,IAAA5H,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAAwJ,IAAI;QAAC9C,KAAK,EAAE,CAAC4B,UAAU,CAAC+E,QAAQ,EAAE7G,UAAU,EAAE6G,QAAQ,CAAE;QAAA/J,QAAA,EACtD0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAE,KAAK,EAAE,KAAK;MAAC,CACxC,CAAC;IAGX,KAAK,SAAS;MACZ,oBACE,IAAAxC,WAAA,CAAAsI,GAAA,EAAC/I,QAAA,CAAAiN,OAAO;QAACb,KAAK,EAAEpJ,IAAI,CAACoJ,KAAK,IAAI,CAAE;QAAC/F,KAAK,EAAEF,UAAU,EAAE+G,OAAQ;QAAAjK,QAAA,EACzD0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,IAAI;MAAC,CACzC,CAAC;IAGd,KAAK,WAAW;MACd,oBACE,IAAAzI,WAAA,CAAAsI,GAAA,EAACzI,UAAA,CAAA6M,SAAS;QAACjE,UAAU,EAAEA,UAAW;QAAC7C,KAAK,EAAEF,UAAU,EAAEiH,SAAU;QAAAnK,QAAA,EAC7D0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,KAAK;MAAC,CACxC,CAAC;IAGhB,KAAK,MAAM;MACT,IAAIuB,YAAY,EAAE;QAChB,oBAAO,IAAAhK,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;UAAApG,QAAA,EAAED,IAAI,CAACyJ;QAAO,CAAO,CAAC;MACpC;MACA,oBACE,IAAAhM,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAChD,KAAK,EAAE,CAAC4B,UAAU,CAACtE,IAAI,EAAEwC,UAAU,EAAExC,IAAI,CAAE;QAAAV,QAAA,EAAED,IAAI,CAACyJ;MAAO,CAAO,CAAC;IAG3E,KAAK,MAAM;MACT,oBACE,IAAAhM,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAChD,KAAK,EAAE,CAAC4B,UAAU,CAACoF,IAAI,EAAElH,UAAU,EAAEkH,IAAI,CAAE;QAAApK,QAAA,EAC9C0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,IAAI;MAAC,CAC5C,CAAC;IAGX,KAAK,QAAQ;MACX,oBACE,IAAAzI,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAChD,KAAK,EAAE,CAAC4B,UAAU,CAACqF,MAAM,EAAEnH,UAAU,EAAEmH,MAAM,CAAE;QAAArK,QAAA,EAClD0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,IAAI;MAAC,CAC5C,CAAC;IAGX,KAAK,eAAe;MAClB,oBACE,IAAAzI,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAChD,KAAK,EAAE,CAAC4B,UAAU,CAACsF,aAAa,EAAEpH,UAAU,EAAEoH,aAAa,CAAE;QAAAtK,QAAA,EAChE0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,IAAI;MAAC,CAC5C,CAAC;IAGX,KAAK,MAAM;MACT,oBACE,IAAAzI,WAAA,CAAAsI,GAAA,EAAC5I,KAAA,CAAAqN,IAAI;QAACnB,IAAI,EAAErJ,IAAI,CAACqJ,IAAI,IAAI,EAAG;QAAChG,KAAK,EAAEF,UAAU,EAAEsH,IAAK;QAAAxK,QAAA,EAClD0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,IAAI;MAAC,CAC5C,CAAC;IAGX,KAAK,OAAO;MACV,oBACE,IAAAzI,WAAA,CAAAsI,GAAA,EAAC7I,MAAA,CAAAwN,KAAK;QACJnB,GAAG,EAAEvJ,IAAI,CAACqJ,IAAI,IAAI,EAAG;QACrBC,KAAK,EAAEtJ,IAAI,CAACsJ,KAAM;QAClBE,GAAG,EAAExJ,IAAI,CAACwJ,GAAI;QACdN,QAAQ,EAAElD,YAAa;QACvB3C,KAAK,EAAEF,UAAU,EAAEwH;MAAM,CAC1B,CAAC;IAGN,KAAK,aAAa;MAChB,oBACE,IAAAlN,WAAA,CAAAsI,GAAA,EAAChJ,KAAA,CAAA6N,UAAU;QAACvH,KAAK,EAAEF,UAAU,EAAE0H,WAAY;QAAA5K,QAAA,EAAED,IAAI,CAACyJ;MAAO,CAAa,CAAC;IAG3E,KAAK,YAAY;MACf,oBACE,IAAAhM,WAAA,CAAAsI,GAAA,EAAChJ,KAAA,CAAA+N,SAAS;QACRnB,QAAQ,EAAE3J,IAAI,CAAC2J,QAAS;QACxBF,OAAO,EAAE,IAAAC,wBAAc,EAAC1J,IAAI,CAAE;QAC9BqD,KAAK,EAAEF,UAAU,EAAE4H;MAAW,CAC/B,CAAC;IAGN,KAAK,YAAY;MACf,oBACE,IAAAtN,WAAA,CAAAsI,GAAA,EAACjJ,WAAA,CAAAkO,UAAU;QAAC3H,KAAK,EAAEF,UAAU,EAAE8H,UAAW;QAAAhL,QAAA,EACvC0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAEiG,UAAU,EAAE,KAAK;MAAC,CACvC,CAAC;IAGjB,KAAK,iBAAiB;MACpB,oBAAO,IAAAzI,WAAA,CAAAsI,GAAA,EAAC9I,eAAA,CAAAiO,cAAc;QAAC7H,KAAK,EAAEF,UAAU,EAAEgI;MAAgB,CAAE,CAAC;IAE/D,KAAK,YAAY;MACf,oBAAO,IAAA1N,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAApG,QAAA,EAAE;MAAI,CAAO,CAAC;IAE5B,KAAK,YAAY;MACf,oBAAO,IAAAxC,WAAA,CAAAsI,GAAA,EAACpJ,YAAA,CAAA0J,IAAI;QAAApG,QAAA,EAAC;MAAC,CAAM,CAAC;IAEvB,KAAK,aAAa;MAAE;QAClB,IAAImL,WAAW,GAAG,IAAA1B,wBAAc,EAAC1J,IAAI,CAAC;QACtC,IAAI,CAACoL,WAAW,EAAE,OAAO,IAAI;QAC7BA,WAAW,GAAGA,WAAW,CAACC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;QAC1D,oBACE,IAAA7N,WAAA,CAAAsI,GAAA,EAAC1I,KAAA,CAAAkO,UAAU;UAAC9B,OAAO,EAAE2B,WAAY;UAAC/H,KAAK,EAAEF,UAAU,EAAEqI;QAAY,CAAE,CAAC;MAExE;IAEA,KAAK,YAAY;MACf,oBACE,IAAA/N,WAAA,CAAAsI,GAAA,EAAC1I,KAAA,CAAAoO,SAAS;QACRhC,OAAO,EAAE,IAAAC,wBAAc,EAAC1J,IAAI,CAAE;QAC9BqD,KAAK,EAAEF,UAAU,EAAEuI;MAAW,CAC/B,CAAC;IAGN,KAAK,MAAM;MACT,oBACE,IAAAjO,WAAA,CAAAsI,GAAA,EAAC3I,KAAA,CAAAuO,IAAI;QACH/B,OAAO,EAAE5J,IAAI,CAAC4J,OAAO,IAAI,KAAM;QAC/BC,KAAK,EAAE7J,IAAI,CAAC6J,KAAM;QAClB5D,KAAK,EAAEA,KAAM;QACb5C,KAAK,EAAEF,UAAU,EAAEyI,IAAK;QAAA3L,QAAA,EAEvBD,IAAI,CAACC,QAAQ,EAAEC,GAAG,CAAC,CAACiI,KAAK,EAAEzC,KAAK,KAAK;UACpC,IAAIyC,KAAK,CAAC9C,IAAI,KAAK,gBAAgB,EAAE;YACnC,oBACE,IAAA5H,WAAA,CAAAsI,GAAA,EAACC,YAAY;cAEXhG,IAAI,EAAEmI,KAAM;cACZlC,KAAK,EAAEA,KAAK,GAAG,CAAE;cACjBC,UAAU,EAAE,IAAK;cACjBuB,YAAY,EAAE;YAAM,GAJf/B,KAKN,CAAC;UAEN;UACA,oBACE,IAAAjI,WAAA,CAAAsI,GAAA,EAAC3I,KAAA,CAAAyO,QAAQ;YAEPnG,KAAK,EAAEA,KAAM;YACbkE,OAAO,EAAE5J,IAAI,CAAC4J,OAAO,IAAI,KAAM;YAC/BC,KAAK,EAAE7J,IAAI,CAAC6J,KAAK,IAAI,CAAE;YAAA5J,QAAA,eAEvB,IAAAxC,WAAA,CAAAsI,GAAA,EAACC,YAAY;cACXhG,IAAI,EAAEmI,KAAM;cACZlC,KAAK,EAAEA,KAAK,GAAG,CAAE;cACjBC,UAAU,EAAE,IAAK;cACjBuB,YAAY,EAAE;YAAM,CACrB;UAAC,GAVG/B,KAWG,CAAC;QAEf,CAAC;MAAC,CACE,CAAC;IAGX,KAAK,WAAW;MACd,oBAAO,IAAAjI,WAAA,CAAAsI,GAAA,EAAAtI,WAAA,CAAAmL,QAAA;QAAA3I,QAAA,EAAG0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAE,IAAI,EAAE,KAAK;MAAC,CAAG,CAAC;IAE1D,KAAK,gBAAgB;MACnB,oBACE,IAAAxC,WAAA,CAAAsI,GAAA,EAAC3I,KAAA,CAAA0O,YAAY;QACXhC,OAAO,EAAE9J,IAAI,CAAC8J,OAAO,IAAI,KAAM;QAC/BzG,KAAK,EAAEF,UAAU,EAAE4I,cAAe;QAAA9L,QAAA,EAEjC0H,cAAc,CAAC3H,IAAI,CAACC,QAAQ,EAAE,IAAI,EAAE,KAAK;MAAC,CAC/B,CAAC;IAGnB,KAAK,OAAO;MACV,oBACE,IAAAxC,WAAA,CAAAsI,GAAA,EAACxI,MAAA,CAAAyO,aAAa;QACZhM,IAAI,EAAEA,IAAK;QACXkJ,QAAQ,EAAElD,YAAa;QACvB3C,KAAK,EAAEF,UAAU,EAAE8I;MAAM,CAC1B,CAAC;IAGN,KAAK,YAAY;IACjB,KAAK,YAAY;IACjB,KAAK,WAAW;IAChB,KAAK,YAAY;MACf,OAAO,IAAI;IAEb;MACE,OAAO,IAAI;EACf;AACF,CAAC;AAED,MAAMjG,YAAY,gBAAG,IAAAkG,WAAI,EAAC1E,qBAAqB,EAAE,CAAC2E,aAAa,EAAEC,SAAS,KAAK;EAC7E,OACED,aAAa,CAACnM,IAAI,KAAKoM,SAAS,CAACpM,IAAI,IACrCmM,aAAa,CAAClG,KAAK,KAAKmG,SAAS,CAACnG,KAAK,IACvCkG,aAAa,CAACjG,UAAU,KAAKkG,SAAS,CAAClG,UAAU,IACjDiG,aAAa,CAAC1E,YAAY,KAAK2E,SAAS,CAAC3E,YAAY;AAEzD,CAAC,CAA0B;AAI3B,MAAMvC,aAAa,GAAIlC,KAAoB,IAAiB;EAC1D,MAAMqJ,MAAM,GAAGrN,eAAe,CAACU,GAAG,CAACsD,KAAK,CAAC;EACzC,IAAIqJ,MAAM,EAAE,OAAOA,MAAM;EAEzB,MAAMC,OAAO,GAAGC,gBAAgB,CAACvJ,KAAK,CAAC;EACvChE,eAAe,CAACkC,GAAG,CAAC8B,KAAK,EAAEsJ,OAAO,CAAC;EACnC,OAAOA,OAAO;AAChB,CAAC;AAED,MAAMC,gBAAgB,GAAIvJ,KAAoB,IAC5CwJ,uBAAU,CAACC,MAAM,CAAC;EAChBrG,SAAS,EAAE;IACTsG,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,MAAM;IAChBnE,UAAU,EAAE;EACd,CAAC;EACD5B,eAAe,EAAE;IACfgG,IAAI,EAAE;EACR,CAAC;EACD5C,QAAQ,EAAE;IACR0C,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,MAAM;IAChBnE,UAAU,EAAE;EACd,CAAC;EACDlC,SAAS,EAAE;IACTuG,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE/J,KAAK,CAACgK,YAAY,CAACC,IAAI,IAAI,WAAW;IAClD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;MAAEC,kBAAkB,EAAE;IAAM,CAAC;EAChE,CAAC;EACDzM,IAAI,EAAE;IACJkM,KAAK,EAAE7J,KAAK,CAACqK,MAAM,CAAC1M,IAAI;IACxBmM,QAAQ,EAAE9J,KAAK,CAACsK,SAAS,CAACC,CAAC;IAC3BC,UAAU,EAAExK,KAAK,CAACsK,SAAS,CAACC,CAAC,GAAG,GAAG;IACnCR,UAAU,EAAE/J,KAAK,CAACgK,YAAY,CAACS,OAAO;IACtC,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;MAAEC,kBAAkB,EAAE;IAAM,CAAC;EAChE,CAAC;EACD/C,IAAI,EAAE;IACJqD,UAAU,EAAE,KAAK;IACjB,IAAIR,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;MAAEC,kBAAkB,EAAE;IAAM,CAAC;EAChE,CAAC;EACD9C,MAAM,EAAE;IACNqD,SAAS,EAAE,QAAQ;IACnB,IAAIT,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;MAAEC,kBAAkB,EAAE;IAAM,CAAC;EAChE,CAAC;EACD7C,aAAa,EAAE;IACbqD,kBAAkB,EAAE,cAAc;IAClC,IAAIV,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;MAAEC,kBAAkB,EAAE;IAAM,CAAC;EAChE;AACF,CAAC,CAAC","ignoreList":[]}
@@ -9,46 +9,21 @@ var _reactNative = require("react-native");
9
9
  var _styleCache = require("./style-cache.js");
10
10
  var _MarkdownContext = require("../MarkdownContext.js");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
- let MathJaxComponent = null;
13
- let SvgFromXmlComponent = null;
14
- let texToSvg = null;
12
+ let RaTeXViewComponent = null;
15
13
  try {
16
14
  // eslint-disable-next-line @typescript-eslint/no-require-imports
17
- const mathJaxModule = require("react-native-mathjax-svg");
18
- MathJaxComponent = mathJaxModule.default || mathJaxModule;
19
- texToSvg = mathJaxModule.texToSvg ?? null;
20
- // eslint-disable-next-line @typescript-eslint/no-require-imports
21
- SvgFromXmlComponent = require("react-native-svg").SvgFromXml;
15
+ const ratexModule = require("ratex-react-native");
16
+ RaTeXViewComponent = ratexModule.RaTeXView ?? null;
22
17
  } catch {
23
18
  if (__DEV__) {
24
19
  // eslint-disable-next-line no-console
25
- console.warn("[NitroMarkdown] react-native-mathjax-svg not found — math will render as plain text.");
20
+ console.warn("[NitroMarkdown] ratex-react-native not found — math will render as plain text.");
26
21
  }
27
22
  }
28
23
  const mathStylesCache = new WeakMap();
29
- const SVG_WIDTH_PATTERN = /<svg[^>]*\bwidth="([\d.]+)(?:ex|px)"/i;
30
- const SVG_HEIGHT_PATTERN = /<svg[^>]*\bheight="([\d.]+)(?:ex|px)"/i;
31
- function colorizeSvg(svg, color) {
32
- return color ? svg.replace(/currentColor/gim, color) : svg;
33
- }
34
- function createMathSvg(content, fontSize, color) {
35
- if (!texToSvg) return null;
36
- try {
37
- const xml = colorizeSvg(texToSvg(content, fontSize / 2), color);
38
- const widthMatch = SVG_WIDTH_PATTERN.exec(xml);
39
- const heightMatch = SVG_HEIGHT_PATTERN.exec(xml);
40
- if (!widthMatch || !heightMatch) return null;
41
- const width = Number.parseFloat(widthMatch[1]);
42
- const height = Number.parseFloat(heightMatch[1]);
43
- if (!Number.isFinite(width) || !Number.isFinite(height)) return null;
44
- return {
45
- xml,
46
- width,
47
- height
48
- };
49
- } catch {
50
- return null;
51
- }
24
+ const INLINE_DISPLAY_MATH_PATTERN = /\\(?:frac|dfrac|tfrac|sqrt|sum|prod|int|lim|begin|matrix|pmatrix|bmatrix|cases)\b/;
25
+ function getInlineMathFontSize(content, theme) {
26
+ return INLINE_DISPLAY_MATH_PATTERN.test(content) ? theme.fontSizes.xl + 2 : theme.fontSizes.l;
52
27
  }
53
28
  const HorizontalMathViewport = ({
54
29
  children,
@@ -147,6 +122,10 @@ const createMathStyles = theme => _reactNative.StyleSheet.create({
147
122
  includeFontPadding: false
148
123
  })
149
124
  },
125
+ ratexInline: {
126
+ backgroundColor: "transparent",
127
+ flexShrink: 0
128
+ },
150
129
  mathBlockContainer: {
151
130
  width: "100%",
152
131
  maxWidth: "100%",
@@ -158,7 +137,6 @@ const createMathStyles = theme => _reactNative.StyleSheet.create({
158
137
  borderRadius: theme.borderRadius.l,
159
138
  borderWidth: 1,
160
139
  borderColor: theme.colors.border,
161
- // Ensure we don't collapse if MathJax fails to report size immediately
162
140
  minHeight: 48,
163
141
  overflow: "hidden"
164
142
  },
@@ -173,10 +151,8 @@ const createMathStyles = theme => _reactNative.StyleSheet.create({
173
151
  alignItems: "center",
174
152
  justifyContent: "center"
175
153
  },
176
- mathBlockSvg: {
177
- backgroundColor: "transparent"
178
- },
179
- mathBlockSvgFrame: {
154
+ ratexBlock: {
155
+ backgroundColor: "transparent",
180
156
  flexShrink: 0
181
157
  },
182
158
  mathBlockFallbackContainer: {
@@ -214,19 +190,20 @@ const MathInline = ({
214
190
  theme
215
191
  } = (0, _MarkdownContext.useMarkdownContext)();
216
192
  const styles = (0, _styleCache.getCachedStyles)(mathStylesCache, theme, createMathStyles);
193
+ const [hasRenderError, setHasRenderError] = (0, _react.useState)(false);
217
194
  if (!content) return null;
218
- if (MathJaxComponent) {
219
- const fontSize = theme.fontSizes.s;
195
+ if (RaTeXViewComponent && !hasRenderError) {
220
196
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
221
197
  style: [styles.mathInlineContainer, style],
222
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MathJaxComponent, {
223
- fontSize: fontSize,
198
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(RaTeXViewComponent, {
199
+ latex: content,
200
+ fontSize: getInlineMathFontSize(content, theme),
201
+ displayMode: false,
224
202
  color: theme.colors.text,
225
- fontCache: false,
226
- style: {
227
- backgroundColor: "transparent"
228
- },
229
- children: content
203
+ style: styles.ratexInline,
204
+ onError: () => {
205
+ setHasRenderError(true);
206
+ }
230
207
  })
231
208
  });
232
209
  }
@@ -247,45 +224,23 @@ const MathBlock = ({
247
224
  theme
248
225
  } = (0, _MarkdownContext.useMarkdownContext)();
249
226
  const styles = (0, _styleCache.getCachedStyles)(mathStylesCache, theme, createMathStyles);
227
+ const [hasRenderError, setHasRenderError] = (0, _react.useState)(false);
250
228
  if (!content) return null;
251
- const displayContent = `\\displaystyle ${content}`;
252
- const blockSvg = SvgFromXmlComponent && createMathSvg(displayContent, theme.fontSizes.l, theme.colors.text);
253
- if (blockSvg && SvgFromXmlComponent) {
254
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
255
- style: [styles.mathBlockContainer, style],
256
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(HorizontalMathViewport, {
257
- style: styles.mathBlockScroll,
258
- contentStyle: styles.mathBlockScrollContent,
259
- contentWidth: blockSvg.width,
260
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
261
- style: [styles.mathBlockSvgFrame, {
262
- width: blockSvg.width,
263
- height: blockSvg.height
264
- }],
265
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SvgFromXmlComponent, {
266
- xml: blockSvg.xml,
267
- width: blockSvg.width,
268
- height: blockSvg.height,
269
- style: styles.mathBlockSvg
270
- })
271
- })
272
- })
273
- });
274
- }
275
- if (MathJaxComponent) {
229
+ if (RaTeXViewComponent && !hasRenderError) {
276
230
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
277
231
  style: [styles.mathBlockContainer, style],
278
232
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(HorizontalMathViewport, {
279
233
  style: styles.mathBlockScroll,
280
234
  contentStyle: styles.mathBlockScrollContent,
281
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MathJaxComponent, {
282
- fontSize: theme.fontSizes.l,
235
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(RaTeXViewComponent, {
236
+ latex: content,
237
+ fontSize: theme.fontSizes.xl,
238
+ displayMode: true,
283
239
  color: theme.colors.text,
284
- fontCache: false,
285
- style: {
286
- backgroundColor: "transparent"
287
- },
288
- children: displayContent
240
+ style: styles.ratexBlock,
241
+ onError: () => {
242
+ setHasRenderError(true);
243
+ }
289
244
  })
290
245
  })
291
246
  });