kline-orderbook-chart 0.2.19 → 1.0.0

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,85 @@
1
+ # Changelog
2
+
3
+ All notable changes to `kline-orderbook-chart` are documented here.
4
+ This project follows [Semantic Versioning](https://semver.org/).
5
+
6
+ ---
7
+
8
+ ## 1.0.0 — Security release (breaking change)
9
+
10
+ > **All `0.x` versions are deprecated and contain a critical license-validation flaw. Please upgrade.**
11
+
12
+ ### Why this release exists
13
+
14
+ Versions `0.x` shipped a license layer based on **HMAC**, a symmetric-key
15
+ algorithm. The signing secret had to be embedded in the published bundle so
16
+ that the browser could verify keys offline — meaning anyone who installed the
17
+ package could extract the secret and self-issue an unrestricted license.
18
+ This was a fundamental design flaw, not a bug in any single line of code.
19
+
20
+ `1.0.0` replaces the entire license layer with **Ed25519** (asymmetric):
21
+
22
+ - Private key lives only on our license server.
23
+ - Public key is embedded in the bundle (and is, by design, public).
24
+ - An attacker reading the bundle can verify tokens but cannot forge them.
25
+
26
+ If you have a valid `0.x` license key, **it will not validate against
27
+ `1.0.0`** — please contact us to receive a replacement Ed25519 token.
28
+
29
+ ### Breaking changes
30
+
31
+ - **Removed export `generateLicenseKey`.**
32
+ Tokens are now issued by our backend; client-side issuance is impossible by
33
+ design. Any code that called `generateLicenseKey(...)` must be removed.
34
+
35
+ - **`createChartBridge(canvas, opts)` is fully asynchronous.**
36
+ It already returned a `Promise`, but the internal `validateLicense` step
37
+ is now `async` (uses WebCrypto). No change is needed in code that already
38
+ used `await createChartBridge(...)`.
39
+
40
+ - **`chart.setLicenseKey(token)` is now async.**
41
+ It returns a `Promise<{ valid, plan, … }>`. Callers must `await` it.
42
+
43
+ - **License key format changed.** Old keys looked like
44
+ `eyJwIjoiZW50ZXJwcmlzZSIs…` (one base64 segment).
45
+ New keys are JWS-compact: `<headerB64>.<payloadB64>.<signatureB64>` —
46
+ three segments separated by dots. Any code that pattern-matches the old
47
+ format (e.g. for storage) needs updating.
48
+
49
+ - **WebCrypto requirement.** Verification uses
50
+ `crypto.subtle.verify('Ed25519', …)`. Supported on Chrome 114+, Firefox 130+,
51
+ Safari 17+, Edge 114+, and all modern Node 19+. Older targets are not
52
+ supported by `1.0.0`.
53
+
54
+ ### Non-breaking changes
55
+
56
+ - Trial mode (`licenseKey: 'trial'` or omitted) still works — 14 days,
57
+ watermarked, multi-store integrity-sealed; same UX as before.
58
+ - All chart APIs (`setKlines`, `enableVolume`, `start`, drawings, footprint,
59
+ heatmap, custom indicators) are byte-identical to `0.2.20`.
60
+ - WASM binary is unchanged from `0.2.20`.
61
+
62
+ ### Action for existing customers
63
+
64
+ 1. `npm uninstall kline-orderbook-chart`
65
+ 2. `npm install kline-orderbook-chart@1.0.0`
66
+ 3. Email <support@mrd-indicators.com> with your previous license key for
67
+ a free replacement Ed25519 token (same plan, same expiry).
68
+ 4. Update any `generateLicenseKey` calls — there should be none in
69
+ production code; they were only ever used during evaluation.
70
+ 5. If you call `chart.setLicenseKey(...)`, add `await`.
71
+
72
+ ### Security advisory
73
+
74
+ We strongly recommend treating any system that consumed `kline-orderbook-chart@0.x`
75
+ as having effectively no license enforcement: an attacker with that bundle
76
+ could have minted a valid-looking `enterprise` token offline. The new release
77
+ closes this loophole.
78
+
79
+ ---
80
+
81
+ ## 0.2.x
82
+
83
+ Frozen. No further releases. See `1.0.0` security advisory above for the
84
+ reason. Existing source-available demos in this repo continue to work in
85
+ trial mode.
package/README.md CHANGED
@@ -28,6 +28,14 @@
28
28
 
29
29
  ---
30
30
 
31
+ > **Upgrading from `0.x`?** `1.0.0` replaces the license layer with Ed25519
32
+ > for security reasons — old keys do not validate. See [CHANGELOG.md](./CHANGELOG.md)
33
+ > for the migration steps. If you are on a paid plan, email
34
+ > <support@mrd-indicators.com> with your previous key for a free replacement
35
+ > token (same plan, same expiry).
36
+
37
+ ---
38
+
31
39
  ## The problem
32
40
 
33
41
  You need a candlestick chart that also renders **real-time orderbook depth as a heatmap** behind the candles. You search for "orderbook heatmap chart library" or "kline heatmap javascript" — and find nothing. Every existing charting library gives you candles OR a heatmap, never both rendered together in a single performant canvas.
@@ -250,7 +258,9 @@ prefetchWasm()
250
258
  // Create chart
251
259
  const canvas = document.getElementById('chart')
252
260
  const chart = await createChartBridge(canvas, {
253
- licenseKey: 'YOUR_LICENSE_KEY', // omit for 14-day trial
261
+ // Ed25519-signed license token (JWS-compact: header.payload.signature).
262
+ // Omit, or pass 'trial', to run a 14-day watermarked trial.
263
+ licenseKey: 'YOUR_LICENSE_TOKEN',
254
264
  })
255
265
 
256
266
  // Load data (six separate arrays)
@@ -1 +1 @@
1
- class D{__destroy_into_raw(){const _=this.__mrd_ptr;return this.__mrd_ptr=0,C.unregister(this),_}free(){const _=this.__destroy_into_raw();t.__mrd_chartengine_free(_,0)}add_anchored_vwap(_,e,r,n,s,i,a){return t.chartengine_add_anchored_vwap(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_arrow(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_arrow(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_arrow_marker_down(_,e,r,n,s,i,a){return t.chartengine_add_arrow_marker_down(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_arrow_marker_up(_,e,r,n,s,i,a){return t.chartengine_add_arrow_marker_up(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_brush_point(_,e){t.chartengine_add_brush_point(this.__mrd_ptr,_,e)}add_circle(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_circle(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_elliott_impulse(_,e,r,n,s,i,a){return t.chartengine_add_elliott_impulse(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_elliott_manual_point(_,e){return t.chartengine_add_elliott_manual_point(this.__mrd_ptr,_,e)!==0}add_fib_extension(_,e,r,n,s,i,a,d,p,g,m,b){return t.chartengine_add_fib_extension(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b)>>>0}add_fib_retracement(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_fib_retracement(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_horizontal_line(_,e,r,n,s,i,a,d){return t.chartengine_add_horizontal_line(this.__mrd_ptr,_,e,r,n,s,i,a,d)>>>0}add_long_position(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_long_position(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_marker(_,e,r){t.chartengine_add_marker(this.__mrd_ptr,_,e,r)}add_parallel_channel(_,e,r,n,s,i,a,d,p,g,m,b){return t.chartengine_add_parallel_channel(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b)>>>0}add_path_point(_,e){t.chartengine_add_path_point(this.__mrd_ptr,_,e)}add_price_label(_,e,r,n,s,i,a){return t.chartengine_add_price_label(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_price_range(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_price_range(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_short_position(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_short_position(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}add_text_note(_,e,r,n,s,i,a){return t.chartengine_add_text_note(this.__mrd_ptr,_,e,r,n,s,i,a)>>>0}add_trendline(_,e,r,n,s,i,a,d,p,g){return t.chartengine_add_trendline(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g)>>>0}append_heatmap_column(_,e,r,n){const s=h(_,t.__wbindgen_export2),i=c;t.chartengine_append_heatmap_column(this.__mrd_ptr,s,i,e,r,n)}append_kline(_,e,r,n,s,i){t.chartengine_append_kline(this.__mrd_ptr,_,e,r,n,s,i)}append_real_timestamp(_){t.chartengine_append_real_timestamp(this.__mrd_ptr,_)}cancel_brush(){t.chartengine_cancel_brush(this.__mrd_ptr)}cancel_elliott_manual(){t.chartengine_cancel_elliott_manual(this.__mrd_ptr)}cancel_path(){t.chartengine_cancel_path(this.__mrd_ptr)}chart_area_h(){return t.chartengine_chart_area_h(this.__mrd_ptr)}chart_area_w(){return t.chartengine_chart_area_w(this.__mrd_ptr)}chart_area_x(){return t.chartengine_chart_area_x(this.__mrd_ptr)}chart_area_y(){return t.chartengine_chart_area_y(this.__mrd_ptr)}clear_channel_preview(){t.chartengine_clear_channel_preview(this.__mrd_ptr)}clear_drawing_preview(){t.chartengine_clear_drawing_preview(this.__mrd_ptr)}clear_drawings(){t.chartengine_clear_drawings(this.__mrd_ptr)}clear_elliott_preview(){t.chartengine_clear_elliott_preview(this.__mrd_ptr)}clear_fib_ext_preview(){t.chartengine_clear_fib_ext_preview(this.__mrd_ptr)}clear_heatmap_prefetch_range(){t.chartengine_clear_heatmap_prefetch_range(this.__mrd_ptr)}clear_hover_price(){t.chartengine_clear_hover_price(this.__mrd_ptr)}clear_large_trades(){t.chartengine_clear_large_trades(this.__mrd_ptr)}clear_live_signals(){t.chartengine_clear_live_signals(this.__mrd_ptr)}clear_markers(){t.chartengine_clear_markers(this.__mrd_ptr)}clear_ob_flow(){t.chartengine_clear_ob_flow(this.__mrd_ptr)}clear_ob_micro(){t.chartengine_clear_ob_micro(this.__mrd_ptr)}clear_ob_signals(){t.chartengine_clear_ob_signals(this.__mrd_ptr)}custom_band(_,e,r,n,s,i){const a=h(_,t.__wbindgen_export2),d=c,p=h(e,t.__wbindgen_export2),g=c;t.chartengine_custom_band(this.__mrd_ptr,a,d,p,g,r,n,s,i)}custom_begin(){t.chartengine_custom_begin(this.__mrd_ptr)}custom_circle_px(_,e,r,n,s,i,a,d,p,g,m,b){t.chartengine_custom_circle_px(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b)}custom_clip_rect(_,e,r,n){t.chartengine_custom_clip_rect(this.__mrd_ptr,_,e,r,n)}custom_command_count(){return t.chartengine_custom_command_count(this.__mrd_ptr)>>>0}custom_dashed_hline(_,e,r,n,s,i,a,d){t.chartengine_custom_dashed_hline(this.__mrd_ptr,_,e,r,n,s,i,a,d)}custom_end(){t.chartengine_custom_end(this.__mrd_ptr)}custom_fill_rect_px(_,e,r,n,s,i,a,d){t.chartengine_custom_fill_rect_px(this.__mrd_ptr,_,e,r,n,s,i,a,d)}custom_hline(_,e,r,n,s,i){t.chartengine_custom_hline(this.__mrd_ptr,_,e,r,n,s,i)}custom_line_px(_,e,r,n,s,i,a,d,p){t.chartengine_custom_line_px(this.__mrd_ptr,_,e,r,n,s,i,a,d,p)}custom_marker(_,e,r,n,s,i,a){t.chartengine_custom_marker(this.__mrd_ptr,_,e,r,n,s,i,a)}custom_marker_down(_,e,r,n,s,i,a){t.chartengine_custom_marker_down(this.__mrd_ptr,_,e,r,n,s,i,a)}custom_marker_up(_,e,r,n,s,i,a){t.chartengine_custom_marker_up(this.__mrd_ptr,_,e,r,n,s,i,a)}custom_price_label(_,e,r,n,s,i,a){const d=v(e,t.__wbindgen_export2,t.__wbindgen_export3),p=c;t.chartengine_custom_price_label(this.__mrd_ptr,_,d,p,r,n,s,i,a)}custom_restore(){t.chartengine_custom_restore(this.__mrd_ptr)}custom_save(){t.chartengine_custom_save(this.__mrd_ptr)}custom_series_dashed_line(_,e,r,n,s,i,a,d){const p=h(_,t.__wbindgen_export2),g=c;t.chartengine_custom_series_dashed_line(this.__mrd_ptr,p,g,e,r,n,s,i,a,d)}custom_series_line(_,e,r,n,s,i){const a=h(_,t.__wbindgen_export2),d=c;t.chartengine_custom_series_line(this.__mrd_ptr,a,d,e,r,n,s,i)}custom_stroke_rect_px(_,e,r,n,s,i,a,d,p){t.chartengine_custom_stroke_rect_px(this.__mrd_ptr,_,e,r,n,s,i,a,d,p)}custom_text(_,e,r,n,s,i,a,d,p){const g=v(r,t.__wbindgen_export2,t.__wbindgen_export3),m=c;t.chartengine_custom_text(this.__mrd_ptr,_,e,g,m,n,s,i,a,d,p)}custom_text_px(_,e,r,n,s,i,a,d,p){const g=v(r,t.__wbindgen_export2,t.__wbindgen_export3),m=c;t.chartengine_custom_text_px(this.__mrd_ptr,_,e,g,m,n,s,i,a,d,p)}delta_histogram_enabled(){return t.chartengine_delta_histogram_enabled(this.__mrd_ptr)!==0}deselect_drawing(){t.chartengine_deselect_drawing(this.__mrd_ptr)}deselect_marker(){t.chartengine_deselect_marker(this.__mrd_ptr)}disable_cvd(){t.chartengine_disable_cvd(this.__mrd_ptr)}disable_delta_histogram(){t.chartengine_disable_delta_histogram(this.__mrd_ptr)}disable_ema_structure(){t.chartengine_disable_ema_structure(this.__mrd_ptr)}disable_forex_signals(){t.chartengine_disable_forex_signals(this.__mrd_ptr)}disable_funding_rate(){t.chartengine_disable_funding_rate(this.__mrd_ptr)}disable_large_trades(){t.chartengine_disable_large_trades(this.__mrd_ptr)}disable_liq_heatmap(){t.chartengine_disable_liq_heatmap(this.__mrd_ptr)}disable_live_signals(){t.chartengine_disable_live_signals(this.__mrd_ptr)}disable_ob_flow(){t.chartengine_disable_ob_flow(this.__mrd_ptr)}disable_ob_micro(){t.chartengine_disable_ob_micro(this.__mrd_ptr)}disable_ob_signals(){t.chartengine_disable_ob_signals(this.__mrd_ptr)}disable_oi(){t.chartengine_disable_oi(this.__mrd_ptr)}disable_rsi(){t.chartengine_disable_rsi(this.__mrd_ptr)}disable_smart_ranges(){t.chartengine_disable_smart_ranges(this.__mrd_ptr)}disable_stop_iceberg(){t.chartengine_disable_stop_iceberg(this.__mrd_ptr)}disable_tpo(){t.chartengine_disable_tpo(this.__mrd_ptr)}disable_volume(){t.chartengine_disable_volume(this.__mrd_ptr)}disable_vpin(){t.chartengine_disable_vpin(this.__mrd_ptr)}disable_vrvp(){t.chartengine_disable_vrvp(this.__mrd_ptr)}drawing_count(){return t.chartengine_drawing_count(this.__mrd_ptr)>>>0}enable_cvd(){t.chartengine_enable_cvd(this.__mrd_ptr)}enable_delta_histogram(){t.chartengine_enable_delta_histogram(this.__mrd_ptr)}enable_ema_structure(){t.chartengine_enable_ema_structure(this.__mrd_ptr)}enable_forex_signals(){t.chartengine_enable_forex_signals(this.__mrd_ptr)}enable_funding_rate(){t.chartengine_enable_funding_rate(this.__mrd_ptr)}enable_large_trades(){t.chartengine_enable_large_trades(this.__mrd_ptr)}enable_liq_heatmap(){t.chartengine_enable_liq_heatmap(this.__mrd_ptr)}enable_live_signals(){t.chartengine_enable_live_signals(this.__mrd_ptr)}enable_ob_flow(){t.chartengine_enable_ob_flow(this.__mrd_ptr)}enable_ob_micro(){t.chartengine_enable_ob_micro(this.__mrd_ptr)}enable_ob_signals(){t.chartengine_enable_ob_signals(this.__mrd_ptr)}enable_oi(){t.chartengine_enable_oi(this.__mrd_ptr)}enable_rsi(){t.chartengine_enable_rsi(this.__mrd_ptr)}enable_smart_ranges(){t.chartengine_enable_smart_ranges(this.__mrd_ptr)}enable_stop_iceberg(){t.chartengine_enable_stop_iceberg(this.__mrd_ptr)}enable_tpo(){t.chartengine_enable_tpo(this.__mrd_ptr)}enable_volume(){t.chartengine_enable_volume(this.__mrd_ptr)}enable_vpin(){t.chartengine_enable_vpin(this.__mrd_ptr)}enable_vrvp(){t.chartengine_enable_vrvp(this.__mrd_ptr)}export_drawings_json(){let _,e;try{const s=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_export_drawings_json(s,this.__mrd_ptr);var r=l().getInt32(s+4*0,!0),n=l().getInt32(s+4*1,!0);return _=r,e=n,u(r,n)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(_,e,1)}}finish_brush(){return t.chartengine_finish_brush(this.__mrd_ptr)>>>0}finish_elliott_manual(){return t.chartengine_finish_elliott_manual(this.__mrd_ptr)>>>0}finish_path(){return t.chartengine_finish_path(this.__mrd_ptr)>>>0}fit_content(){t.chartengine_fit_content(this.__mrd_ptr)}footprint_add_trade(_,e,r,n){t.chartengine_footprint_add_trade(this.__mrd_ptr,_,e,r,n)}footprint_add_trade_batch(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_footprint_add_trade_batch(this.__mrd_ptr,e,r)}footprint_clear(){t.chartengine_footprint_clear(this.__mrd_ptr)}footprint_clear_bar(_){t.chartengine_footprint_clear_bar(this.__mrd_ptr,_)}footprint_ensure_len(_){t.chartengine_footprint_ensure_len(this.__mrd_ptr,_)}footprint_get_display_mode(){return t.chartengine_footprint_get_display_mode(this.__mrd_ptr)}footprint_get_show_profile(){return t.chartengine_footprint_get_show_profile(this.__mrd_ptr)!==0}footprint_get_show_signals(){return t.chartengine_footprint_get_show_signals(this.__mrd_ptr)!==0}footprint_prepend_empty(_){t.chartengine_footprint_prepend_empty(this.__mrd_ptr,_)}footprint_profile_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_footprint_profile_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}footprint_set_bar(_,e,r,n,s){const i=h(r,t.__wbindgen_export2),a=c,d=h(n,t.__wbindgen_export2),p=c,g=h(s,t.__wbindgen_export2),m=c;t.chartengine_footprint_set_bar(this.__mrd_ptr,_,e,i,a,d,p,g,m)}footprint_set_display_mode(_){t.chartengine_footprint_set_display_mode(this.__mrd_ptr,_)}footprint_set_show_profile(_){t.chartengine_footprint_set_show_profile(this.__mrd_ptr,_)}footprint_set_show_signals(_){t.chartengine_footprint_set_show_signals(this.__mrd_ptr,_)}footprint_signal_count(){return t.chartengine_footprint_signal_count(this.__mrd_ptr)>>>0}get_chart_type(){return t.chartengine_get_chart_type(this.__mrd_ptr)}get_command_buffer_len(){return t.chartengine_get_command_buffer_len(this.__mrd_ptr)>>>0}get_command_buffer_ptr(){return t.chartengine_get_command_buffer_ptr(this.__mrd_ptr)>>>0}get_custom_buffer_len(){return t.chartengine_get_custom_buffer_len(this.__mrd_ptr)>>>0}get_custom_buffer_ptr(){return t.chartengine_get_custom_buffer_ptr(this.__mrd_ptr)>>>0}get_cvd_mode(){return t.chartengine_get_cvd_mode(this.__mrd_ptr)}get_cvd_ratio(){return t.chartengine_get_cvd_ratio(this.__mrd_ptr)}get_cvd_show_delta(){return t.chartengine_get_cvd_show_delta(this.__mrd_ptr)!==0}get_cvd_show_divergence(){return t.chartengine_get_cvd_show_divergence(this.__mrd_ptr)!==0}get_cvd_show_signals(){return t.chartengine_get_cvd_show_signals(this.__mrd_ptr)!==0}get_cvd_source(){return t.chartengine_get_cvd_source(this.__mrd_ptr)}get_drawing_color(_){return t.chartengine_get_drawing_color(this.__mrd_ptr,_)>>>0}get_drawing_dashed(_){return t.chartengine_get_drawing_dashed(this.__mrd_ptr,_)!==0}get_drawing_font_size(_){return t.chartengine_get_drawing_font_size(this.__mrd_ptr,_)}get_drawing_hide_label(_){return t.chartengine_get_drawing_hide_label(this.__mrd_ptr,_)!==0}get_drawing_kind_id(_){return t.chartengine_get_drawing_kind_id(this.__mrd_ptr,_)}get_drawing_text(_){let e,r;try{const i=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_get_drawing_text(i,this.__mrd_ptr,_);var n=l().getInt32(i+4*0,!0),s=l().getInt32(i+4*1,!0);return e=n,r=s,u(n,s)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(e,r,1)}}get_font_size(){return t.chartengine_get_font_size(this.__mrd_ptr)}get_forex_signals_count(){return t.chartengine_get_forex_signals_count(this.__mrd_ptr)>>>0}get_fr_ratio(){return t.chartengine_get_fr_ratio(this.__mrd_ptr)}get_heatmap_data_max(){return t.chartengine_get_heatmap_data_max(this.__mrd_ptr)}get_heatmap_data_min(){return t.chartengine_get_heatmap_data_min(this.__mrd_ptr)}get_heatmap_last_timestamp(){return t.chartengine_get_heatmap_last_timestamp(this.__mrd_ptr)}get_heatmap_prefetch_max(){return t.chartengine_get_heatmap_prefetch_max(this.__mrd_ptr)}get_heatmap_x_step(){return t.chartengine_get_heatmap_x_step(this.__mrd_ptr)}get_iceberg_count(){return t.chartengine_get_iceberg_count(this.__mrd_ptr)>>>0}get_last_candle_json(){let _,e;try{const s=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_get_last_candle_json(s,this.__mrd_ptr);var r=l().getInt32(s+4*0,!0),n=l().getInt32(s+4*1,!0);return _=r,e=n,u(r,n)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(_,e,1)}}get_last_close(){return t.chartengine_get_last_close(this.__mrd_ptr)}get_liq_heatmap_cell_height(){return t.chartengine_get_liq_heatmap_cell_height(this.__mrd_ptr)}get_liq_heatmap_filled_pct(){return t.chartengine_get_liq_heatmap_filled_pct(this.__mrd_ptr)}get_liq_heatmap_max(){return t.chartengine_get_liq_heatmap_max(this.__mrd_ptr)}get_liq_heatmap_min(){return t.chartengine_get_liq_heatmap_min(this.__mrd_ptr)}get_liq_heatmap_seg_max(){return t.chartengine_get_liq_heatmap_seg_max(this.__mrd_ptr)}get_live_signals_count(){return t.chartengine_get_live_signals_count(this.__mrd_ptr)>>>0}get_live_signals_leverage(){return t.chartengine_get_live_signals_leverage(this.__mrd_ptr)}get_lt_data_max_vol(){return t.chartengine_get_lt_data_max_vol(this.__mrd_ptr)}get_lt_data_min_vol(){return t.chartengine_get_lt_data_min_vol(this.__mrd_ptr)}get_obf_ratio(){return t.chartengine_get_obf_ratio(this.__mrd_ptr)}get_oi_ratio(){return t.chartengine_get_oi_ratio(this.__mrd_ptr)}get_rsi_ratio(){return t.chartengine_get_rsi_ratio(this.__mrd_ptr)}get_selected_drawing(){return t.chartengine_get_selected_drawing(this.__mrd_ptr)>>>0}get_selected_marker(){return t.chartengine_get_selected_marker(this.__mrd_ptr)>>>0}get_sr_signals_count(){return t.chartengine_get_sr_signals_count(this.__mrd_ptr)>>>0}get_stop_run_count(){return t.chartengine_get_stop_run_count(this.__mrd_ptr)>>>0}get_theme(){return t.chartengine_get_theme(this.__mrd_ptr)}get_tooltip_data(){let _,e;try{const s=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_get_tooltip_data(s,this.__mrd_ptr);var r=l().getInt32(s+4*0,!0),n=l().getInt32(s+4*1,!0);return _=r,e=n,u(r,n)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(_,e,1)}}get_tpo_period(){return t.chartengine_get_tpo_period(this.__mrd_ptr)>>>0}get_volume_color_mode(){return t.chartengine_get_volume_color_mode(this.__mrd_ptr)}get_volume_ma_period(){return t.chartengine_get_volume_ma_period(this.__mrd_ptr)>>>0}get_volume_show_ma(){return t.chartengine_get_volume_show_ma(this.__mrd_ptr)!==0}get_volume_show_signals(){return t.chartengine_get_volume_show_signals(this.__mrd_ptr)!==0}get_vpin_bucket_size(){return t.chartengine_get_vpin_bucket_size(this.__mrd_ptr)>>>0}get_vpin_num_buckets(){return t.chartengine_get_vpin_num_buckets(this.__mrd_ptr)>>>0}get_vpin_ratio(){return t.chartengine_get_vpin_ratio(this.__mrd_ptr)}get_vpin_threshold(){return t.chartengine_get_vpin_threshold(this.__mrd_ptr)}hide_crosshair(){t.chartengine_hide_crosshair(this.__mrd_ptr)}hit_test_drawing(_,e){return t.chartengine_hit_test_drawing(this.__mrd_ptr,_,e)>>>0}hit_test_drawing_anchor(_,e){return t.chartengine_hit_test_drawing_anchor(this.__mrd_ptr,_,e)}hit_test_marker(_,e){return t.chartengine_hit_test_marker(this.__mrd_ptr,_,e)>>>0}hit_zone(_,e){return t.chartengine_hit_zone(this.__mrd_ptr,_,e)}hover_hit_test(_,e){try{const i=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_hover_hit_test(i,this.__mrd_ptr,_,e);var r=l().getInt32(i+4*0,!0),n=l().getInt32(i+4*1,!0),s=G(r,n).slice();return t.__wbindgen_export(r,n*4,4),s}finally{t.__wbindgen_add_to_stack_pointer(16)}}import_drawings_json(_){const e=v(_,t.__wbindgen_export2,t.__wbindgen_export3),r=c;t.chartengine_import_drawings_json(this.__mrd_ptr,e,r)}is_cvd_enabled(){return t.chartengine_is_cvd_enabled(this.__mrd_ptr)!==0}is_dirty(){return t.chartengine_is_dirty(this.__mrd_ptr)!==0}is_ema_structure_enabled(){return t.chartengine_is_ema_structure_enabled(this.__mrd_ptr)!==0}is_forex_signals_enabled(){return t.chartengine_is_forex_signals_enabled(this.__mrd_ptr)!==0}is_funding_rate_enabled(){return t.chartengine_is_funding_rate_enabled(this.__mrd_ptr)!==0}is_large_trades_enabled(){return t.chartengine_is_large_trades_enabled(this.__mrd_ptr)!==0}is_liq_heatmap_enabled(){return t.chartengine_is_liq_heatmap_enabled(this.__mrd_ptr)!==0}is_liq_heatmap_filled_zones(){return t.chartengine_is_liq_heatmap_filled_zones(this.__mrd_ptr)!==0}is_liq_heatmap_predictions(){return t.chartengine_is_liq_heatmap_predictions(this.__mrd_ptr)!==0}is_liq_heatmap_profile(){return t.chartengine_is_liq_heatmap_profile(this.__mrd_ptr)!==0}is_live_signals_enabled(){return t.chartengine_is_live_signals_enabled(this.__mrd_ptr)!==0}is_ob_flow_enabled(){return t.chartengine_is_ob_flow_enabled(this.__mrd_ptr)!==0}is_ob_micro_enabled(){return t.chartengine_is_ob_micro_enabled(this.__mrd_ptr)!==0}is_ob_signals_enabled(){return t.chartengine_is_ob_signals_enabled(this.__mrd_ptr)!==0}is_oi_enabled(){return t.chartengine_is_oi_enabled(this.__mrd_ptr)!==0}is_rsi_enabled(){return t.chartengine_is_rsi_enabled(this.__mrd_ptr)!==0}is_rsi_show_traps(){return t.chartengine_is_rsi_show_traps(this.__mrd_ptr)!==0}is_smart_ranges_enabled(){return t.chartengine_is_smart_ranges_enabled(this.__mrd_ptr)!==0}is_stop_iceberg_enabled(){return t.chartengine_is_stop_iceberg_enabled(this.__mrd_ptr)!==0}is_tpo_enabled(){return t.chartengine_is_tpo_enabled(this.__mrd_ptr)!==0}is_tpo_signals(){return t.chartengine_is_tpo_signals(this.__mrd_ptr)!==0}is_volume_enabled(){return t.chartengine_is_volume_enabled(this.__mrd_ptr)!==0}is_vpin_enabled(){return t.chartengine_is_vpin_enabled(this.__mrd_ptr)!==0}is_vrvp_enabled(){return t.chartengine_is_vrvp_enabled(this.__mrd_ptr)!==0}kline_closes(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_closes(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}kline_count(){return t.chartengine_kline_count(this.__mrd_ptr)>>>0}kline_highs(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_highs(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}kline_lows(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_lows(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}kline_opens(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_opens(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}kline_timestamps(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_timestamps(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}kline_volumes(){try{const n=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_kline_volumes(n,this.__mrd_ptr);var _=l().getInt32(n+4*0,!0),e=l().getInt32(n+4*1,!0),r=x(_,e).slice();return t.__wbindgen_export(_,e*8,8),r}finally{t.__wbindgen_add_to_stack_pointer(16)}}liq_filled_zone_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_liq_filled_zone_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}liq_heatmap_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_liq_heatmap_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}liq_predict_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_liq_predict_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}liq_zone_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_liq_zone_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}lt_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_lt_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}move_drawing(_,e){t.chartengine_move_drawing(this.__mrd_ptr,_,e)}constructor(_,e){const r=t.chartengine_new(_,e);return this.__mrd_ptr=r>>>0,C.register(this,this.__mrd_ptr,this),this}ob_flow_to_screen_y(_){return t.chartengine_ob_flow_to_screen_y(this.__mrd_ptr,_)}oi_to_screen_y(_){return t.chartengine_oi_to_screen_y(this.__mrd_ptr,_)}pan(_,e){t.chartengine_pan(this.__mrd_ptr,_,e)}pan_indicator_y(_,e){t.chartengine_pan_indicator_y(this.__mrd_ptr,_,e)}pan_x(_){t.chartengine_pan_x(this.__mrd_ptr,_)}pan_y(_){t.chartengine_pan_y(this.__mrd_ptr,_)}pop_last_kline(){return t.chartengine_pop_last_kline(this.__mrd_ptr)!==0}prepend_klines(_,e,r,n,s,i){const a=h(_,t.__wbindgen_export2),d=c,p=h(e,t.__wbindgen_export2),g=c,m=h(r,t.__wbindgen_export2),b=c,w=h(n,t.__wbindgen_export2),k=c,z=h(s,t.__wbindgen_export2),I=c,q=h(i,t.__wbindgen_export2),A=c;t.chartengine_prepend_klines(this.__mrd_ptr,a,d,p,g,m,b,w,k,z,I,q,A)}push_large_trade(_,e,r,n){t.chartengine_push_large_trade(this.__mrd_ptr,_,e,r,n)}push_obf_sample(_,e,r,n){t.chartengine_push_obf_sample(this.__mrd_ptr,_,e,r,n)}push_obs_alert(_,e,r,n,s){t.chartengine_push_obs_alert(this.__mrd_ptr,_,e,r,n,s)}remove_drawing(_){t.chartengine_remove_drawing(this.__mrd_ptr,_)}remove_marker(_){t.chartengine_remove_marker(this.__mrd_ptr,_)}render(){return t.chartengine_render(this.__mrd_ptr)>>>0}reset_indicator_y_auto(_){t.chartengine_reset_indicator_y_auto(this.__mrd_ptr,_)}resize(_,e){t.chartengine_resize(this.__mrd_ptr,_,e)}rsi_to_screen_y(_){return t.chartengine_rsi_to_screen_y(this.__mrd_ptr,_)}screen_to_cvd_y(_){return t.chartengine_screen_to_cvd_y(this.__mrd_ptr,_)}screen_to_fr_y(_){return t.chartengine_screen_to_fr_y(this.__mrd_ptr,_)}screen_to_ob_flow_y(_){return t.chartengine_screen_to_ob_flow_y(this.__mrd_ptr,_)}screen_to_oi_y(_){return t.chartengine_screen_to_oi_y(this.__mrd_ptr,_)}screen_to_rsi_y(_){return t.chartengine_screen_to_rsi_y(this.__mrd_ptr,_)}screen_to_vpin_y(_){return t.chartengine_screen_to_vpin_y(this.__mrd_ptr,_)}screen_to_world_x(_){return t.chartengine_screen_to_world_x(this.__mrd_ptr,_)}screen_to_world_y(_){return t.chartengine_screen_to_world_y(this.__mrd_ptr,_)}select_drawing(_){t.chartengine_select_drawing(this.__mrd_ptr,_)}select_marker(_){t.chartengine_select_marker(this.__mrd_ptr,_)}set_background_color(_,e,r){t.chartengine_set_background_color(this.__mrd_ptr,_,e,r)}set_bg_gradient(_,e,r,n){t.chartengine_set_bg_gradient(this.__mrd_ptr,_,e,r,n)}set_candle_bear_border_color(_,e,r){t.chartengine_set_candle_bear_border_color(this.__mrd_ptr,_,e,r)}set_candle_bear_color(_,e,r){t.chartengine_set_candle_bear_color(this.__mrd_ptr,_,e,r)}set_candle_bear_wick_color(_,e,r){t.chartengine_set_candle_bear_wick_color(this.__mrd_ptr,_,e,r)}set_candle_bull_border_color(_,e,r){t.chartengine_set_candle_bull_border_color(this.__mrd_ptr,_,e,r)}set_candle_bull_color(_,e,r){t.chartengine_set_candle_bull_color(this.__mrd_ptr,_,e,r)}set_candle_bull_wick_color(_,e,r){t.chartengine_set_candle_bull_wick_color(this.__mrd_ptr,_,e,r)}set_candle_interval(_){t.chartengine_set_candle_interval(this.__mrd_ptr,_)}set_channel_preview(_,e,r,n,s,i,a,d,p,g,m,b){t.chartengine_set_channel_preview(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b)}set_chart_type(_){t.chartengine_set_chart_type(this.__mrd_ptr,_)}set_crosshair(_,e){t.chartengine_set_crosshair(this.__mrd_ptr,_,e)}set_crosshair_color(_,e,r,n){t.chartengine_set_crosshair_color(this.__mrd_ptr,_,e,r,n)}set_crosshair_style(_){t.chartengine_set_crosshair_style(this.__mrd_ptr,_)}set_crosshair_width(_){t.chartengine_set_crosshair_width(this.__mrd_ptr,_)}set_cvd_data(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_cvd_data(this.__mrd_ptr,r,n,s,i)}set_cvd_mode(_){t.chartengine_set_cvd_mode(this.__mrd_ptr,_)}set_cvd_ratio(_){t.chartengine_set_cvd_ratio(this.__mrd_ptr,_)}set_cvd_show_delta(_){t.chartengine_set_cvd_show_delta(this.__mrd_ptr,_)}set_cvd_show_divergence(_){t.chartengine_set_cvd_show_divergence(this.__mrd_ptr,_)}set_cvd_show_signals(_){t.chartengine_set_cvd_show_signals(this.__mrd_ptr,_)}set_cvd_source(_){t.chartengine_set_cvd_source(this.__mrd_ptr,_)}set_cvd_spot_data(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_cvd_spot_data(this.__mrd_ptr,r,n,s,i)}set_drawing_dashed(_,e){t.chartengine_set_drawing_dashed(this.__mrd_ptr,_,e)}set_drawing_font_size(_,e){t.chartengine_set_drawing_font_size(this.__mrd_ptr,_,e)}set_drawing_hide_label(_,e){t.chartengine_set_drawing_hide_label(this.__mrd_ptr,_,e)}set_drawing_preview(_,e,r,n,s,i,a,d,p,g,m){t.chartengine_set_drawing_preview(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m)}set_drawing_style(_,e,r,n,s){t.chartengine_set_drawing_style(this.__mrd_ptr,_,e,r,n,s)}set_drawing_text(_,e){const r=v(e,t.__wbindgen_export2,t.__wbindgen_export3),n=c;t.chartengine_set_drawing_text(this.__mrd_ptr,_,r,n)}set_elliott_manual_cursor(_,e){t.chartengine_set_elliott_manual_cursor(this.__mrd_ptr,_,e)}set_elliott_preview(_,e,r,n,s,i,a){t.chartengine_set_elliott_preview(this.__mrd_ptr,_,e,r,n,s,i,a)}set_es_ema1_len(_){t.chartengine_set_es_ema1_len(this.__mrd_ptr,_)}set_es_ema2_len(_){t.chartengine_set_es_ema2_len(this.__mrd_ptr,_)}set_es_show_bos(_){t.chartengine_set_es_show_bos(this.__mrd_ptr,_)}set_es_show_ema1(_){t.chartengine_set_es_show_ema1(this.__mrd_ptr,_)}set_es_show_ema2(_){t.chartengine_set_es_show_ema2(this.__mrd_ptr,_)}set_es_show_wma(_){t.chartengine_set_es_show_wma(this.__mrd_ptr,_)}set_es_swing_len(_){t.chartengine_set_es_swing_len(this.__mrd_ptr,_)}set_es_wma_len(_){t.chartengine_set_es_wma_len(this.__mrd_ptr,_)}set_fib_ext_preview(_,e,r,n,s,i,a,d,p,g,m,b){t.chartengine_set_fib_ext_preview(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b)}set_font_size(_){t.chartengine_set_font_size(this.__mrd_ptr,_)}set_footprint_tick_size(_){t.chartengine_set_footprint_tick_size(this.__mrd_ptr,_)}set_forex_signals_mode(_){t.chartengine_set_forex_signals_mode(this.__mrd_ptr,_)}set_forex_signals_setup(_){t.chartengine_set_forex_signals_setup(this.__mrd_ptr,_)}set_forex_signals_show_stats(_){t.chartengine_set_forex_signals_show_stats(this.__mrd_ptr,_)}set_fr_agg_data(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_fr_agg_data(this.__mrd_ptr,r,n,s,i)}set_fr_binance_data(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_fr_binance_data(this.__mrd_ptr,r,n,s,i)}set_fr_ratio(_){t.chartengine_set_fr_ratio(this.__mrd_ptr,_)}set_fr_show_agg(_){t.chartengine_set_fr_show_agg(this.__mrd_ptr,_)}set_fr_show_sma(_){t.chartengine_set_fr_show_sma(this.__mrd_ptr,_)}set_grid_color(_,e,r,n){t.chartengine_set_grid_color(this.__mrd_ptr,_,e,r,n)}set_grid_h_visible(_){t.chartengine_set_grid_h_visible(this.__mrd_ptr,_)}set_grid_v_visible(_){t.chartengine_set_grid_v_visible(this.__mrd_ptr,_)}set_heatmap(_,e,r,n,s,i,a){const d=h(_,t.__wbindgen_export2),p=c;t.chartengine_set_heatmap(this.__mrd_ptr,d,p,e,r,n,s,i,a)}set_heatmap_color_scheme(_){t.chartengine_set_heatmap_color_scheme(this.__mrd_ptr,_)}set_heatmap_prefetch_range(_){t.chartengine_set_heatmap_prefetch_range(this.__mrd_ptr,_)}set_heatmap_range(_,e){t.chartengine_set_heatmap_range(this.__mrd_ptr,_,e)}set_hover_price(_){t.chartengine_set_hover_price(this.__mrd_ptr,_)}set_iceberg_events(_,e,r,n,s,i){const a=h(_,t.__wbindgen_export2),d=c,p=h(e,t.__wbindgen_export2),g=c,m=h(r,t.__wbindgen_export2),b=c,w=h(n,t.__wbindgen_export2),k=c,z=Z(s,t.__wbindgen_export2),I=c,q=Q(i,t.__wbindgen_export2),A=c;t.chartengine_set_iceberg_events(this.__mrd_ptr,a,d,p,g,m,b,w,k,z,I,q,A)}set_klines(_,e,r,n,s,i){const a=h(_,t.__wbindgen_export2),d=c,p=h(e,t.__wbindgen_export2),g=c,m=h(r,t.__wbindgen_export2),b=c,w=h(n,t.__wbindgen_export2),k=c,z=h(s,t.__wbindgen_export2),I=c,q=h(i,t.__wbindgen_export2),A=c;t.chartengine_set_klines(this.__mrd_ptr,a,d,p,g,m,b,w,k,z,I,q,A)}set_large_trades_data(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_set_large_trades_data(this.__mrd_ptr,e,r)}set_license_state(_,e,r){t.chartengine_set_license_state(this.__mrd_ptr,_,e,r)}set_liq_heatmap_cell_height(_){t.chartengine_set_liq_heatmap_cell_height(this.__mrd_ptr,_)}set_liq_heatmap_filled_pct(_){t.chartengine_set_liq_heatmap_filled_pct(this.__mrd_ptr,_)}set_liq_heatmap_filled_zones(_){t.chartengine_set_liq_heatmap_filled_zones(this.__mrd_ptr,_)}set_liq_heatmap_predictions(_){t.chartengine_set_liq_heatmap_predictions(this.__mrd_ptr,_)}set_liq_heatmap_profile(_){t.chartengine_set_liq_heatmap_profile(this.__mrd_ptr,_)}set_liq_heatmap_range(_,e){t.chartengine_set_liq_heatmap_range(this.__mrd_ptr,_,e)}set_live_signals_data(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_set_live_signals_data(this.__mrd_ptr,e,r)}set_live_signals_leverage(_){t.chartengine_set_live_signals_leverage(this.__mrd_ptr,_)}set_live_signals_loading(_){t.chartengine_set_live_signals_loading(this.__mrd_ptr,_)}set_live_signals_pip_value(_){t.chartengine_set_live_signals_pip_value(this.__mrd_ptr,_)}set_live_signals_show_entry(_){t.chartengine_set_live_signals_show_entry(this.__mrd_ptr,_)}set_live_signals_show_labels(_){t.chartengine_set_live_signals_show_labels(this.__mrd_ptr,_)}set_live_signals_show_max_profit(_){t.chartengine_set_live_signals_show_max_profit(this.__mrd_ptr,_)}set_live_signals_show_tp_sl(_){t.chartengine_set_live_signals_show_tp_sl(this.__mrd_ptr,_)}set_live_signals_show_zones(_){t.chartengine_set_live_signals_show_zones(this.__mrd_ptr,_)}set_live_signals_text_size(_){t.chartengine_set_live_signals_text_size(this.__mrd_ptr,_)}set_live_signals_trial(_){t.chartengine_set_live_signals_trial(this.__mrd_ptr,_)}set_lt_bubble_scale(_){t.chartengine_set_lt_bubble_scale(this.__mrd_ptr,_)}set_lt_volume_filter(_,e){t.chartengine_set_lt_volume_filter(this.__mrd_ptr,_,e)}set_obf_data(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_set_obf_data(this.__mrd_ptr,e,r)}set_obf_ratio(_){t.chartengine_set_obf_ratio(this.__mrd_ptr,_)}set_obf_show_cum_delta(_){t.chartengine_set_obf_show_cum_delta(this.__mrd_ptr,_)}set_obf_show_net_flow(_){t.chartengine_set_obf_show_net_flow(this.__mrd_ptr,_)}set_obf_show_obi(_){t.chartengine_set_obf_show_obi(this.__mrd_ptr,_)}set_obm_anchor_top_right(_){t.chartengine_set_obm_anchor_top_right(this.__mrd_ptr,_)}set_obm_data(_,e,r,n,s,i,a,d,p,g,m,b,w){t.chartengine_set_obm_data(this.__mrd_ptr,_,e,r,n,s,i,a,d,p,g,m,b,w)}set_obs_com(_){t.chartengine_set_obs_com(this.__mrd_ptr,_)}set_obs_gaps(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_obs_gaps(this.__mrd_ptr,r,n,s,i)}set_obs_show_alerts(_){t.chartengine_set_obs_show_alerts(this.__mrd_ptr,_)}set_obs_show_com(_){t.chartengine_set_obs_show_com(this.__mrd_ptr,_)}set_obs_show_gaps(_){t.chartengine_set_obs_show_gaps(this.__mrd_ptr,_)}set_obs_show_walls(_){t.chartengine_set_obs_show_walls(this.__mrd_ptr,_)}set_obs_walls(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_obs_walls(this.__mrd_ptr,r,n,s,i)}set_oi_data(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_set_oi_data(this.__mrd_ptr,e,r)}set_oi_data_ts(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_oi_data_ts(this.__mrd_ptr,r,n,s,i)}set_oi_display_mode(_){t.chartengine_set_oi_display_mode(this.__mrd_ptr,_)}set_oi_ratio(_){t.chartengine_set_oi_ratio(this.__mrd_ptr,_)}set_oi_show_on_chart(_){t.chartengine_set_oi_show_on_chart(this.__mrd_ptr,_)}set_path_cursor(_,e){t.chartengine_set_path_cursor(this.__mrd_ptr,_,e)}set_price_precision(_){t.chartengine_set_price_precision(this.__mrd_ptr,_)}set_real_timestamps(_){const e=h(_,t.__wbindgen_export2),r=c;t.chartengine_set_real_timestamps(this.__mrd_ptr,e,r)}set_replay_hovered(_){t.chartengine_set_replay_hovered(this.__mrd_ptr,_)}set_replay_preview(_){t.chartengine_set_replay_preview(this.__mrd_ptr,_)}set_replay_state(_,e,r){t.chartengine_set_replay_state(this.__mrd_ptr,_,e,r)}set_rsi_period(_){t.chartengine_set_rsi_period(this.__mrd_ptr,_)}set_rsi_ratio(_){t.chartengine_set_rsi_ratio(this.__mrd_ptr,_)}set_rsi_show_divergence(_){t.chartengine_set_rsi_show_divergence(this.__mrd_ptr,_)}set_rsi_show_ema(_){t.chartengine_set_rsi_show_ema(this.__mrd_ptr,_)}set_rsi_show_levels(_){t.chartengine_set_rsi_show_levels(this.__mrd_ptr,_)}set_rsi_show_signals(_){t.chartengine_set_rsi_show_signals(this.__mrd_ptr,_)}set_rsi_show_traps(_){t.chartengine_set_rsi_show_traps(this.__mrd_ptr,_)}set_rsi_show_wma(_){t.chartengine_set_rsi_show_wma(this.__mrd_ptr,_)}set_rsi_smoothing(_){t.chartengine_set_rsi_smoothing(this.__mrd_ptr,_)}set_si_show_icebergs(_){t.chartengine_set_si_show_icebergs(this.__mrd_ptr,_)}set_si_show_stops(_){t.chartengine_set_si_show_stops(this.__mrd_ptr,_)}set_si_show_zones(_){t.chartengine_set_si_show_zones(this.__mrd_ptr,_)}set_sr_fvg_extend(_){t.chartengine_set_sr_fvg_extend(this.__mrd_ptr,_)}set_sr_fvg_htf(_){t.chartengine_set_sr_fvg_htf(this.__mrd_ptr,_)}set_sr_fvg_mitigation(_){t.chartengine_set_sr_fvg_mitigation(this.__mrd_ptr,_)}set_sr_fvg_theme(_){t.chartengine_set_sr_fvg_theme(this.__mrd_ptr,_)}set_sr_htf_minutes(_){t.chartengine_set_sr_htf_minutes(this.__mrd_ptr,_)}set_sr_mitigation(_){t.chartengine_set_sr_mitigation(this.__mrd_ptr,_)}set_sr_ob_last(_){t.chartengine_set_sr_ob_last(this.__mrd_ptr,_)}set_sr_show_breakers(_){t.chartengine_set_sr_show_breakers(this.__mrd_ptr,_)}set_sr_show_fvg(_){t.chartengine_set_sr_show_fvg(this.__mrd_ptr,_)}set_sr_show_fvg_signals(_){t.chartengine_set_sr_show_fvg_signals(this.__mrd_ptr,_)}set_sr_show_htf_ob(_){t.chartengine_set_sr_show_htf_ob(this.__mrd_ptr,_)}set_sr_show_metrics(_){t.chartengine_set_sr_show_metrics(this.__mrd_ptr,_)}set_sr_show_ob(_){t.chartengine_set_sr_show_ob(this.__mrd_ptr,_)}set_sr_show_ob_activity(_){t.chartengine_set_sr_show_ob_activity(this.__mrd_ptr,_)}set_sr_show_ob_signals(_){t.chartengine_set_sr_show_ob_signals(this.__mrd_ptr,_)}set_sr_show_predict(_){t.chartengine_set_sr_show_predict(this.__mrd_ptr,_)}set_sr_show_smart_rev(_){t.chartengine_set_sr_show_smart_rev(this.__mrd_ptr,_)}set_sr_smart_rev_htf(_){t.chartengine_set_sr_smart_rev_htf(this.__mrd_ptr,_)}set_sr_stats_position(_){t.chartengine_set_sr_stats_position(this.__mrd_ptr,_)}set_sr_stats_type(_){t.chartengine_set_sr_stats_type(this.__mrd_ptr,_)}set_sr_text_size(_){t.chartengine_set_sr_text_size(this.__mrd_ptr,_)}set_theme(_){t.chartengine_set_theme(this.__mrd_ptr,_)}set_touch_mode(_){t.chartengine_set_touch_mode(this.__mrd_ptr,_)}set_tpo_ib(_){t.chartengine_set_tpo_ib(this.__mrd_ptr,_)}set_tpo_ib_minutes(_){t.chartengine_set_tpo_ib_minutes(this.__mrd_ptr,_)}set_tpo_letter_minutes(_){t.chartengine_set_tpo_letter_minutes(this.__mrd_ptr,_)}set_tpo_naked_poc(_){t.chartengine_set_tpo_naked_poc(this.__mrd_ptr,_)}set_tpo_period(_){t.chartengine_set_tpo_period(this.__mrd_ptr,_)}set_tpo_poc_line(_){t.chartengine_set_tpo_poc_line(this.__mrd_ptr,_)}set_tpo_profile_shape(_){t.chartengine_set_tpo_profile_shape(this.__mrd_ptr,_)}set_tpo_signals(_){t.chartengine_set_tpo_signals(this.__mrd_ptr,_)}set_tpo_single_prints(_){t.chartengine_set_tpo_single_prints(this.__mrd_ptr,_)}set_tpo_va_lines(_){t.chartengine_set_tpo_va_lines(this.__mrd_ptr,_)}set_volume_color_mode(_){t.chartengine_set_volume_color_mode(this.__mrd_ptr,_)}set_volume_ma_period(_){t.chartengine_set_volume_ma_period(this.__mrd_ptr,_)}set_volume_show_ma(_){t.chartengine_set_volume_show_ma(this.__mrd_ptr,_)}set_volume_show_signals(_){t.chartengine_set_volume_show_signals(this.__mrd_ptr,_)}set_vpin_bucket_size(_){t.chartengine_set_vpin_bucket_size(this.__mrd_ptr,_)}set_vpin_data(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.chartengine_set_vpin_data(this.__mrd_ptr,r,n,s,i)}set_vpin_num_buckets(_){t.chartengine_set_vpin_num_buckets(this.__mrd_ptr,_)}set_vpin_ratio(_){t.chartengine_set_vpin_ratio(this.__mrd_ptr,_)}set_vpin_show_sma(_){t.chartengine_set_vpin_show_sma(this.__mrd_ptr,_)}set_vpin_show_zones(_){t.chartengine_set_vpin_show_zones(this.__mrd_ptr,_)}set_vpin_threshold(_){t.chartengine_set_vpin_threshold(this.__mrd_ptr,_)}set_vrvp_poc_line(_){t.chartengine_set_vrvp_poc_line(this.__mrd_ptr,_)}show_latest(_){t.chartengine_show_latest(this.__mrd_ptr,_)}start_brush(_,e,r,n,s){t.chartengine_start_brush(this.__mrd_ptr,_,e,r,n,s)}start_elliott_manual(_,e,r,n,s){t.chartengine_start_elliott_manual(this.__mrd_ptr,_,e,r,n,s)}start_path(_,e,r,n,s,i){t.chartengine_start_path(this.__mrd_ptr,_,e,r,n,s,i)}update_drawing_anchor(_,e,r){t.chartengine_update_drawing_anchor(this.__mrd_ptr,_,e,r)}update_heatmap_column(_,e){const r=h(e,t.__wbindgen_export2),n=c;t.chartengine_update_heatmap_column(this.__mrd_ptr,_,r,n)}update_heatmap_column_at(_,e,r,n){const s=h(_,t.__wbindgen_export2),i=c;t.chartengine_update_heatmap_column_at(this.__mrd_ptr,s,i,e,r,n)}update_last_heatmap_column(_,e,r){const n=h(_,t.__wbindgen_export2),s=c;t.chartengine_update_last_heatmap_column(this.__mrd_ptr,n,s,e,r)}update_last_kline(_,e,r,n,s,i){t.chartengine_update_last_kline(this.__mrd_ptr,_,e,r,n,s,i)}vpin_to_screen_y(_){return t.chartengine_vpin_to_screen_y(this.__mrd_ptr,_)}vrvp_hit_test(_,e){let r,n;try{const a=t.__wbindgen_add_to_stack_pointer(-16);t.chartengine_vrvp_hit_test(a,this.__mrd_ptr,_,e);var s=l().getInt32(a+4*0,!0),i=l().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{t.__wbindgen_add_to_stack_pointer(16),t.__wbindgen_export(r,n,1)}}world_to_screen_x(_){return t.chartengine_world_to_screen_x(this.__mrd_ptr,_)}world_to_screen_y(_){return t.chartengine_world_to_screen_y(this.__mrd_ptr,_)}zoom(_,e,r){t.chartengine_zoom(this.__mrd_ptr,_,e,r)}zoom_indicator_y(_,e,r){t.chartengine_zoom_indicator_y(this.__mrd_ptr,_,e,r)}zoom_x(_,e){t.chartengine_zoom_x(this.__mrd_ptr,_,e)}zoom_y(_,e){t.chartengine_zoom_y(this.__mrd_ptr,_,e)}}Symbol.dispose&&(D.prototype[Symbol.dispose]=D.prototype.free);class U{__destroy_into_raw(){const _=this.__mrd_ptr;return this.__mrd_ptr=0,B.unregister(this),_}free(){const _=this.__destroy_into_raw();t.__mrd_orderbookengine_free(_,0)}center_on_mid(){t.orderbookengine_center_on_mid(this.__mrd_ptr)}clear(){t.orderbookengine_clear(this.__mrd_ptr)}clear_hover(){t.orderbookengine_clear_hover(this.__mrd_ptr)}get_command_buffer_len(){return t.orderbookengine_get_command_buffer_len(this.__mrd_ptr)>>>0}get_command_buffer_ptr(){return t.orderbookengine_get_command_buffer_ptr(this.__mrd_ptr)>>>0}get_hover_price(){return t.orderbookengine_get_hover_price(this.__mrd_ptr)}get_hover_qty(){return t.orderbookengine_get_hover_qty(this.__mrd_ptr)}get_hover_side(){return t.orderbookengine_get_hover_side(this.__mrd_ptr)}get_theme(){return t.orderbookengine_get_theme(this.__mrd_ptr)>>>0}is_dirty(){return t.orderbookengine_is_dirty(this.__mrd_ptr)!==0}constructor(_,e){const r=t.orderbookengine_new(_,e);return this.__mrd_ptr=r>>>0,B.register(this,this.__mrd_ptr,this),this}pan_y(_){t.orderbookengine_pan_y(this.__mrd_ptr,_)}push_heatmap_col(_,e,r){const n=h(_,t.__wbindgen_export2),s=c,i=h(e,t.__wbindgen_export2),a=c;t.orderbookengine_push_heatmap_col(this.__mrd_ptr,n,s,i,a,r)}push_snapshot(_,e,r){const n=h(_,t.__wbindgen_export2),s=c,i=h(e,t.__wbindgen_export2),a=c;t.orderbookengine_push_snapshot(this.__mrd_ptr,n,s,i,a,r)}render(){return t.orderbookengine_render(this.__mrd_ptr)>>>0}reset_ring(){t.orderbookengine_reset_ring(this.__mrd_ptr)}resize(_,e){t.orderbookengine_resize(this.__mrd_ptr,_,e)}set_auto_center(_){t.orderbookengine_set_auto_center(this.__mrd_ptr,_)}set_depth_book(_,e,r){const n=h(_,t.__wbindgen_export2),s=c,i=h(e,t.__wbindgen_export2),a=c;t.orderbookengine_set_depth_book(this.__mrd_ptr,n,s,i,a,r)}set_exchange_count(_){t.orderbookengine_set_exchange_count(this.__mrd_ptr,_)}set_exchange_labels(_){const e=v(_,t.__wbindgen_export2,t.__wbindgen_export3),r=c;t.orderbookengine_set_exchange_labels(this.__mrd_ptr,e,r)}set_heatmap_alpha_mul(_){t.orderbookengine_set_heatmap_alpha_mul(this.__mrd_ptr,_)}set_heatmap_cols(_){t.orderbookengine_set_heatmap_cols(this.__mrd_ptr,_)}set_hover(_,e){t.orderbookengine_set_hover(this.__mrd_ptr,_,e)}set_hover_y(_){t.orderbookengine_set_hover_y(this.__mrd_ptr,_)}set_price_precision(_){t.orderbookengine_set_price_precision(this.__mrd_ptr,_)}set_ring_capacity(_,e){t.orderbookengine_set_ring_capacity(this.__mrd_ptr,_,e)}set_show_cumulative(_){t.orderbookengine_set_show_cumulative(this.__mrd_ptr,_)}set_show_signal_overlays(_){t.orderbookengine_set_show_signal_overlays(this.__mrd_ptr,_)}set_signal_absorption(_,e){t.orderbookengine_set_signal_absorption(this.__mrd_ptr,_,e)}set_signal_flow(_,e){t.orderbookengine_set_signal_flow(this.__mrd_ptr,_,e)}set_signal_gaps(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.orderbookengine_set_signal_gaps(this.__mrd_ptr,r,n,s,i)}set_signal_obi(_,e,r){t.orderbookengine_set_signal_obi(this.__mrd_ptr,_,e,r)}set_signal_spoof(_){t.orderbookengine_set_signal_spoof(this.__mrd_ptr,_)}set_signal_walls(_,e){const r=h(_,t.__wbindgen_export2),n=c,s=h(e,t.__wbindgen_export2),i=c;t.orderbookengine_set_signal_walls(this.__mrd_ptr,r,n,s,i)}set_symbol(_){const e=v(_,t.__wbindgen_export2,t.__wbindgen_export3),r=c;t.orderbookengine_set_symbol(this.__mrd_ptr,e,r)}set_theme(_){t.orderbookengine_set_theme(this.__mrd_ptr,_)}set_tick_size(_){t.orderbookengine_set_tick_size(this.__mrd_ptr,_)}set_visible_ticks(_){t.orderbookengine_set_visible_ticks(this.__mrd_ptr,_)}zoom_y(_,e){t.orderbookengine_zoom_y(this.__mrd_ptr,_,e)}}Symbol.dispose&&(U.prototype[Symbol.dispose]=U.prototype.free);function s_(){t.wasm_init()}function i_(){const o=t.wasm_memory();return N(o)}function L(){return{__proto__:null,"./chart_engine_bg.js":{__proto__:null,__mrd___wbindgen_memory_edb3f01e3930bbf6:function(){const _=t.memory;return V(_)},__mrd___wbindgen_throw_6ddd609b62940d55:function(_,e){throw new Error(u(_,e))},__mrd_error_a6fa202b58aa1cd3:function(_,e){let r,n;try{r=_,n=e,console.error(u(_,e))}finally{t.__wbindgen_export(r,n,1)}},__mrd_new_227d7c05414eb861:function(){const _=new Error;return V(_)},__mrd_stack_3b0d974bbf31e44f:function(_,e){const r=H(e).stack,n=v(r,t.__wbindgen_export2,t.__wbindgen_export3),s=c;l().setInt32(_+4,s,!0),l().setInt32(_+0,n,!0)},__wbindgen_object_drop_ref:function(_){N(_)}}}}const C=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(o=>t.__mrd_chartengine_free(o>>>0,1)),B=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(o=>t.__mrd_orderbookengine_free(o>>>0,1));function V(o){R===f.length&&f.push(f.length+1);const _=R;return R=f[_],f[_]=o,_}function Y(o){o<1028||(f[o]=R,R=o)}function x(o,_){return o=o>>>0,P().subarray(o/8,o/8+_)}function G(o,_){return o=o>>>0,J().subarray(o/4,o/4+_)}let y=null;function l(){return(y===null||y.buffer.detached===!0||y.buffer.detached===void 0&&y.buffer!==t.memory.buffer)&&(y=new DataView(t.memory.buffer)),y}let M=null;function P(){return(M===null||M.byteLength===0)&&(M=new Float64Array(t.memory.buffer)),M}let W=null;function J(){return(W===null||W.byteLength===0)&&(W=new Int32Array(t.memory.buffer)),W}function u(o,_){return o=o>>>0,__(o,_)}let j=null;function K(){return(j===null||j.byteLength===0)&&(j=new Uint32Array(t.memory.buffer)),j}let F=null;function O(){return(F===null||F.byteLength===0)&&(F=new Uint8Array(t.memory.buffer)),F}function H(o){return f[o]}let f=new Array(1024).fill(void 0);f.push(void 0,null,!0,!1);let R=f.length;function Q(o,_){const e=_(o.length*4,4)>>>0;return K().set(o,e/4),c=o.length,e}function Z(o,_){const e=_(o.length*1,1)>>>0;return O().set(o,e/1),c=o.length,e}function h(o,_){const e=_(o.length*8,8)>>>0;return P().set(o,e/8),c=o.length,e}function v(o,_,e){if(e===void 0){const a=E.encode(o),d=_(a.length,1)>>>0;return O().subarray(d,d+a.length).set(a),c=a.length,d}let r=o.length,n=_(r,1)>>>0;const s=O();let i=0;for(;i<r;i++){const a=o.charCodeAt(i);if(a>127)break;s[n+i]=a}if(i!==r){i!==0&&(o=o.slice(i)),n=e(n,r,r=i+o.length*3,1)>>>0;const a=O().subarray(n+i,n+r),d=E.encodeInto(o,a);i+=d.written,n=e(n,r,i,1)>>>0}return c=i,n}function N(o){const _=H(o);return Y(o),_}let S=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});S.decode();const $=2146435072;let T=0;function __(o,_){return T+=_,T>=$&&(S=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),S.decode(),T=_),S.decode(O().subarray(o,o+_))}const E=new TextEncoder;"encodeInto"in E||(E.encodeInto=function(o,_){const e=E.encode(o);return _.set(e),{read:o.length,written:e.length}});let c=0,t_,t;function X(o,_){return t=o.exports,t_=_,y=null,M=null,W=null,j=null,F=null,t.__wbindgen_start(),t}async function e_(o,_){if(typeof Response=="function"&&o instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(o,_)}catch(n){if(o.ok&&e(o.type)&&o.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n);else throw n}const r=await o.arrayBuffer();return await WebAssembly.instantiate(r,_)}else{const r=await WebAssembly.instantiate(o,_);return r instanceof WebAssembly.Instance?{instance:r,module:o}:r}function e(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}function r_(o){if(t!==void 0)return t;o!==void 0&&(Object.getPrototypeOf(o)===Object.prototype?{module:o}=o:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const _=L();o instanceof WebAssembly.Module||(o=new WebAssembly.Module(o));const e=new WebAssembly.Instance(o,_);return X(e,o)}async function n_(o){if(t!==void 0)return t;o!==void 0&&(Object.getPrototypeOf(o)===Object.prototype?{module_or_path:o}=o:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),o===void 0&&(o=new URL("chart_engine_bg.wasm",import.meta.url));const _=L();(typeof o=="string"||typeof Request=="function"&&o instanceof Request||typeof URL=="function"&&o instanceof URL)&&(o=fetch(o));const{instance:e,module:r}=await e_(await o,_);return X(e,r)}export{D as ChartEngine,U as OrderbookEngine,n_ as default,r_ as initSync,s_ as wasm_init,i_ as wasm_memory};
1
+ class H{__destroy_into_raw(){const _=this.__wbg_ptr;return this.__wbg_ptr=0,G.unregister(this),_}free(){const _=this.__destroy_into_raw();e.__wbg_chartengine_free(_,0)}add_anchored_vwap(_,t,r,n,s,i,a){return e.chartengine_add_anchored_vwap(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_arrow(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_arrow(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_arrow_marker_down(_,t,r,n,s,i,a){return e.chartengine_add_arrow_marker_down(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_arrow_marker_up(_,t,r,n,s,i,a){return e.chartengine_add_arrow_marker_up(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_brush_point(_,t){e.chartengine_add_brush_point(this.__wbg_ptr,_,t)}add_circle(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_circle(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_elliott_impulse(_,t,r,n,s,i,a){return e.chartengine_add_elliott_impulse(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_elliott_manual_point(_,t){return e.chartengine_add_elliott_manual_point(this.__wbg_ptr,_,t)!==0}add_fib_extension(_,t,r,n,s,i,a,c,p,l,d,w){return e.chartengine_add_fib_extension(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w)>>>0}add_fib_retracement(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_fib_retracement(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_horizontal_line(_,t,r,n,s,i,a,c){return e.chartengine_add_horizontal_line(this.__wbg_ptr,_,t,r,n,s,i,a,c)>>>0}add_long_position(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_long_position(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_marker(_,t,r){e.chartengine_add_marker(this.__wbg_ptr,_,t,r)}add_parallel_channel(_,t,r,n,s,i,a,c,p,l,d,w){return e.chartengine_add_parallel_channel(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w)>>>0}add_path_point(_,t){e.chartengine_add_path_point(this.__wbg_ptr,_,t)}add_price_label(_,t,r,n,s,i,a){return e.chartengine_add_price_label(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_price_range(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_price_range(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_short_position(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_short_position(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}add_text_note(_,t,r,n,s,i,a){return e.chartengine_add_text_note(this.__wbg_ptr,_,t,r,n,s,i,a)>>>0}add_trendline(_,t,r,n,s,i,a,c,p,l){return e.chartengine_add_trendline(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l)>>>0}agg_liq_bar_json(_){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_agg_liq_bar_json(i,this.__wbg_ptr,_);var n=b().getInt32(i+4*0,!0),s=b().getInt32(i+4*1,!0);return t=n,r=s,u(n,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(t,r,1)}}agg_liq_to_screen_y(_){return e.chartengine_agg_liq_to_screen_y(this.__wbg_ptr,_)}append_heatmap_column(_,t,r,n){const s=h(_,e.__wbindgen_export2),i=g;e.chartengine_append_heatmap_column(this.__wbg_ptr,s,i,t,r,n)}append_kline(_,t,r,n,s,i){e.chartengine_append_kline(this.__wbg_ptr,_,t,r,n,s,i)}append_real_timestamp(_){e.chartengine_append_real_timestamp(this.__wbg_ptr,_)}apply_cvd_profile_update(_,t,r,n){const s=h(n,e.__wbindgen_export2),i=g;e.chartengine_apply_cvd_profile_update(this.__wbg_ptr,_,t,r,s,i)}cancel_brush(){e.chartengine_cancel_brush(this.__wbg_ptr)}cancel_elliott_manual(){e.chartengine_cancel_elliott_manual(this.__wbg_ptr)}cancel_path(){e.chartengine_cancel_path(this.__wbg_ptr)}chart_area_h(){return e.chartengine_chart_area_h(this.__wbg_ptr)}chart_area_w(){return e.chartengine_chart_area_w(this.__wbg_ptr)}chart_area_x(){return e.chartengine_chart_area_x(this.__wbg_ptr)}chart_area_y(){return e.chartengine_chart_area_y(this.__wbg_ptr)}clear_agg_liq(){e.chartengine_clear_agg_liq(this.__wbg_ptr)}clear_agg_liq_signals(){e.chartengine_clear_agg_liq_signals(this.__wbg_ptr)}clear_channel_preview(){e.chartengine_clear_channel_preview(this.__wbg_ptr)}clear_cvd_divergence(){e.chartengine_clear_cvd_divergence(this.__wbg_ptr)}clear_cvd_orderblock_all(){e.chartengine_clear_cvd_orderblock_all(this.__wbg_ptr)}clear_cvd_orderblock_obs(){e.chartengine_clear_cvd_orderblock_obs(this.__wbg_ptr)}clear_cvd_profile(){e.chartengine_clear_cvd_profile(this.__wbg_ptr)}clear_cvd_regime(){e.chartengine_clear_cvd_regime(this.__wbg_ptr)}clear_cvd_trade_signals(){e.chartengine_clear_cvd_trade_signals(this.__wbg_ptr)}clear_drawing_preview(){e.chartengine_clear_drawing_preview(this.__wbg_ptr)}clear_drawings(){e.chartengine_clear_drawings(this.__wbg_ptr)}clear_elliott_preview(){e.chartengine_clear_elliott_preview(this.__wbg_ptr)}clear_fib_ext_preview(){e.chartengine_clear_fib_ext_preview(this.__wbg_ptr)}clear_heatmap_prefetch_range(){e.chartengine_clear_heatmap_prefetch_range(this.__wbg_ptr)}clear_heatmap_walls(){e.chartengine_clear_heatmap_walls(this.__wbg_ptr)}clear_hover_price(){e.chartengine_clear_hover_price(this.__wbg_ptr)}clear_large_trades(){e.chartengine_clear_large_trades(this.__wbg_ptr)}clear_live_signals(){e.chartengine_clear_live_signals(this.__wbg_ptr)}clear_markers(){e.chartengine_clear_markers(this.__wbg_ptr)}clear_mrd_pullback_htf_klines(){e.chartengine_clear_mrd_pullback_htf_klines(this.__wbg_ptr)}clear_ob_flow(){e.chartengine_clear_ob_flow(this.__wbg_ptr)}clear_ob_micro(){e.chartengine_clear_ob_micro(this.__wbg_ptr)}clear_ob_signals(){e.chartengine_clear_ob_signals(this.__wbg_ptr)}custom_band(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g,p=h(t,e.__wbindgen_export2),l=g;e.chartengine_custom_band(this.__wbg_ptr,a,c,p,l,r,n,s,i)}custom_begin(){e.chartengine_custom_begin(this.__wbg_ptr)}custom_circle_px(_,t,r,n,s,i,a,c,p,l,d,w){e.chartengine_custom_circle_px(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w)}custom_clip_rect(_,t,r,n){e.chartengine_custom_clip_rect(this.__wbg_ptr,_,t,r,n)}custom_command_count(){return e.chartengine_custom_command_count(this.__wbg_ptr)>>>0}custom_dashed_hline(_,t,r,n,s,i,a,c){e.chartengine_custom_dashed_hline(this.__wbg_ptr,_,t,r,n,s,i,a,c)}custom_end(){e.chartengine_custom_end(this.__wbg_ptr)}custom_fill_rect_px(_,t,r,n,s,i,a,c){e.chartengine_custom_fill_rect_px(this.__wbg_ptr,_,t,r,n,s,i,a,c)}custom_hline(_,t,r,n,s,i){e.chartengine_custom_hline(this.__wbg_ptr,_,t,r,n,s,i)}custom_line_px(_,t,r,n,s,i,a,c,p){e.chartengine_custom_line_px(this.__wbg_ptr,_,t,r,n,s,i,a,c,p)}custom_marker(_,t,r,n,s,i,a){e.chartengine_custom_marker(this.__wbg_ptr,_,t,r,n,s,i,a)}custom_marker_down(_,t,r,n,s,i,a){e.chartengine_custom_marker_down(this.__wbg_ptr,_,t,r,n,s,i,a)}custom_marker_up(_,t,r,n,s,i,a){e.chartengine_custom_marker_up(this.__wbg_ptr,_,t,r,n,s,i,a)}custom_price_label(_,t,r,n,s,i,a){const c=v(t,e.__wbindgen_export2,e.__wbindgen_export3),p=g;e.chartengine_custom_price_label(this.__wbg_ptr,_,c,p,r,n,s,i,a)}custom_restore(){e.chartengine_custom_restore(this.__wbg_ptr)}custom_save(){e.chartengine_custom_save(this.__wbg_ptr)}custom_series_dashed_line(_,t,r,n,s,i,a,c){const p=h(_,e.__wbindgen_export2),l=g;e.chartengine_custom_series_dashed_line(this.__wbg_ptr,p,l,t,r,n,s,i,a,c)}custom_series_line(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g;e.chartengine_custom_series_line(this.__wbg_ptr,a,c,t,r,n,s,i)}custom_stroke_rect_px(_,t,r,n,s,i,a,c,p){e.chartengine_custom_stroke_rect_px(this.__wbg_ptr,_,t,r,n,s,i,a,c,p)}custom_text(_,t,r,n,s,i,a,c,p){const l=v(r,e.__wbindgen_export2,e.__wbindgen_export3),d=g;e.chartengine_custom_text(this.__wbg_ptr,_,t,l,d,n,s,i,a,c,p)}custom_text_px(_,t,r,n,s,i,a,c,p){const l=v(r,e.__wbindgen_export2,e.__wbindgen_export3),d=g;e.chartengine_custom_text_px(this.__wbg_ptr,_,t,l,d,n,s,i,a,c,p)}cvd_divergence_count(){return e.chartengine_cvd_divergence_count(this.__wbg_ptr)>>>0}cvd_divergence_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_cvd_divergence_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}cvd_orderblock_gap_count(){return e.chartengine_cvd_orderblock_gap_count(this.__wbg_ptr)>>>0}cvd_orderblock_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_cvd_orderblock_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}cvd_orderblock_ob_count(){return e.chartengine_cvd_orderblock_ob_count(this.__wbg_ptr)>>>0}cvd_profile_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_cvd_profile_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}cvd_regime_flip_count(){return e.chartengine_cvd_regime_flip_count(this.__wbg_ptr)>>>0}cvd_regime_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_cvd_regime_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}cvd_trade_signal_count(){return e.chartengine_cvd_trade_signal_count(this.__wbg_ptr)>>>0}cvd_trade_signals_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_cvd_trade_signals_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}delta_histogram_enabled(){return e.chartengine_delta_histogram_enabled(this.__wbg_ptr)!==0}deselect_drawing(){e.chartengine_deselect_drawing(this.__wbg_ptr)}deselect_marker(){e.chartengine_deselect_marker(this.__wbg_ptr)}disable_agg_liq(){e.chartengine_disable_agg_liq(this.__wbg_ptr)}disable_cvd(){e.chartengine_disable_cvd(this.__wbg_ptr)}disable_cvd_divergence(){e.chartengine_disable_cvd_divergence(this.__wbg_ptr)}disable_cvd_orderblock(){e.chartengine_disable_cvd_orderblock(this.__wbg_ptr)}disable_cvd_profile(){e.chartengine_disable_cvd_profile(this.__wbg_ptr)}disable_cvd_regime(){e.chartengine_disable_cvd_regime(this.__wbg_ptr)}disable_cvd_trade_signals(){e.chartengine_disable_cvd_trade_signals(this.__wbg_ptr)}disable_delta_histogram(){e.chartengine_disable_delta_histogram(this.__wbg_ptr)}disable_ema_structure(){e.chartengine_disable_ema_structure(this.__wbg_ptr)}disable_forex_signals(){e.chartengine_disable_forex_signals(this.__wbg_ptr)}disable_funding_rate(){e.chartengine_disable_funding_rate(this.__wbg_ptr)}disable_large_trades(){e.chartengine_disable_large_trades(this.__wbg_ptr)}disable_liq_heatmap(){e.chartengine_disable_liq_heatmap(this.__wbg_ptr)}disable_live_signals(){e.chartengine_disable_live_signals(this.__wbg_ptr)}disable_mrd_pullback(){e.chartengine_disable_mrd_pullback(this.__wbg_ptr)}disable_ob_flow(){e.chartengine_disable_ob_flow(this.__wbg_ptr)}disable_ob_micro(){e.chartengine_disable_ob_micro(this.__wbg_ptr)}disable_ob_signals(){e.chartengine_disable_ob_signals(this.__wbg_ptr)}disable_oi(){e.chartengine_disable_oi(this.__wbg_ptr)}disable_rsi(){e.chartengine_disable_rsi(this.__wbg_ptr)}disable_smart_ranges(){e.chartengine_disable_smart_ranges(this.__wbg_ptr)}disable_stop_iceberg(){e.chartengine_disable_stop_iceberg(this.__wbg_ptr)}disable_tpo(){e.chartengine_disable_tpo(this.__wbg_ptr)}disable_volume(){e.chartengine_disable_volume(this.__wbg_ptr)}disable_vpin(){e.chartengine_disable_vpin(this.__wbg_ptr)}disable_vrvp(){e.chartengine_disable_vrvp(this.__wbg_ptr)}drawing_count(){return e.chartengine_drawing_count(this.__wbg_ptr)>>>0}enable_agg_liq(){e.chartengine_enable_agg_liq(this.__wbg_ptr)}enable_cvd(){e.chartengine_enable_cvd(this.__wbg_ptr)}enable_cvd_divergence(){e.chartengine_enable_cvd_divergence(this.__wbg_ptr)}enable_cvd_orderblock(){e.chartengine_enable_cvd_orderblock(this.__wbg_ptr)}enable_cvd_profile(){e.chartengine_enable_cvd_profile(this.__wbg_ptr)}enable_cvd_regime(){e.chartengine_enable_cvd_regime(this.__wbg_ptr)}enable_cvd_trade_signals(){e.chartengine_enable_cvd_trade_signals(this.__wbg_ptr)}enable_delta_histogram(){e.chartengine_enable_delta_histogram(this.__wbg_ptr)}enable_ema_structure(){e.chartengine_enable_ema_structure(this.__wbg_ptr)}enable_forex_signals(){e.chartengine_enable_forex_signals(this.__wbg_ptr)}enable_funding_rate(){e.chartengine_enable_funding_rate(this.__wbg_ptr)}enable_large_trades(){e.chartengine_enable_large_trades(this.__wbg_ptr)}enable_liq_heatmap(){e.chartengine_enable_liq_heatmap(this.__wbg_ptr)}enable_live_signals(){e.chartengine_enable_live_signals(this.__wbg_ptr)}enable_mrd_pullback(){e.chartengine_enable_mrd_pullback(this.__wbg_ptr)}enable_ob_flow(){e.chartengine_enable_ob_flow(this.__wbg_ptr)}enable_ob_micro(){e.chartengine_enable_ob_micro(this.__wbg_ptr)}enable_ob_signals(){e.chartengine_enable_ob_signals(this.__wbg_ptr)}enable_oi(){e.chartengine_enable_oi(this.__wbg_ptr)}enable_rsi(){e.chartengine_enable_rsi(this.__wbg_ptr)}enable_smart_ranges(){e.chartengine_enable_smart_ranges(this.__wbg_ptr)}enable_stop_iceberg(){e.chartengine_enable_stop_iceberg(this.__wbg_ptr)}enable_tpo(){e.chartengine_enable_tpo(this.__wbg_ptr)}enable_volume(){e.chartengine_enable_volume(this.__wbg_ptr)}enable_vpin(){e.chartengine_enable_vpin(this.__wbg_ptr)}enable_vrvp(){e.chartengine_enable_vrvp(this.__wbg_ptr)}export_drawings_json(){let _,t;try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_export_drawings_json(s,this.__wbg_ptr);var r=b().getInt32(s+4*0,!0),n=b().getInt32(s+4*1,!0);return _=r,t=n,u(r,n)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(_,t,1)}}finish_brush(){return e.chartengine_finish_brush(this.__wbg_ptr)>>>0}finish_elliott_manual(){return e.chartengine_finish_elliott_manual(this.__wbg_ptr)>>>0}finish_path(){return e.chartengine_finish_path(this.__wbg_ptr)>>>0}fit_content(){e.chartengine_fit_content(this.__wbg_ptr)}footprint_add_trade(_,t,r,n){e.chartengine_footprint_add_trade(this.__wbg_ptr,_,t,r,n)}footprint_add_trade_batch(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_footprint_add_trade_batch(this.__wbg_ptr,t,r)}footprint_clear(){e.chartengine_footprint_clear(this.__wbg_ptr)}footprint_clear_bar(_){e.chartengine_footprint_clear_bar(this.__wbg_ptr,_)}footprint_ensure_len(_){e.chartengine_footprint_ensure_len(this.__wbg_ptr,_)}footprint_get_display_mode(){return e.chartengine_footprint_get_display_mode(this.__wbg_ptr)}footprint_get_show_profile(){return e.chartengine_footprint_get_show_profile(this.__wbg_ptr)!==0}footprint_get_show_signals(){return e.chartengine_footprint_get_show_signals(this.__wbg_ptr)!==0}footprint_prepend_empty(_){e.chartengine_footprint_prepend_empty(this.__wbg_ptr,_)}footprint_profile_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_footprint_profile_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}footprint_set_bar(_,t,r,n,s){const i=h(r,e.__wbindgen_export2),a=g,c=h(n,e.__wbindgen_export2),p=g,l=h(s,e.__wbindgen_export2),d=g;e.chartengine_footprint_set_bar(this.__wbg_ptr,_,t,i,a,c,p,l,d)}footprint_set_display_mode(_){e.chartengine_footprint_set_display_mode(this.__wbg_ptr,_)}footprint_set_show_profile(_){e.chartengine_footprint_set_show_profile(this.__wbg_ptr,_)}footprint_set_show_signals(_){e.chartengine_footprint_set_show_signals(this.__wbg_ptr,_)}footprint_signal_count(){return e.chartengine_footprint_signal_count(this.__wbg_ptr)>>>0}get_agg_liq_mode(){return e.chartengine_get_agg_liq_mode(this.__wbg_ptr)}get_agg_liq_ratio(){return e.chartengine_get_agg_liq_ratio(this.__wbg_ptr)}get_chart_type(){return e.chartengine_get_chart_type(this.__wbg_ptr)}get_command_buffer_len(){return e.chartengine_get_command_buffer_len(this.__wbg_ptr)>>>0}get_command_buffer_ptr(){return e.chartengine_get_command_buffer_ptr(this.__wbg_ptr)>>>0}get_custom_buffer_len(){return e.chartengine_get_custom_buffer_len(this.__wbg_ptr)>>>0}get_custom_buffer_ptr(){return e.chartengine_get_custom_buffer_ptr(this.__wbg_ptr)>>>0}get_cvd_mode(){return e.chartengine_get_cvd_mode(this.__wbg_ptr)}get_cvd_profile_view_mode(){return e.chartengine_get_cvd_profile_view_mode(this.__wbg_ptr)}get_cvd_ratio(){return e.chartengine_get_cvd_ratio(this.__wbg_ptr)}get_cvd_show_delta(){return e.chartengine_get_cvd_show_delta(this.__wbg_ptr)!==0}get_cvd_show_divergence(){return e.chartengine_get_cvd_show_divergence(this.__wbg_ptr)!==0}get_cvd_show_signals(){return e.chartengine_get_cvd_show_signals(this.__wbg_ptr)!==0}get_cvd_source(){return e.chartengine_get_cvd_source(this.__wbg_ptr)}get_drawing_color(_){return e.chartengine_get_drawing_color(this.__wbg_ptr,_)>>>0}get_drawing_dashed(_){return e.chartengine_get_drawing_dashed(this.__wbg_ptr,_)!==0}get_drawing_flip_left(_){return e.chartengine_get_drawing_flip_left(this.__wbg_ptr,_)!==0}get_drawing_font_size(_){return e.chartengine_get_drawing_font_size(this.__wbg_ptr,_)}get_drawing_hide_label(_){return e.chartengine_get_drawing_hide_label(this.__wbg_ptr,_)!==0}get_drawing_kind_id(_){return e.chartengine_get_drawing_kind_id(this.__wbg_ptr,_)}get_drawing_text(_){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_get_drawing_text(i,this.__wbg_ptr,_);var n=b().getInt32(i+4*0,!0),s=b().getInt32(i+4*1,!0);return t=n,r=s,u(n,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(t,r,1)}}get_drawing_text_wrap(_){return e.chartengine_get_drawing_text_wrap(this.__wbg_ptr,_)!==0}get_font_size(){return e.chartengine_get_font_size(this.__wbg_ptr)}get_forex_signals_count(){return e.chartengine_get_forex_signals_count(this.__wbg_ptr)>>>0}get_fr_ratio(){return e.chartengine_get_fr_ratio(this.__wbg_ptr)}get_heatmap_data_max(){return e.chartengine_get_heatmap_data_max(this.__wbg_ptr)}get_heatmap_data_min(){return e.chartengine_get_heatmap_data_min(this.__wbg_ptr)}get_heatmap_last_timestamp(){return e.chartengine_get_heatmap_last_timestamp(this.__wbg_ptr)}get_heatmap_prefetch_max(){return e.chartengine_get_heatmap_prefetch_max(this.__wbg_ptr)}get_heatmap_profile_brightness(){return e.chartengine_get_heatmap_profile_brightness(this.__wbg_ptr)}get_heatmap_wall_count(){return e.chartengine_get_heatmap_wall_count(this.__wbg_ptr)>>>0}get_heatmap_x_step(){return e.chartengine_get_heatmap_x_step(this.__wbg_ptr)}get_iceberg_count(){return e.chartengine_get_iceberg_count(this.__wbg_ptr)>>>0}get_kline_visible(){return e.chartengine_get_kline_visible(this.__wbg_ptr)!==0}get_last_candle_json(){let _,t;try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_get_last_candle_json(s,this.__wbg_ptr);var r=b().getInt32(s+4*0,!0),n=b().getInt32(s+4*1,!0);return _=r,t=n,u(r,n)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(_,t,1)}}get_last_close(){return e.chartengine_get_last_close(this.__wbg_ptr)}get_liq_heatmap_cell_height(){return e.chartengine_get_liq_heatmap_cell_height(this.__wbg_ptr)}get_liq_heatmap_filled_pct(){return e.chartengine_get_liq_heatmap_filled_pct(this.__wbg_ptr)}get_liq_heatmap_max(){return e.chartengine_get_liq_heatmap_max(this.__wbg_ptr)}get_liq_heatmap_min(){return e.chartengine_get_liq_heatmap_min(this.__wbg_ptr)}get_liq_heatmap_seg_max(){return e.chartengine_get_liq_heatmap_seg_max(this.__wbg_ptr)}get_live_signals_count(){return e.chartengine_get_live_signals_count(this.__wbg_ptr)>>>0}get_live_signals_leverage(){return e.chartengine_get_live_signals_leverage(this.__wbg_ptr)}get_lt_data_max_vol(){return e.chartengine_get_lt_data_max_vol(this.__wbg_ptr)}get_lt_data_min_vol(){return e.chartengine_get_lt_data_min_vol(this.__wbg_ptr)}get_obf_ratio(){return e.chartengine_get_obf_ratio(this.__wbg_ptr)}get_oi_ratio(){return e.chartengine_get_oi_ratio(this.__wbg_ptr)}get_rsi_ratio(){return e.chartengine_get_rsi_ratio(this.__wbg_ptr)}get_selected_drawing(){return e.chartengine_get_selected_drawing(this.__wbg_ptr)>>>0}get_selected_marker(){return e.chartengine_get_selected_marker(this.__wbg_ptr)>>>0}get_sr_signals_count(){return e.chartengine_get_sr_signals_count(this.__wbg_ptr)>>>0}get_stop_run_count(){return e.chartengine_get_stop_run_count(this.__wbg_ptr)>>>0}get_theme(){return e.chartengine_get_theme(this.__wbg_ptr)}get_tooltip_data(){let _,t;try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_get_tooltip_data(s,this.__wbg_ptr);var r=b().getInt32(s+4*0,!0),n=b().getInt32(s+4*1,!0);return _=r,t=n,u(r,n)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(_,t,1)}}get_tpo_period(){return e.chartengine_get_tpo_period(this.__wbg_ptr)>>>0}get_volume_color_mode(){return e.chartengine_get_volume_color_mode(this.__wbg_ptr)}get_volume_ma_period(){return e.chartengine_get_volume_ma_period(this.__wbg_ptr)>>>0}get_volume_show_ma(){return e.chartengine_get_volume_show_ma(this.__wbg_ptr)!==0}get_volume_show_signals(){return e.chartengine_get_volume_show_signals(this.__wbg_ptr)!==0}get_vpin_bucket_size(){return e.chartengine_get_vpin_bucket_size(this.__wbg_ptr)>>>0}get_vpin_num_buckets(){return e.chartengine_get_vpin_num_buckets(this.__wbg_ptr)>>>0}get_vpin_ratio(){return e.chartengine_get_vpin_ratio(this.__wbg_ptr)}get_vpin_threshold(){return e.chartengine_get_vpin_threshold(this.__wbg_ptr)}hide_crosshair(){e.chartengine_hide_crosshair(this.__wbg_ptr)}hit_test_drawing(_,t){return e.chartengine_hit_test_drawing(this.__wbg_ptr,_,t)>>>0}hit_test_drawing_anchor(_,t){return e.chartengine_hit_test_drawing_anchor(this.__wbg_ptr,_,t)}hit_test_marker(_,t){return e.chartengine_hit_test_marker(this.__wbg_ptr,_,t)>>>0}hit_zone(_,t){return e.chartengine_hit_zone(this.__wbg_ptr,_,t)}hover_hit_test(_,t){try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_hover_hit_test(i,this.__wbg_ptr,_,t);var r=b().getInt32(i+4*0,!0),n=b().getInt32(i+4*1,!0),s=d_(r,n).slice();return e.__wbindgen_export(r,n*4,4),s}finally{e.__wbindgen_add_to_stack_pointer(16)}}import_drawings_json(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;e.chartengine_import_drawings_json(this.__wbg_ptr,t,r)}is_agg_liq_enabled(){return e.chartengine_is_agg_liq_enabled(this.__wbg_ptr)!==0}is_agg_liq_show_signals(){return e.chartengine_is_agg_liq_show_signals(this.__wbg_ptr)!==0}is_agg_liq_signals_on_chart(){return e.chartengine_is_agg_liq_signals_on_chart(this.__wbg_ptr)!==0}is_cvd_divergence_enabled(){return e.chartengine_is_cvd_divergence_enabled(this.__wbg_ptr)!==0}is_cvd_enabled(){return e.chartengine_is_cvd_enabled(this.__wbg_ptr)!==0}is_cvd_orderblock_enabled(){return e.chartengine_is_cvd_orderblock_enabled(this.__wbg_ptr)!==0}is_cvd_profile_enabled(){return e.chartengine_is_cvd_profile_enabled(this.__wbg_ptr)!==0}is_cvd_regime_enabled(){return e.chartengine_is_cvd_regime_enabled(this.__wbg_ptr)!==0}is_cvd_trade_signals_enabled(){return e.chartengine_is_cvd_trade_signals_enabled(this.__wbg_ptr)!==0}is_dirty(){return e.chartengine_is_dirty(this.__wbg_ptr)!==0}is_ema_structure_enabled(){return e.chartengine_is_ema_structure_enabled(this.__wbg_ptr)!==0}is_forex_signals_enabled(){return e.chartengine_is_forex_signals_enabled(this.__wbg_ptr)!==0}is_funding_rate_enabled(){return e.chartengine_is_funding_rate_enabled(this.__wbg_ptr)!==0}is_heatmap_show_profile(){return e.chartengine_is_heatmap_show_profile(this.__wbg_ptr)!==0}is_large_trades_enabled(){return e.chartengine_is_large_trades_enabled(this.__wbg_ptr)!==0}is_liq_heatmap_enabled(){return e.chartengine_is_liq_heatmap_enabled(this.__wbg_ptr)!==0}is_liq_heatmap_filled_zones(){return e.chartengine_is_liq_heatmap_filled_zones(this.__wbg_ptr)!==0}is_liq_heatmap_predictions(){return e.chartengine_is_liq_heatmap_predictions(this.__wbg_ptr)!==0}is_liq_heatmap_profile(){return e.chartengine_is_liq_heatmap_profile(this.__wbg_ptr)!==0}is_live_signals_enabled(){return e.chartengine_is_live_signals_enabled(this.__wbg_ptr)!==0}is_mrd_pullback_enabled(){return e.chartengine_is_mrd_pullback_enabled(this.__wbg_ptr)!==0}is_ob_flow_enabled(){return e.chartengine_is_ob_flow_enabled(this.__wbg_ptr)!==0}is_ob_micro_enabled(){return e.chartengine_is_ob_micro_enabled(this.__wbg_ptr)!==0}is_ob_signals_enabled(){return e.chartengine_is_ob_signals_enabled(this.__wbg_ptr)!==0}is_oi_enabled(){return e.chartengine_is_oi_enabled(this.__wbg_ptr)!==0}is_rsi_enabled(){return e.chartengine_is_rsi_enabled(this.__wbg_ptr)!==0}is_rsi_show_on_chart(){return e.chartengine_is_rsi_show_on_chart(this.__wbg_ptr)!==0}is_rsi_show_traps(){return e.chartengine_is_rsi_show_traps(this.__wbg_ptr)!==0}is_smart_ranges_enabled(){return e.chartengine_is_smart_ranges_enabled(this.__wbg_ptr)!==0}is_stop_iceberg_enabled(){return e.chartengine_is_stop_iceberg_enabled(this.__wbg_ptr)!==0}is_tpo_enabled(){return e.chartengine_is_tpo_enabled(this.__wbg_ptr)!==0}is_tpo_signals(){return e.chartengine_is_tpo_signals(this.__wbg_ptr)!==0}is_volume_enabled(){return e.chartengine_is_volume_enabled(this.__wbg_ptr)!==0}is_vpin_enabled(){return e.chartengine_is_vpin_enabled(this.__wbg_ptr)!==0}is_vrvp_enabled(){return e.chartengine_is_vrvp_enabled(this.__wbg_ptr)!==0}kline_closes(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_closes(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}kline_count(){return e.chartengine_kline_count(this.__wbg_ptr)>>>0}kline_highs(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_highs(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}kline_lows(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_lows(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}kline_opens(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_opens(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}kline_timestamps(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_timestamps(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}kline_volumes(){try{const n=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_kline_volumes(n,this.__wbg_ptr);var _=b().getInt32(n+4*0,!0),t=b().getInt32(n+4*1,!0),r=A(_,t).slice();return e.__wbindgen_export(_,t*8,8),r}finally{e.__wbindgen_add_to_stack_pointer(16)}}liq_filled_zone_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_liq_filled_zone_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}liq_heatmap_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_liq_heatmap_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}liq_predict_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_liq_predict_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}liq_zone_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_liq_zone_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}lt_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_lt_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}move_drawing(_,t){e.chartengine_move_drawing(this.__wbg_ptr,_,t)}constructor(_,t){const r=e.chartengine_new(_,t);return this.__wbg_ptr=r>>>0,G.register(this,this.__wbg_ptr,this),this}ob_flow_to_screen_y(_){return e.chartengine_ob_flow_to_screen_y(this.__wbg_ptr,_)}oi_to_screen_y(_){return e.chartengine_oi_to_screen_y(this.__wbg_ptr,_)}open_cvd_profile_session(_,t,r){e.chartengine_open_cvd_profile_session(this.__wbg_ptr,_,t,r)}pan(_,t){e.chartengine_pan(this.__wbg_ptr,_,t)}pan_indicator_y(_,t){e.chartengine_pan_indicator_y(this.__wbg_ptr,_,t)}pan_x(_){e.chartengine_pan_x(this.__wbg_ptr,_)}pan_y(_){e.chartengine_pan_y(this.__wbg_ptr,_)}pop_last_kline(){return e.chartengine_pop_last_kline(this.__wbg_ptr)!==0}prepend_klines(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g,p=h(t,e.__wbindgen_export2),l=g,d=h(r,e.__wbindgen_export2),w=g,m=h(n,e.__wbindgen_export2),f=g,k=h(s,e.__wbindgen_export2),x=g,y=h(i,e.__wbindgen_export2),q=g;e.chartengine_prepend_klines(this.__wbg_ptr,a,c,p,l,d,w,m,f,k,x,y,q)}push_agg_liq_bar(_,t,r,n,s,i){e.chartengine_push_agg_liq_bar(this.__wbg_ptr,_,t,r,n,s,i)}push_agg_liq_signal(_,t,r,n,s,i){e.chartengine_push_agg_liq_signal(this.__wbg_ptr,_,t,r,n,s,i)}push_large_trade(_,t,r,n){e.chartengine_push_large_trade(this.__wbg_ptr,_,t,r,n)}push_obf_sample(_,t,r,n){e.chartengine_push_obf_sample(this.__wbg_ptr,_,t,r,n)}push_obs_alert(_,t,r,n,s){e.chartengine_push_obs_alert(this.__wbg_ptr,_,t,r,n,s)}remove_cvd_divergence(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;return e.chartengine_remove_cvd_divergence(this.__wbg_ptr,t,r)!==0}remove_cvd_orderblock_ob(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;return e.chartengine_remove_cvd_orderblock_ob(this.__wbg_ptr,t,r)!==0}remove_cvd_regime_flip(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;return e.chartengine_remove_cvd_regime_flip(this.__wbg_ptr,t,r)!==0}remove_cvd_trade_signal(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;return e.chartengine_remove_cvd_trade_signal(this.__wbg_ptr,t,r)!==0}remove_drawing(_){e.chartengine_remove_drawing(this.__wbg_ptr,_)}remove_marker(_){e.chartengine_remove_marker(this.__wbg_ptr,_)}render(){return e.chartengine_render(this.__wbg_ptr)>>>0}replace_cvd_profile_session(_,t,r,n,s){const i=h(s,e.__wbindgen_export2),a=g;e.chartengine_replace_cvd_profile_session(this.__wbg_ptr,_,t,r,n,i,a)}reset_indicator_y_auto(_){e.chartengine_reset_indicator_y_auto(this.__wbg_ptr,_)}resize(_,t){e.chartengine_resize(this.__wbg_ptr,_,t)}rsi_to_screen_y(_){return e.chartengine_rsi_to_screen_y(this.__wbg_ptr,_)}screen_to_agg_liq_y(_){return e.chartengine_screen_to_agg_liq_y(this.__wbg_ptr,_)}screen_to_cvd_y(_){return e.chartengine_screen_to_cvd_y(this.__wbg_ptr,_)}screen_to_fr_y(_){return e.chartengine_screen_to_fr_y(this.__wbg_ptr,_)}screen_to_ob_flow_y(_){return e.chartengine_screen_to_ob_flow_y(this.__wbg_ptr,_)}screen_to_oi_y(_){return e.chartengine_screen_to_oi_y(this.__wbg_ptr,_)}screen_to_rsi_y(_){return e.chartengine_screen_to_rsi_y(this.__wbg_ptr,_)}screen_to_vpin_y(_){return e.chartengine_screen_to_vpin_y(this.__wbg_ptr,_)}screen_to_world_x(_){return e.chartengine_screen_to_world_x(this.__wbg_ptr,_)}screen_to_world_y(_){return e.chartengine_screen_to_world_y(this.__wbg_ptr,_)}select_drawing(_){e.chartengine_select_drawing(this.__wbg_ptr,_)}select_marker(_){e.chartengine_select_marker(this.__wbg_ptr,_)}set_agg_liq_data(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_agg_liq_data(this.__wbg_ptr,t,r)}set_agg_liq_hover(_){e.chartengine_set_agg_liq_hover(this.__wbg_ptr,_)}set_agg_liq_mode(_){e.chartengine_set_agg_liq_mode(this.__wbg_ptr,_)}set_agg_liq_ratio(_){e.chartengine_set_agg_liq_ratio(this.__wbg_ptr,_)}set_agg_liq_show_long(_){e.chartengine_set_agg_liq_show_long(this.__wbg_ptr,_)}set_agg_liq_show_short(_){e.chartengine_set_agg_liq_show_short(this.__wbg_ptr,_)}set_agg_liq_show_signals(_){e.chartengine_set_agg_liq_show_signals(this.__wbg_ptr,_)}set_agg_liq_signals(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_agg_liq_signals(this.__wbg_ptr,t,r)}set_agg_liq_signals_on_chart(_){e.chartengine_set_agg_liq_signals_on_chart(this.__wbg_ptr,_)}set_background_color(_,t,r){e.chartengine_set_background_color(this.__wbg_ptr,_,t,r)}set_bg_gradient(_,t,r,n){e.chartengine_set_bg_gradient(this.__wbg_ptr,_,t,r,n)}set_candle_bear_border_color(_,t,r){e.chartengine_set_candle_bear_border_color(this.__wbg_ptr,_,t,r)}set_candle_bear_color(_,t,r){e.chartengine_set_candle_bear_color(this.__wbg_ptr,_,t,r)}set_candle_bear_wick_color(_,t,r){e.chartengine_set_candle_bear_wick_color(this.__wbg_ptr,_,t,r)}set_candle_bull_border_color(_,t,r){e.chartengine_set_candle_bull_border_color(this.__wbg_ptr,_,t,r)}set_candle_bull_color(_,t,r){e.chartengine_set_candle_bull_color(this.__wbg_ptr,_,t,r)}set_candle_bull_wick_color(_,t,r){e.chartengine_set_candle_bull_wick_color(this.__wbg_ptr,_,t,r)}set_candle_interval(_){e.chartengine_set_candle_interval(this.__wbg_ptr,_)}set_channel_preview(_,t,r,n,s,i,a,c,p,l,d,w){e.chartengine_set_channel_preview(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w)}set_chart_type(_){e.chartengine_set_chart_type(this.__wbg_ptr,_)}set_crosshair(_,t){e.chartengine_set_crosshair(this.__wbg_ptr,_,t)}set_crosshair_color(_,t,r,n){e.chartengine_set_crosshair_color(this.__wbg_ptr,_,t,r,n)}set_crosshair_style(_){e.chartengine_set_crosshair_style(this.__wbg_ptr,_)}set_crosshair_width(_){e.chartengine_set_crosshair_width(this.__wbg_ptr,_)}set_cvd_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_cvd_data(this.__wbg_ptr,r,n,s,i)}set_cvd_divergence_min_strength(_){e.chartengine_set_cvd_divergence_min_strength(this.__wbg_ptr,_)}set_cvd_divergence_show_band(_){e.chartengine_set_cvd_divergence_show_band(this.__wbg_ptr,_)}set_cvd_divergence_show_hidden(_){e.chartengine_set_cvd_divergence_show_hidden(this.__wbg_ptr,_)}set_cvd_divergence_show_labels(_){e.chartengine_set_cvd_divergence_show_labels(this.__wbg_ptr,_)}set_cvd_divergence_show_long(_){e.chartengine_set_cvd_divergence_show_long(this.__wbg_ptr,_)}set_cvd_divergence_show_regular(_){e.chartengine_set_cvd_divergence_show_regular(this.__wbg_ptr,_)}set_cvd_divergence_show_short(_){e.chartengine_set_cvd_divergence_show_short(this.__wbg_ptr,_)}set_cvd_mode(_){e.chartengine_set_cvd_mode(this.__wbg_ptr,_)}set_cvd_orderblock_breaker_style(_){e.chartengine_set_cvd_orderblock_breaker_style(this.__wbg_ptr,_)}set_cvd_orderblock_direction_filter(_){e.chartengine_set_cvd_orderblock_direction_filter(this.__wbg_ptr,_)}set_cvd_orderblock_label_size_scale(_){e.chartengine_set_cvd_orderblock_label_size_scale(this.__wbg_ptr,_)}set_cvd_orderblock_min_score(_){e.chartengine_set_cvd_orderblock_min_score(this.__wbg_ptr,_)}set_cvd_orderblock_mitigation_filter(_){e.chartengine_set_cvd_orderblock_mitigation_filter(this.__wbg_ptr,_)}set_cvd_orderblock_render_mode(_){e.chartengine_set_cvd_orderblock_render_mode(this.__wbg_ptr,_)}set_cvd_orderblock_show_filled_gaps(_){e.chartengine_set_cvd_orderblock_show_filled_gaps(this.__wbg_ptr,_)}set_cvd_orderblock_show_gaps(_){e.chartengine_set_cvd_orderblock_show_gaps(this.__wbg_ptr,_)}set_cvd_orderblock_show_labels(_){e.chartengine_set_cvd_orderblock_show_labels(this.__wbg_ptr,_)}set_cvd_orderblock_show_mitigated(_){e.chartengine_set_cvd_orderblock_show_mitigated(this.__wbg_ptr,_)}set_cvd_orderblock_show_obs(_){e.chartengine_set_cvd_orderblock_show_obs(this.__wbg_ptr,_)}set_cvd_profile_bar_height_px(_){e.chartengine_set_cvd_profile_bar_height_px(this.__wbg_ptr,_)}set_cvd_profile_bar_max_width_px(_){e.chartengine_set_cvd_profile_bar_max_width_px(this.__wbg_ptr,_)}set_cvd_profile_label_size_scale(_){e.chartengine_set_cvd_profile_label_size_scale(this.__wbg_ptr,_)}set_cvd_profile_max_bar_ratio(_){e.chartengine_set_cvd_profile_max_bar_ratio(this.__wbg_ptr,_)}set_cvd_profile_sessions(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_cvd_profile_sessions(this.__wbg_ptr,t,r)}set_cvd_profile_show_anchors(_){e.chartengine_set_cvd_profile_show_anchors(this.__wbg_ptr,_)}set_cvd_profile_show_delta_poc(_){e.chartengine_set_cvd_profile_show_delta_poc(this.__wbg_ptr,_)}set_cvd_profile_show_poc(_){e.chartengine_set_cvd_profile_show_poc(this.__wbg_ptr,_)}set_cvd_profile_show_session_poc_line(_){e.chartengine_set_cvd_profile_show_session_poc_line(this.__wbg_ptr,_)}set_cvd_profile_theme_mode(_){e.chartengine_set_cvd_profile_theme_mode(this.__wbg_ptr,_)}set_cvd_profile_tooltip_enabled(_){e.chartengine_set_cvd_profile_tooltip_enabled(this.__wbg_ptr,_)}set_cvd_profile_value_in_quote(_){e.chartengine_set_cvd_profile_value_in_quote(this.__wbg_ptr,_)}set_cvd_profile_view_mode(_){e.chartengine_set_cvd_profile_view_mode(this.__wbg_ptr,_)}set_cvd_ratio(_){e.chartengine_set_cvd_ratio(this.__wbg_ptr,_)}set_cvd_regime_show_flip_lines(_){e.chartengine_set_cvd_regime_show_flip_lines(this.__wbg_ptr,_)}set_cvd_regime_show_ribbon(_){e.chartengine_set_cvd_regime_show_ribbon(this.__wbg_ptr,_)}set_cvd_regime_show_wash(_){e.chartengine_set_cvd_regime_show_wash(this.__wbg_ptr,_)}set_cvd_show_delta(_){e.chartengine_set_cvd_show_delta(this.__wbg_ptr,_)}set_cvd_show_divergence(_){e.chartengine_set_cvd_show_divergence(this.__wbg_ptr,_)}set_cvd_show_signals(_){e.chartengine_set_cvd_show_signals(this.__wbg_ptr,_)}set_cvd_source(_){e.chartengine_set_cvd_source(this.__wbg_ptr,_)}set_cvd_spot_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_cvd_spot_data(this.__wbg_ptr,r,n,s,i)}set_cvd_trade_signals_min_confidence(_){e.chartengine_set_cvd_trade_signals_min_confidence(this.__wbg_ptr,_)}set_cvd_trade_signals_show_absorption_resolution(_){e.chartengine_set_cvd_trade_signals_show_absorption_resolution(this.__wbg_ptr,_)}set_cvd_trade_signals_show_breakout(_){e.chartengine_set_cvd_trade_signals_show_breakout(this.__wbg_ptr,_)}set_cvd_trade_signals_show_delta_trap(_){e.chartengine_set_cvd_trade_signals_show_delta_trap(this.__wbg_ptr,_)}set_cvd_trade_signals_show_divergence(_){e.chartengine_set_cvd_trade_signals_show_divergence(this.__wbg_ptr,_)}set_cvd_trade_signals_show_labels(_){e.chartengine_set_cvd_trade_signals_show_labels(this.__wbg_ptr,_)}set_cvd_trade_signals_show_levels(_){e.chartengine_set_cvd_trade_signals_show_levels(this.__wbg_ptr,_)}set_cvd_trade_signals_show_long(_){e.chartengine_set_cvd_trade_signals_show_long(this.__wbg_ptr,_)}set_cvd_trade_signals_show_rejection(_){e.chartengine_set_cvd_trade_signals_show_rejection(this.__wbg_ptr,_)}set_cvd_trade_signals_show_short(_){e.chartengine_set_cvd_trade_signals_show_short(this.__wbg_ptr,_)}set_drawing_dashed(_,t){e.chartengine_set_drawing_dashed(this.__wbg_ptr,_,t)}set_drawing_flip_left(_,t){e.chartengine_set_drawing_flip_left(this.__wbg_ptr,_,t)}set_drawing_font_size(_,t){e.chartengine_set_drawing_font_size(this.__wbg_ptr,_,t)}set_drawing_hide_label(_,t){e.chartengine_set_drawing_hide_label(this.__wbg_ptr,_,t)}set_drawing_preview(_,t,r,n,s,i,a,c,p,l,d){e.chartengine_set_drawing_preview(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d)}set_drawing_style(_,t,r,n,s){e.chartengine_set_drawing_style(this.__wbg_ptr,_,t,r,n,s)}set_drawing_text(_,t){const r=v(t,e.__wbindgen_export2,e.__wbindgen_export3),n=g;e.chartengine_set_drawing_text(this.__wbg_ptr,_,r,n)}set_drawing_text_wrap(_,t){e.chartengine_set_drawing_text_wrap(this.__wbg_ptr,_,t)}set_drawings_visible(_){e.chartengine_set_drawings_visible(this.__wbg_ptr,_)}set_elliott_manual_cursor(_,t){e.chartengine_set_elliott_manual_cursor(this.__wbg_ptr,_,t)}set_elliott_preview(_,t,r,n,s,i,a){e.chartengine_set_elliott_preview(this.__wbg_ptr,_,t,r,n,s,i,a)}set_es_ema1_len(_){e.chartengine_set_es_ema1_len(this.__wbg_ptr,_)}set_es_ema2_len(_){e.chartengine_set_es_ema2_len(this.__wbg_ptr,_)}set_es_show_bos(_){e.chartengine_set_es_show_bos(this.__wbg_ptr,_)}set_es_show_ema1(_){e.chartengine_set_es_show_ema1(this.__wbg_ptr,_)}set_es_show_ema2(_){e.chartengine_set_es_show_ema2(this.__wbg_ptr,_)}set_es_show_wma(_){e.chartengine_set_es_show_wma(this.__wbg_ptr,_)}set_es_swing_len(_){e.chartengine_set_es_swing_len(this.__wbg_ptr,_)}set_es_wma_len(_){e.chartengine_set_es_wma_len(this.__wbg_ptr,_)}set_fib_ext_preview(_,t,r,n,s,i,a,c,p,l,d,w){e.chartengine_set_fib_ext_preview(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w)}set_font_size(_){e.chartengine_set_font_size(this.__wbg_ptr,_)}set_footprint_tick_size(_){e.chartengine_set_footprint_tick_size(this.__wbg_ptr,_)}set_forex_signals_mode(_){e.chartengine_set_forex_signals_mode(this.__wbg_ptr,_)}set_forex_signals_setup(_){e.chartengine_set_forex_signals_setup(this.__wbg_ptr,_)}set_forex_signals_show_stats(_){e.chartengine_set_forex_signals_show_stats(this.__wbg_ptr,_)}set_fr_agg_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_fr_agg_data(this.__wbg_ptr,r,n,s,i)}set_fr_binance_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_fr_binance_data(this.__wbg_ptr,r,n,s,i)}set_fr_ratio(_){e.chartengine_set_fr_ratio(this.__wbg_ptr,_)}set_fr_show_agg(_){e.chartengine_set_fr_show_agg(this.__wbg_ptr,_)}set_fr_show_sma(_){e.chartengine_set_fr_show_sma(this.__wbg_ptr,_)}set_grid_color(_,t,r,n){e.chartengine_set_grid_color(this.__wbg_ptr,_,t,r,n)}set_grid_h_visible(_){e.chartengine_set_grid_h_visible(this.__wbg_ptr,_)}set_grid_v_visible(_){e.chartengine_set_grid_v_visible(this.__wbg_ptr,_)}set_heatmap(_,t,r,n,s,i,a){const c=h(_,e.__wbindgen_export2),p=g;e.chartengine_set_heatmap(this.__wbg_ptr,c,p,t,r,n,s,i,a)}set_heatmap_color_scheme(_){e.chartengine_set_heatmap_color_scheme(this.__wbg_ptr,_)}set_heatmap_prefetch_range(_){e.chartengine_set_heatmap_prefetch_range(this.__wbg_ptr,_)}set_heatmap_profile_brightness(_){e.chartengine_set_heatmap_profile_brightness(this.__wbg_ptr,_)}set_heatmap_range(_,t){e.chartengine_set_heatmap_range(this.__wbg_ptr,_,t)}set_heatmap_show_profile(_){e.chartengine_set_heatmap_show_profile(this.__wbg_ptr,_)}set_heatmap_walls(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_heatmap_walls(this.__wbg_ptr,t,r)}set_hover_price(_){e.chartengine_set_hover_price(this.__wbg_ptr,_)}set_iceberg_events(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g,p=h(t,e.__wbindgen_export2),l=g,d=h(r,e.__wbindgen_export2),w=g,m=h(n,e.__wbindgen_export2),f=g,k=v_(s,e.__wbindgen_export2),x=g,y=m_(i,e.__wbindgen_export2),q=g;e.chartengine_set_iceberg_events(this.__wbg_ptr,a,c,p,l,d,w,m,f,k,x,y,q)}set_indicators_visible(_){e.chartengine_set_indicators_visible(this.__wbg_ptr,_)}set_kline_visible(_){e.chartengine_set_kline_visible(this.__wbg_ptr,_)}set_klines(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g,p=h(t,e.__wbindgen_export2),l=g,d=h(r,e.__wbindgen_export2),w=g,m=h(n,e.__wbindgen_export2),f=g,k=h(s,e.__wbindgen_export2),x=g,y=h(i,e.__wbindgen_export2),q=g;e.chartengine_set_klines(this.__wbg_ptr,a,c,p,l,d,w,m,f,k,x,y,q)}set_large_trades_data(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_large_trades_data(this.__wbg_ptr,t,r)}set_license_state(_,t,r){e.chartengine_set_license_state(this.__wbg_ptr,_,t,r)}set_liq_heatmap_cell_height(_){e.chartengine_set_liq_heatmap_cell_height(this.__wbg_ptr,_)}set_liq_heatmap_filled_pct(_){e.chartengine_set_liq_heatmap_filled_pct(this.__wbg_ptr,_)}set_liq_heatmap_filled_zones(_){e.chartengine_set_liq_heatmap_filled_zones(this.__wbg_ptr,_)}set_liq_heatmap_predictions(_){e.chartengine_set_liq_heatmap_predictions(this.__wbg_ptr,_)}set_liq_heatmap_profile(_){e.chartengine_set_liq_heatmap_profile(this.__wbg_ptr,_)}set_liq_heatmap_range(_,t){e.chartengine_set_liq_heatmap_range(this.__wbg_ptr,_,t)}set_live_signals_data(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_live_signals_data(this.__wbg_ptr,t,r)}set_live_signals_leverage(_){e.chartengine_set_live_signals_leverage(this.__wbg_ptr,_)}set_live_signals_loading(_){e.chartengine_set_live_signals_loading(this.__wbg_ptr,_)}set_live_signals_pip_value(_){e.chartengine_set_live_signals_pip_value(this.__wbg_ptr,_)}set_live_signals_show_entry(_){e.chartengine_set_live_signals_show_entry(this.__wbg_ptr,_)}set_live_signals_show_labels(_){e.chartengine_set_live_signals_show_labels(this.__wbg_ptr,_)}set_live_signals_show_max_profit(_){e.chartengine_set_live_signals_show_max_profit(this.__wbg_ptr,_)}set_live_signals_show_tp_sl(_){e.chartengine_set_live_signals_show_tp_sl(this.__wbg_ptr,_)}set_live_signals_show_zones(_){e.chartengine_set_live_signals_show_zones(this.__wbg_ptr,_)}set_live_signals_text_size(_){e.chartengine_set_live_signals_text_size(this.__wbg_ptr,_)}set_live_signals_trial(_){e.chartengine_set_live_signals_trial(this.__wbg_ptr,_)}set_lt_bubble_scale(_){e.chartengine_set_lt_bubble_scale(this.__wbg_ptr,_)}set_lt_volume_filter(_,t){e.chartengine_set_lt_volume_filter(this.__wbg_ptr,_,t)}set_mrd_pullback_entry_mode(_){e.chartengine_set_mrd_pullback_entry_mode(this.__wbg_ptr,_)}set_mrd_pullback_htf_klines(_,t,r,n,s,i){const a=h(_,e.__wbindgen_export2),c=g,p=h(t,e.__wbindgen_export2),l=g,d=h(r,e.__wbindgen_export2),w=g,m=h(n,e.__wbindgen_export2),f=g,k=h(s,e.__wbindgen_export2),x=g,y=h(i,e.__wbindgen_export2),q=g;e.chartengine_set_mrd_pullback_htf_klines(this.__wbg_ptr,a,c,p,l,d,w,m,f,k,x,y,q)}set_mrd_pullback_show_hidden_div(_){e.chartengine_set_mrd_pullback_show_hidden_div(this.__wbg_ptr,_)}set_mrd_pullback_sr_mode(_){e.chartengine_set_mrd_pullback_sr_mode(this.__wbg_ptr,_)}set_mrd_pullback_text_size(_){e.chartengine_set_mrd_pullback_text_size(this.__wbg_ptr,_)}set_mrd_pullback_tf_mode(_){e.chartengine_set_mrd_pullback_tf_mode(this.__wbg_ptr,_)}set_mrd_pullback_trend_mode(_){e.chartengine_set_mrd_pullback_trend_mode(this.__wbg_ptr,_)}set_obf_data(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_obf_data(this.__wbg_ptr,t,r)}set_obf_ratio(_){e.chartengine_set_obf_ratio(this.__wbg_ptr,_)}set_obf_show_cum_delta(_){e.chartengine_set_obf_show_cum_delta(this.__wbg_ptr,_)}set_obf_show_net_flow(_){e.chartengine_set_obf_show_net_flow(this.__wbg_ptr,_)}set_obf_show_obi(_){e.chartengine_set_obf_show_obi(this.__wbg_ptr,_)}set_obm_anchor_top_right(_){e.chartengine_set_obm_anchor_top_right(this.__wbg_ptr,_)}set_obm_data(_,t,r,n,s,i,a,c,p,l,d,w,m){e.chartengine_set_obm_data(this.__wbg_ptr,_,t,r,n,s,i,a,c,p,l,d,w,m)}set_obs_com(_){e.chartengine_set_obs_com(this.__wbg_ptr,_)}set_obs_gaps(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_obs_gaps(this.__wbg_ptr,r,n,s,i)}set_obs_show_alerts(_){e.chartengine_set_obs_show_alerts(this.__wbg_ptr,_)}set_obs_show_com(_){e.chartengine_set_obs_show_com(this.__wbg_ptr,_)}set_obs_show_gaps(_){e.chartengine_set_obs_show_gaps(this.__wbg_ptr,_)}set_obs_show_walls(_){e.chartengine_set_obs_show_walls(this.__wbg_ptr,_)}set_obs_walls(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_obs_walls(this.__wbg_ptr,r,n,s,i)}set_oi_data(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_oi_data(this.__wbg_ptr,t,r)}set_oi_data_ts(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_oi_data_ts(this.__wbg_ptr,r,n,s,i)}set_oi_display_mode(_){e.chartengine_set_oi_display_mode(this.__wbg_ptr,_)}set_oi_ratio(_){e.chartengine_set_oi_ratio(this.__wbg_ptr,_)}set_oi_show_on_chart(_){e.chartengine_set_oi_show_on_chart(this.__wbg_ptr,_)}set_path_cursor(_,t){e.chartengine_set_path_cursor(this.__wbg_ptr,_,t)}set_price_precision(_){e.chartengine_set_price_precision(this.__wbg_ptr,_)}set_real_timestamps(_){const t=h(_,e.__wbindgen_export2),r=g;e.chartengine_set_real_timestamps(this.__wbg_ptr,t,r)}set_replay_hovered(_){e.chartengine_set_replay_hovered(this.__wbg_ptr,_)}set_replay_preview(_){e.chartengine_set_replay_preview(this.__wbg_ptr,_)}set_replay_state(_,t,r){e.chartengine_set_replay_state(this.__wbg_ptr,_,t,r)}set_rsi_period(_){e.chartengine_set_rsi_period(this.__wbg_ptr,_)}set_rsi_ratio(_){e.chartengine_set_rsi_ratio(this.__wbg_ptr,_)}set_rsi_show_divergence(_){e.chartengine_set_rsi_show_divergence(this.__wbg_ptr,_)}set_rsi_show_ema(_){e.chartengine_set_rsi_show_ema(this.__wbg_ptr,_)}set_rsi_show_levels(_){e.chartengine_set_rsi_show_levels(this.__wbg_ptr,_)}set_rsi_show_on_chart(_){e.chartengine_set_rsi_show_on_chart(this.__wbg_ptr,_)}set_rsi_show_signals(_){e.chartengine_set_rsi_show_signals(this.__wbg_ptr,_)}set_rsi_show_traps(_){e.chartengine_set_rsi_show_traps(this.__wbg_ptr,_)}set_rsi_show_wma(_){e.chartengine_set_rsi_show_wma(this.__wbg_ptr,_)}set_rsi_smoothing(_){e.chartengine_set_rsi_smoothing(this.__wbg_ptr,_)}set_si_show_icebergs(_){e.chartengine_set_si_show_icebergs(this.__wbg_ptr,_)}set_si_show_stops(_){e.chartengine_set_si_show_stops(this.__wbg_ptr,_)}set_si_show_zones(_){e.chartengine_set_si_show_zones(this.__wbg_ptr,_)}set_sr_fvg_extend(_){e.chartengine_set_sr_fvg_extend(this.__wbg_ptr,_)}set_sr_fvg_htf(_){e.chartengine_set_sr_fvg_htf(this.__wbg_ptr,_)}set_sr_fvg_mitigation(_){e.chartengine_set_sr_fvg_mitigation(this.__wbg_ptr,_)}set_sr_fvg_theme(_){e.chartengine_set_sr_fvg_theme(this.__wbg_ptr,_)}set_sr_htf_minutes(_){e.chartengine_set_sr_htf_minutes(this.__wbg_ptr,_)}set_sr_mitigation(_){e.chartengine_set_sr_mitigation(this.__wbg_ptr,_)}set_sr_ob_last(_){e.chartengine_set_sr_ob_last(this.__wbg_ptr,_)}set_sr_show_breakers(_){e.chartengine_set_sr_show_breakers(this.__wbg_ptr,_)}set_sr_show_fvg(_){e.chartengine_set_sr_show_fvg(this.__wbg_ptr,_)}set_sr_show_fvg_signals(_){e.chartengine_set_sr_show_fvg_signals(this.__wbg_ptr,_)}set_sr_show_htf_ob(_){e.chartengine_set_sr_show_htf_ob(this.__wbg_ptr,_)}set_sr_show_metrics(_){e.chartengine_set_sr_show_metrics(this.__wbg_ptr,_)}set_sr_show_ob(_){e.chartengine_set_sr_show_ob(this.__wbg_ptr,_)}set_sr_show_ob_activity(_){e.chartengine_set_sr_show_ob_activity(this.__wbg_ptr,_)}set_sr_show_ob_signals(_){e.chartengine_set_sr_show_ob_signals(this.__wbg_ptr,_)}set_sr_show_predict(_){e.chartengine_set_sr_show_predict(this.__wbg_ptr,_)}set_sr_show_smart_rev(_){e.chartengine_set_sr_show_smart_rev(this.__wbg_ptr,_)}set_sr_smart_rev_htf(_){e.chartengine_set_sr_smart_rev_htf(this.__wbg_ptr,_)}set_sr_stats_position(_){e.chartengine_set_sr_stats_position(this.__wbg_ptr,_)}set_sr_stats_type(_){e.chartengine_set_sr_stats_type(this.__wbg_ptr,_)}set_sr_text_size(_){e.chartengine_set_sr_text_size(this.__wbg_ptr,_)}set_theme(_){e.chartengine_set_theme(this.__wbg_ptr,_)}set_touch_mode(_){e.chartengine_set_touch_mode(this.__wbg_ptr,_)}set_tpo_ib(_){e.chartengine_set_tpo_ib(this.__wbg_ptr,_)}set_tpo_ib_minutes(_){e.chartengine_set_tpo_ib_minutes(this.__wbg_ptr,_)}set_tpo_letter_minutes(_){e.chartengine_set_tpo_letter_minutes(this.__wbg_ptr,_)}set_tpo_naked_poc(_){e.chartengine_set_tpo_naked_poc(this.__wbg_ptr,_)}set_tpo_period(_){e.chartengine_set_tpo_period(this.__wbg_ptr,_)}set_tpo_poc_line(_){e.chartengine_set_tpo_poc_line(this.__wbg_ptr,_)}set_tpo_profile_shape(_){e.chartengine_set_tpo_profile_shape(this.__wbg_ptr,_)}set_tpo_signals(_){e.chartengine_set_tpo_signals(this.__wbg_ptr,_)}set_tpo_single_prints(_){e.chartengine_set_tpo_single_prints(this.__wbg_ptr,_)}set_tpo_va_lines(_){e.chartengine_set_tpo_va_lines(this.__wbg_ptr,_)}set_volume_color_mode(_){e.chartengine_set_volume_color_mode(this.__wbg_ptr,_)}set_volume_ma_period(_){e.chartengine_set_volume_ma_period(this.__wbg_ptr,_)}set_volume_show_ma(_){e.chartengine_set_volume_show_ma(this.__wbg_ptr,_)}set_volume_show_signals(_){e.chartengine_set_volume_show_signals(this.__wbg_ptr,_)}set_vpin_bucket_size(_){e.chartengine_set_vpin_bucket_size(this.__wbg_ptr,_)}set_vpin_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_vpin_data(this.__wbg_ptr,r,n,s,i)}set_vpin_num_buckets(_){e.chartengine_set_vpin_num_buckets(this.__wbg_ptr,_)}set_vpin_ratio(_){e.chartengine_set_vpin_ratio(this.__wbg_ptr,_)}set_vpin_show_sma(_){e.chartengine_set_vpin_show_sma(this.__wbg_ptr,_)}set_vpin_show_zones(_){e.chartengine_set_vpin_show_zones(this.__wbg_ptr,_)}set_vpin_threshold(_){e.chartengine_set_vpin_threshold(this.__wbg_ptr,_)}set_vrvp_data(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.chartengine_set_vrvp_data(this.__wbg_ptr,r,n,s,i)}set_vrvp_poc_line(_){e.chartengine_set_vrvp_poc_line(this.__wbg_ptr,_)}show_latest(_){e.chartengine_show_latest(this.__wbg_ptr,_)}start_brush(_,t,r,n,s){e.chartengine_start_brush(this.__wbg_ptr,_,t,r,n,s)}start_elliott_manual(_,t,r,n,s){e.chartengine_start_elliott_manual(this.__wbg_ptr,_,t,r,n,s)}start_path(_,t,r,n,s,i){e.chartengine_start_path(this.__wbg_ptr,_,t,r,n,s,i)}update_drawing_anchor(_,t,r){e.chartengine_update_drawing_anchor(this.__wbg_ptr,_,t,r)}update_heatmap_column(_,t){const r=h(t,e.__wbindgen_export2),n=g;e.chartengine_update_heatmap_column(this.__wbg_ptr,_,r,n)}update_heatmap_column_at(_,t,r,n){const s=h(_,e.__wbindgen_export2),i=g;e.chartengine_update_heatmap_column_at(this.__wbg_ptr,s,i,t,r,n)}update_last_heatmap_column(_,t,r){const n=h(_,e.__wbindgen_export2),s=g;e.chartengine_update_last_heatmap_column(this.__wbg_ptr,n,s,t,r)}update_last_kline(_,t,r,n,s,i){e.chartengine_update_last_kline(this.__wbg_ptr,_,t,r,n,s,i)}update_mrd_pullback_last_htf_kline(_,t,r,n,s,i){e.chartengine_update_mrd_pullback_last_htf_kline(this.__wbg_ptr,_,t,r,n,s,i)}upsert_cvd_divergence(_,t,r,n,s,i,a,c,p,l,d){const w=v(_,e.__wbindgen_export2,e.__wbindgen_export3),m=g;e.chartengine_upsert_cvd_divergence(this.__wbg_ptr,w,m,t,r,n,s,i,a,c,p,l,d)}upsert_cvd_orderblock_ob(_,t,r,n,s,i,a,c,p,l,d,w,m,f,k,x,y,q,T,D,U,L,C,B,V,t_,r_,n_,s_,i_,a_,g_,o_,c_,h_){const p_=v(_,e.__wbindgen_export2,e.__wbindgen_export3),l_=g;e.chartengine_upsert_cvd_orderblock_ob(this.__wbg_ptr,p_,l_,t,r,n,s,i,a,c,p,l,d,w,m,f,k,x,y,q,T,D,U,L,C,B,V,t_,r_,n_,s_,i_,a_,g_,o_,c_,h_)}upsert_cvd_regime_flip(_,t,r,n,s,i,a,c){const p=v(_,e.__wbindgen_export2,e.__wbindgen_export3),l=g;e.chartengine_upsert_cvd_regime_flip(this.__wbg_ptr,p,l,t,r,n,s,i,a,c)}upsert_cvd_trade_signal(_,t,r,n,s,i,a,c,p,l,d,w,m,f,k,x,y,q,T,D,U){const L=v(_,e.__wbindgen_export2,e.__wbindgen_export3),C=g,B=v(U,e.__wbindgen_export2,e.__wbindgen_export3),V=g;e.chartengine_upsert_cvd_trade_signal(this.__wbg_ptr,L,C,t,r,n,s,i,a,c,p,l,d,w,m,f,k,x,y,q,T,D,B,V)}vpin_to_screen_y(_){return e.chartengine_vpin_to_screen_y(this.__wbg_ptr,_)}vrvp_hit_test(_,t){let r,n;try{const a=e.__wbindgen_add_to_stack_pointer(-16);e.chartengine_vrvp_hit_test(a,this.__wbg_ptr,_,t);var s=b().getInt32(a+4*0,!0),i=b().getInt32(a+4*1,!0);return r=s,n=i,u(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export(r,n,1)}}world_to_screen_x(_){return e.chartengine_world_to_screen_x(this.__wbg_ptr,_)}world_to_screen_y(_){return e.chartengine_world_to_screen_y(this.__wbg_ptr,_)}zoom(_,t,r){e.chartengine_zoom(this.__wbg_ptr,_,t,r)}zoom_indicator_y(_,t,r){e.chartengine_zoom_indicator_y(this.__wbg_ptr,_,t,r)}zoom_x(_,t){e.chartengine_zoom_x(this.__wbg_ptr,_,t)}zoom_y(_,t){e.chartengine_zoom_y(this.__wbg_ptr,_,t)}}Symbol.dispose&&(H.prototype[Symbol.dispose]=H.prototype.free);class N{__destroy_into_raw(){const _=this.__wbg_ptr;return this.__wbg_ptr=0,J.unregister(this),_}free(){const _=this.__destroy_into_raw();e.__wbg_orderbookengine_free(_,0)}center_on_mid(){e.orderbookengine_center_on_mid(this.__wbg_ptr)}clear(){e.orderbookengine_clear(this.__wbg_ptr)}clear_hover(){e.orderbookengine_clear_hover(this.__wbg_ptr)}get_command_buffer_len(){return e.orderbookengine_get_command_buffer_len(this.__wbg_ptr)>>>0}get_command_buffer_ptr(){return e.orderbookengine_get_command_buffer_ptr(this.__wbg_ptr)>>>0}get_hover_price(){return e.orderbookengine_get_hover_price(this.__wbg_ptr)}get_hover_qty(){return e.orderbookengine_get_hover_qty(this.__wbg_ptr)}get_hover_side(){return e.orderbookengine_get_hover_side(this.__wbg_ptr)}get_theme(){return e.orderbookengine_get_theme(this.__wbg_ptr)>>>0}is_dirty(){return e.orderbookengine_is_dirty(this.__wbg_ptr)!==0}constructor(_,t){const r=e.orderbookengine_new(_,t);return this.__wbg_ptr=r>>>0,J.register(this,this.__wbg_ptr,this),this}pan_y(_){e.orderbookengine_pan_y(this.__wbg_ptr,_)}push_heatmap_col(_,t,r){const n=h(_,e.__wbindgen_export2),s=g,i=h(t,e.__wbindgen_export2),a=g;e.orderbookengine_push_heatmap_col(this.__wbg_ptr,n,s,i,a,r)}push_snapshot(_,t,r){const n=h(_,e.__wbindgen_export2),s=g,i=h(t,e.__wbindgen_export2),a=g;e.orderbookengine_push_snapshot(this.__wbg_ptr,n,s,i,a,r)}render(){return e.orderbookengine_render(this.__wbg_ptr)>>>0}reset_ring(){e.orderbookengine_reset_ring(this.__wbg_ptr)}resize(_,t){e.orderbookengine_resize(this.__wbg_ptr,_,t)}set_auto_center(_){e.orderbookengine_set_auto_center(this.__wbg_ptr,_)}set_depth_book(_,t,r){const n=h(_,e.__wbindgen_export2),s=g,i=h(t,e.__wbindgen_export2),a=g;e.orderbookengine_set_depth_book(this.__wbg_ptr,n,s,i,a,r)}set_exchange_count(_){e.orderbookengine_set_exchange_count(this.__wbg_ptr,_)}set_exchange_labels(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;e.orderbookengine_set_exchange_labels(this.__wbg_ptr,t,r)}set_heatmap_alpha_mul(_){e.orderbookengine_set_heatmap_alpha_mul(this.__wbg_ptr,_)}set_heatmap_cols(_){e.orderbookengine_set_heatmap_cols(this.__wbg_ptr,_)}set_hover(_,t){e.orderbookengine_set_hover(this.__wbg_ptr,_,t)}set_hover_y(_){e.orderbookengine_set_hover_y(this.__wbg_ptr,_)}set_price_precision(_){e.orderbookengine_set_price_precision(this.__wbg_ptr,_)}set_ring_capacity(_,t){e.orderbookengine_set_ring_capacity(this.__wbg_ptr,_,t)}set_show_cumulative(_){e.orderbookengine_set_show_cumulative(this.__wbg_ptr,_)}set_show_signal_overlays(_){e.orderbookengine_set_show_signal_overlays(this.__wbg_ptr,_)}set_signal_absorption(_,t){e.orderbookengine_set_signal_absorption(this.__wbg_ptr,_,t)}set_signal_flow(_,t){e.orderbookengine_set_signal_flow(this.__wbg_ptr,_,t)}set_signal_gaps(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.orderbookengine_set_signal_gaps(this.__wbg_ptr,r,n,s,i)}set_signal_obi(_,t,r){e.orderbookengine_set_signal_obi(this.__wbg_ptr,_,t,r)}set_signal_spoof(_){e.orderbookengine_set_signal_spoof(this.__wbg_ptr,_)}set_signal_walls(_,t){const r=h(_,e.__wbindgen_export2),n=g,s=h(t,e.__wbindgen_export2),i=g;e.orderbookengine_set_signal_walls(this.__wbg_ptr,r,n,s,i)}set_symbol(_){const t=v(_,e.__wbindgen_export2,e.__wbindgen_export3),r=g;e.orderbookengine_set_symbol(this.__wbg_ptr,t,r)}set_theme(_){e.orderbookengine_set_theme(this.__wbg_ptr,_)}set_tick_size(_){e.orderbookengine_set_tick_size(this.__wbg_ptr,_)}set_visible_ticks(_){e.orderbookengine_set_visible_ticks(this.__wbg_ptr,_)}zoom_y(_,t){e.orderbookengine_zoom_y(this.__wbg_ptr,_,t)}}Symbol.dispose&&(N.prototype[Symbol.dispose]=N.prototype.free);class X{__destroy_into_raw(){const _=this.__wbg_ptr;return this.__wbg_ptr=0,K.unregister(this),_}free(){const _=this.__destroy_into_raw();e.__wbg_tickengine_free(_,0)}chart_height_px(){return e.tickengine_chart_height_px(this.__wbg_ptr)}chart_left_px(){return e.tickengine_chart_left_px(this.__wbg_ptr)}chart_top_px(){return e.tickengine_chart_top_px(this.__wbg_ptr)}chart_width_px(){return e.tickengine_chart_width_px(this.__wbg_ptr)}clear(){e.tickengine_clear(this.__wbg_ptr)}clear_hover(){e.tickengine_clear_hover(this.__wbg_ptr)}get_command_buffer_len(){return e.tickengine_get_command_buffer_len(this.__wbg_ptr)>>>0}get_command_buffer_ptr(){return e.tickengine_get_command_buffer_ptr(this.__wbg_ptr)>>>0}get_last_mid(){return e.tickengine_get_last_mid(this.__wbg_ptr)}hit_zone(_,t){return e.tickengine_hit_zone(this.__wbg_ptr,_,t)}is_dirty(){return e.tickengine_is_dirty(this.__wbg_ptr)!==0}constructor(_,t){const r=e.tickengine_new(_,t);return this.__wbg_ptr=r>>>0,K.register(this,this.__wbg_ptr,this),this}pan_x(_){e.tickengine_pan_x(this.__wbg_ptr,_)}pan_y(_){e.tickengine_pan_y(this.__wbg_ptr,_)}push_book(_,t,r,n){const s=h(t,e.__wbindgen_export2),i=g,a=h(r,e.__wbindgen_export2),c=g;e.tickengine_push_book(this.__wbg_ptr,_,s,i,a,c,n)}push_trade(_,t,r,n){e.tickengine_push_trade(this.__wbg_ptr,_,t,r,n)}push_trades_batch(_){const t=h(_,e.__wbindgen_export2),r=g;e.tickengine_push_trades_batch(this.__wbg_ptr,t,r)}render(){return e.tickengine_render(this.__wbg_ptr)>>>0}reset_view(){e.tickengine_reset_view(this.__wbg_ptr)}reset_y_auto(){e.tickengine_reset_y_auto(this.__wbg_ptr)}resize(_,t){e.tickengine_resize(this.__wbg_ptr,_,t)}set_auto_scale_y(_){e.tickengine_set_auto_scale_y(this.__wbg_ptr,_)}set_follow_live(_){e.tickengine_set_follow_live(this.__wbg_ptr,_)}set_heatmap_intensity(_,t){e.tickengine_set_heatmap_intensity(this.__wbg_ptr,_,t)}set_heatmap_palette(_){e.tickengine_set_heatmap_palette(this.__wbg_ptr,_)}set_hover(_,t){e.tickengine_set_hover(this.__wbg_ptr,_,t)}set_large_trade_3d(_){e.tickengine_set_large_trade_3d(this.__wbg_ptr,_)}set_large_trade_scale(_){e.tickengine_set_large_trade_scale(this.__wbg_ptr,_)}set_lookback(_,t){e.tickengine_set_lookback(this.__wbg_ptr,_,t)}set_price_precision(_){e.tickengine_set_price_precision(this.__wbg_ptr,_)}set_show_book_heatmap(_){e.tickengine_set_show_book_heatmap(this.__wbg_ptr,_)}set_show_grid(_){e.tickengine_set_show_grid(this.__wbg_ptr,_)}set_show_latest_profile(_){e.tickengine_set_show_latest_profile(this.__wbg_ptr,_)}set_show_trade_tape(_){e.tickengine_set_show_trade_tape(this.__wbg_ptr,_)}set_show_volume(_){e.tickengine_set_show_volume(this.__wbg_ptr,_)}set_show_vwap(_){e.tickengine_set_show_vwap(this.__wbg_ptr,_)}set_theme(_){e.tickengine_set_theme(this.__wbg_ptr,_)}set_tick_size(_){e.tickengine_set_tick_size(this.__wbg_ptr,_)}xaxis_height_px(){return e.tickengine_xaxis_height_px(this.__wbg_ptr)}yaxis_width_px(){return e.tickengine_yaxis_width_px(this.__wbg_ptr)}zoom(_,t,r){e.tickengine_zoom(this.__wbg_ptr,_,t,r)}zoom_x(_,t){e.tickengine_zoom_x(this.__wbg_ptr,_,t)}zoom_y(_,t){e.tickengine_zoom_y(this.__wbg_ptr,_,t)}}Symbol.dispose&&(X.prototype[Symbol.dispose]=X.prototype.free);function I_(){e.wasm_init()}function A_(){const o=e.wasm_memory();return __(o)}function Y(){return{__proto__:null,"./chart_engine_bg.js":{__proto__:null,__wbg___wbindgen_memory_edb3f01e3930bbf6:function(){const _=e.memory;return Q(_)},__wbg___wbindgen_throw_6ddd609b62940d55:function(_,t){throw new Error(u(_,t))},__wbg_error_a6fa202b58aa1cd3:function(_,t){let r,n;try{r=_,n=t,console.error(u(_,t))}finally{e.__wbindgen_export(r,n,1)}},__wbg_new_227d7c05414eb861:function(){const _=new Error;return Q(_)},__wbg_stack_3b0d974bbf31e44f:function(_,t){const r=$(t).stack,n=v(r,e.__wbindgen_export2,e.__wbindgen_export3),s=g;b().setInt32(_+4,s,!0),b().setInt32(_+0,n,!0)},__wbindgen_object_drop_ref:function(_){__(_)}}}}const G=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(o=>e.__wbg_chartengine_free(o>>>0,1)),J=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(o=>e.__wbg_orderbookengine_free(o>>>0,1)),K=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(o=>e.__wbg_tickengine_free(o>>>0,1));function Q(o){O===z.length&&z.push(z.length+1);const _=O;return O=z[_],z[_]=o,_}function b_(o){o<1028||(z[o]=O,O=o)}function A(o,_){return o=o>>>0,Z().subarray(o/8,o/8+_)}function d_(o,_){return o=o>>>0,w_().subarray(o/4,o/4+_)}let I=null;function b(){return(I===null||I.buffer.detached===!0||I.buffer.detached===void 0&&I.buffer!==e.memory.buffer)&&(I=new DataView(e.memory.buffer)),I}let j=null;function Z(){return(j===null||j.byteLength===0)&&(j=new Float64Array(e.memory.buffer)),j}let F=null;function w_(){return(F===null||F.byteLength===0)&&(F=new Int32Array(e.memory.buffer)),F}function u(o,_){return o=o>>>0,k_(o,_)}let M=null;function u_(){return(M===null||M.byteLength===0)&&(M=new Uint32Array(e.memory.buffer)),M}let W=null;function R(){return(W===null||W.byteLength===0)&&(W=new Uint8Array(e.memory.buffer)),W}function $(o){return z[o]}let z=new Array(1024).fill(void 0);z.push(void 0,null,!0,!1);let O=z.length;function m_(o,_){const t=_(o.length*4,4)>>>0;return u_().set(o,t/4),g=o.length,t}function v_(o,_){const t=_(o.length*1,1)>>>0;return R().set(o,t/1),g=o.length,t}function h(o,_){const t=_(o.length*8,8)>>>0;return Z().set(o,t/8),g=o.length,t}function v(o,_,t){if(t===void 0){const a=E.encode(o),c=_(a.length,1)>>>0;return R().subarray(c,c+a.length).set(a),g=a.length,c}let r=o.length,n=_(r,1)>>>0;const s=R();let i=0;for(;i<r;i++){const a=o.charCodeAt(i);if(a>127)break;s[n+i]=a}if(i!==r){i!==0&&(o=o.slice(i)),n=t(n,r,r=i+o.length*3,1)>>>0;const a=R().subarray(n+i,n+r),c=E.encodeInto(o,a);i+=c.written,n=t(n,r,i,1)>>>0}return g=i,n}function __(o){const _=$(o);return b_(o),_}let S=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});S.decode();const f_=2146435072;let P=0;function k_(o,_){return P+=_,P>=f_&&(S=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),S.decode(),P=_),S.decode(R().subarray(o,o+_))}const E=new TextEncoder;"encodeInto"in E||(E.encodeInto=function(o,_){const t=E.encode(o);return _.set(t),{read:o.length,written:t.length}});let g=0,x_,e;function e_(o,_){return e=o.exports,x_=_,I=null,j=null,F=null,M=null,W=null,e.__wbindgen_start(),e}async function y_(o,_){if(typeof Response=="function"&&o instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(o,_)}catch(n){if(o.ok&&t(o.type)&&o.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n);else throw n}const r=await o.arrayBuffer();return await WebAssembly.instantiate(r,_)}else{const r=await WebAssembly.instantiate(o,_);return r instanceof WebAssembly.Instance?{instance:r,module:o}:r}function t(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}function q_(o){if(e!==void 0)return e;o!==void 0&&(Object.getPrototypeOf(o)===Object.prototype?{module:o}=o:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const _=Y();o instanceof WebAssembly.Module||(o=new WebAssembly.Module(o));const t=new WebAssembly.Instance(o,_);return e_(t,o)}async function z_(o){if(e!==void 0)return e;o!==void 0&&(Object.getPrototypeOf(o)===Object.prototype?{module_or_path:o}=o:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),o===void 0&&(o=new URL("chart_engine_bg.wasm",import.meta.url));const _=Y();(typeof o=="string"||typeof Request=="function"&&o instanceof Request||typeof URL=="function"&&o instanceof URL)&&(o=fetch(o));const{instance:t,module:r}=await y_(await o,_);return e_(t,r)}export{H as ChartEngine,N as OrderbookEngine,X as TickEngine,z_ as default,q_ as initSync,I_ as wasm_init,A_ as wasm_memory};
Binary file
@@ -1 +1 @@
1
- var z={FILL_RECT:1,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,END_FRAME:255},Be=["left","center","right"],Tt=new Map,Ge=4096;function qe(t,r,s,o){return t<<24|r<<16|s<<8|o}function V(t,r,s,o){let w=qe(t,r,s,o),e=Tt.get(w);return e||(e=`rgba(${t},${r},${s},${(o/255).toFixed(3)})`,Tt.size>=Ge&&Tt.clear(),Tt.set(w,e),e)}var re=new TextDecoder;function ut(t,r){return r&1?Math.round(t)+.5:Math.round(t)}function ct(t,r,s,o){let w=r.buffer;if(s+o>w.byteLength)return;let e=new DataView(w,s,o),i=new Uint8Array(w,s,o),n=0,u="",l="",f=-1,p="";for(;n<o;){let g=i[n];if(n+=1,g===z.END_FRAME)break;switch(g){case z.FILL_RECT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4,c!==u&&(t.fillStyle=c,u=c);let M=Math.round(a),m=Math.round(_);t.fillRect(M,m,Math.round(a+d)-M,Math.round(_+h)-m);break}case z.STROKE_RECT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let M=e.getFloat32(n,!0);n+=4,c!==l&&(t.strokeStyle=c,l=c),M!==f&&(t.lineWidth=M,f=M);let I=Math.round(M)&1,L=I?Math.round(a)+.5:Math.round(a),P=I?Math.round(_)+.5:Math.round(_);t.strokeRect(L,P,Math.round(d),Math.round(h));break}case z.LINE:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let M=e.getFloat32(n,!0);n+=4,t.beginPath(),c!==l&&(t.strokeStyle=c,l=c),M!==f&&(t.lineWidth=M,f=M),t.setLineDash([]);let m=Math.round(M);t.moveTo(ut(a,m),ut(_,m)),t.lineTo(ut(d,m),ut(h,m)),t.stroke();break}case z.DASHED_LINE:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let M=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let I=e.getFloat32(n,!0);n+=4,t.beginPath(),c!==l&&(t.strokeStyle=c,l=c),M!==f&&(t.lineWidth=M,f=M),t.setLineDash([m,I]);let L=Math.round(M);t.moveTo(ut(a,L),ut(_,L)),t.lineTo(ut(d,L),ut(h,L)),t.stroke(),t.setLineDash([]);break}case z.POLYLINE:{let a=e.getUint16(n,!0);n+=2;let _=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let d=e.getFloat32(n,!0);if(n+=4,a>0){let h=new Float32Array(a*2);for(let c=0;c<a;c++)h[c*2]=e.getFloat32(n,!0),n+=4,h[c*2+1]=e.getFloat32(n,!0),n+=4;if(t.beginPath(),_!==l&&(t.strokeStyle=_,l=_),d!==f&&(t.lineWidth=d,f=d),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",a<=3){t.moveTo(h[0],h[1]);for(let c=1;c<a;c++)t.lineTo(h[c*2],h[c*2+1])}else{t.moveTo(h[0],h[1]),t.lineTo((h[0]+h[2])*.5,(h[1]+h[3])*.5);for(let c=1;c<a-1;c++){let M=h[c*2],m=h[c*2+1],I=h[(c+1)*2],L=h[(c+1)*2+1];t.quadraticCurveTo(M,m,(M+I)*.5,(m+L)*.5)}t.lineTo(h[(a-1)*2],h[(a-1)*2+1])}t.stroke()}break}case z.TEXT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=i[n];n+=1;let M=e.getUint16(n,!0);n+=2;let m=re.decode(new Uint8Array(r.buffer,s+n,M));n+=M,d!==u&&(t.fillStyle=d,u=d);let I=`${Math.round(h)}px "IBM Plex Mono",monospace`;I!==p&&(t.font=I,p=I),t.textAlign=Be[c]||"left",t.textBaseline="middle",t.fillText(m,Math.round(a),Math.round(_));break}case z.CIRCLE:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let M=e.getFloat32(n,!0);n+=4,t.beginPath(),t.arc(a,_,d,0,Math.PI*2),h!==u&&(t.fillStyle=h,u=h),t.fill(),M>0&&(c!==l&&(t.strokeStyle=c,l=c),M!==f&&(t.lineWidth=M,f=M),t.stroke());break}case z.TRIANGLE:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let M=e.getFloat32(n,!0);n+=4;let m=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4,t.beginPath(),t.moveTo(a,_),t.lineTo(d,h),t.lineTo(c,M),t.closePath(),m!==u&&(t.fillStyle=m,u=m),t.fill();break}case z.SAVE:{t.save();break}case z.RESTORE:{t.restore(),u="",l="",f=-1,p="";break}case z.CLIP_RECT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=Math.floor(a),M=Math.floor(_);t.beginPath(),t.rect(c,M,Math.ceil(a+d)-c,Math.ceil(_+h)-M),t.clip();break}case z.ROTATED_TEXT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let M=e.getUint16(n,!0);n+=2;let m=re.decode(i.subarray(n,n+M));n+=M;let I=`${h}px sans-serif`;I!==p&&(t.font=I,p=I),d!==u&&(t.fillStyle=d,u=d),t.textAlign="center",t.textBaseline="middle",t.save(),t.translate(a,_),t.rotate(c),t.fillText(m,0,0),t.restore();break}case z.BUBBLE_3D:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=i[n],c=i[n+1],M=i[n+2],m=i[n+3];n+=4;let I=i[n],L=i[n+1],P=i[n+2],X=i[n+3];n+=4;let $=i[n],N=i[n+1],k=i[n+2],at=i[n+3];n+=4;let ht=e.getFloat32(n,!0);n+=4;let Y=d;if(Y<10){let W=`rgba(${h},${c},${M},${(m/255).toFixed(3)})`;t.beginPath(),t.arc(a,_,Y,0,Math.PI*2),t.fillStyle=W,t.fill(),u=""}else if(Y<18){let W=a-Y*.25,H=_-Y*.25,G=t.createRadialGradient(W,H,Y*.08,a,_,Y);G.addColorStop(0,`rgba(${I},${L},${P},${(X/255).toFixed(3)})`),G.addColorStop(1,`rgba(${h},${c},${M},${(m/255).toFixed(3)})`),t.beginPath(),t.arc(a,_,Y,0,Math.PI*2),t.fillStyle=G,t.fill(),u=""}else{let W=a-Y*.25,H=_-Y*.25,G=t.createRadialGradient(a,_,Y*.85,a,_,Y*1.2);G.addColorStop(0,`rgba(${$},${N},${k},${(at/255*.5).toFixed(3)})`),G.addColorStop(1,`rgba(${$},${N},${k},0)`),t.beginPath(),t.arc(a,_,Y*1.2,0,Math.PI*2),t.fillStyle=G,t.fill();let lt=t.createRadialGradient(W,H,Y*.08,a,_,Y);lt.addColorStop(0,`rgba(${I},${L},${P},${(X/255).toFixed(3)})`),lt.addColorStop(1,`rgba(${h},${c},${M},${(m/255).toFixed(3)})`),t.beginPath(),t.arc(a,_,Y,0,Math.PI*2),t.fillStyle=lt,t.fill();let b=Y*.2,C=t.createRadialGradient(W,H,0,W,H,b);C.addColorStop(0,"rgba(255,255,255,0.22)"),C.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(W,H,b,0,Math.PI*2),t.fillStyle=C,t.fill(),u=""}break}case z.FILL_POLYGON:{let a=e.getUint16(n,!0);n+=2;let _=V(i[n],i[n+1],i[n+2],i[n+3]);if(n+=4,a>2){t.beginPath();let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4,t.moveTo(d,h);for(let c=1;c<a;c++)t.lineTo(e.getFloat32(n,!0),e.getFloat32(n+4,!0)),n+=8;t.closePath(),_!==u&&(t.fillStyle=_,u=_),t.fill()}else n+=a*8;break}case z.DASHED_POLYLINE:{let a=e.getUint16(n,!0);n+=2;let _=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);if(n+=4,a>1){t.beginPath(),_!==l&&(t.strokeStyle=_,l=_),d!==f&&(t.lineWidth=d,f=d),t.setLineDash([h,c]),t.lineJoin="round";let M=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4,t.moveTo(M,m);for(let I=1;I<a;I++)t.lineTo(e.getFloat32(n,!0),e.getFloat32(n+4,!0)),n+=8;t.stroke(),t.setLineDash([])}else n+=a*8;break}case z.GRADIENT_RECT:{let a=e.getFloat32(n,!0);n+=4;let _=e.getFloat32(n,!0);n+=4;let d=e.getFloat32(n,!0);n+=4;let h=e.getFloat32(n,!0);n+=4;let c=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let M=V(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let m=Math.round(a),I=Math.round(_),L=Math.round(a+d)-m,P=Math.round(_+h)-I,X=t.createLinearGradient(m,I,m,I+P);X.addColorStop(0,c),X.addColorStop(1,M),t.fillStyle=X,u="",t.fillRect(m,I,L,P);break}default:return}}}var K={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"}};function bt(t){return K[t]?.type==="2point"}function It(t){return K[t]?.type==="3point"}function wt(t){let r=K[t]?.type;return r==="1point"||r==="1point_x"||r==="1point_xy"||r==="1point_xp"}function Et(t){return K[t]?.type==="freehand"}function ot(t){return K[t]?.type==="npoint"}function st(t){return K[t]?.type==="elliott_manual"}var oe={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function nt(t,r,s,o,w,e){e=e||oe;let i=K[r];if(!i)return 0;let n=0;return i.type==="3point"?n=t[i.addFn](s.x1,s.y1,s.x2,s.y2,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,s.pane):i.type==="2point"?n=t[i.addFn](s.x1,s.y1,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,s.pane):i.type==="1point_x"?n=t[i.addFn](o,e.r,e.g,e.b,e.lineWidth,e.dashed,s.pane):i.type==="1point_xp"?n=t[i.addFn](o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,s.pane):i.type==="1point_xy"?n=t[i.addFn](o,w,e.r,e.g,e.b,e.fontSize||12,s.pane):n=t[i.addFn](w,e.r,e.g,e.b,e.lineWidth,e.dashed,s.pane),n||0}function U(t,r,s,o,w,e,i){e=e||oe;let n=K[r];if(n){if(n.previewFn==="elliott"){t.set_elliott_preview(o,w,e.r,e.g,e.b,e.lineWidth,i);return}n.type==="3point"?s.step===1?t.set_drawing_preview(n.previewKind,s.x1,s.y1,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):s.step===2&&(n.previewFn==="fib_ext"?t.set_fib_ext_preview(s.x1,s.y1,s.x2,s.y2,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):t.set_channel_preview(s.x1,s.y1,s.x2,s.y2,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i)):n.type==="2point"?t.set_drawing_preview(n.previewKind,s.x1,s.y1,o,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):n.type==="1point_x"?t.set_drawing_preview(n.previewKind,o,0,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i):n.type==="1point_xp"||n.type==="1point_xy"?t.set_drawing_preview(n.previewKind,o,w,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i):t.set_drawing_preview(n.previewKind,0,w,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i)}}function F(t,r,s,o){let w=t.screen_to_world_x(r),e;switch(o){case 1:e=t.screen_to_rsi_y(s);break;case 2:e=t.screen_to_oi_y(s);break;case 3:e=t.screen_to_fr_y(s);break;case 4:e=t.screen_to_cvd_y(s);break;case 5:e=t.screen_to_vpin_y(s);break;case 6:e=t.screen_to_ob_flow_y(s);break;default:e=t.screen_to_world_y(s);break}return{wx:w,wy:e}}function J(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:0}function dt(t){return t===4||t===6||t===8||t===10||t===12||t===19}function D(t){return t===14||t===15||t===16||t===17||t===18||t===21}function x(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:0}function it(t,r,s,o){dt(r)?(t.pan(s,0),Math.abs(o)>.01&&r!==4&&t.pan_indicator_y(x(r),o)):t.pan(s,o)}function q(t){return t===0||t===4||t===6||t===8||t===10||t===12}function _e(t,r,s,o){t.addEventListener("wheel",l=>{if(o.disposed)return;l.preventDefault(),o.cancelMomentum();let f=l.deltaY>0?1.1:.9,p=r.hit_zone(l.offsetX,l.offsetY);D(p)?p!==14&&r.zoom_indicator_y(x(p),l.offsetY,f):dt(p)?p===4?r.zoom_x(l.offsetX,f):l.ctrlKey?r.zoom_indicator_y(x(p),l.offsetY,f):r.zoom_x(l.offsetX,f):l.ctrlKey?r.zoom_y(l.offsetY,f):l.shiftKey||p===2?r.zoom_x(l.offsetX,f):p===3?r.zoom_y(l.offsetY,f):r.zoom(l.offsetX,l.offsetY,f),s.onDirty()},{passive:!1}),t.addEventListener("mousedown",l=>{if(o.disposed||l.button!==0)return;o.cancelMomentum(),e();let f=performance.now();if(f-o.lastClickTime<300){o.lastClickTime=f;return}o.lastClickTime=f;let p=o.drawingMode;if(p){let a=r.hit_zone(l.offsetX,l.offsetY);if(!q(a))return;let _=J(a),{wx:d,wy:h}=F(r,l.offsetX,l.offsetY,_),c=p.style,M=p.tool;if(st(M)){if(!p.pathStarted)p.pane=_,r.start_elliott_manual(c.r,c.g,c.b,c.lineWidth,_),r.add_elliott_manual_point(d,h),p.pathStarted=!0,p.step=1;else if(r.add_elliott_manual_point(d,h)){o.finishDrawing(),s.onDirty();return}}else if(ot(M))p.pathStarted?r.add_path_point(d,h):(p.pane=_,r.start_path(c.r,c.g,c.b,c.lineWidth,c.dashed,_),r.add_path_point(d,h),p.pathStarted=!0,p.step=1);else if(Et(M))p.pane=_,r.start_brush(c.r,c.g,c.b,c.lineWidth,_),r.add_brush_point(d,h),o.isBrushing=!0;else if(It(M))if(p.step===0)p.x1=d,p.y1=h,p.pane=_,p.step=1;else if(p.step===1)p.x2=d,p.y2=h,p.step=2,r.clear_drawing_preview();else{let m=K[M];m&&m.previewFn==="fib_ext"?r.clear_fib_ext_preview():r.clear_channel_preview(),nt(r,M,p,d,h,c),o.finishDrawing()}else if(bt(M))p.step===0?(p.x1=d,p.y1=h,p.pane=_,p.step=1):(nt(r,M,p,d,h,c),o.finishDrawing());else{p.pane=_;let m=nt(r,M,p,d,h,c);o.finishDrawing(),M==="textnote"&&m>0&&(r.select_drawing(m),s.onDrawingSelected?.(m),s.onDrawingDblClick?.(m,l.offsetX,l.offsetY,l.clientX,l.clientY))}s.onDirty();return}let g=r.hit_zone(l.offsetX,l.offsetY);if(g===5){o.isResizingRsi=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(g===7){o.isResizingOi=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_oi_ratio(),t.style.cursor="ns-resize";return}if(g===9){o.isResizingFr=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_fr_ratio(),t.style.cursor="ns-resize";return}if(g===11){o.isResizingCvd=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(g===13){o.isResizingVpin=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(g===20){o.isResizingObFlow=!0,o.resizeStartY=l.offsetY,o.resizeStartRatio=r.get_obf_ratio(),t.style.cursor="ns-resize";return}if(q(g)){let a=r.get_selected_drawing();if(a>0){let M=r.hit_test_drawing_anchor(l.offsetX,l.offsetY);if(M>=0){o.isDraggingAnchor=!0,o.dragAnchorIdx=M,o.dragAnchorPane=J(g),t.style.cursor="grabbing";return}if(r.hit_test_drawing(l.offsetX,l.offsetY)===a){o.isDraggingDrawing=!0,o.dragDrawingPane=J(g);let{wx:I,wy:L}=F(r,l.offsetX,l.offsetY,o.dragDrawingPane);o.dragDrawingLastWx=I,o.dragDrawingLastWy=L,t.style.cursor="move";return}}let _=r.hit_test_drawing(l.offsetX,l.offsetY);if(_>0){r.deselect_marker(),s.onMarkerSelected?.(0),r.select_drawing(_),s.onDrawingSelected?.(_),s.onDirty();return}let d=r.hit_test_marker(l.offsetX,l.offsetY);if(d>0){r.deselect_drawing(),s.onDrawingSelected?.(0),r.select_marker(d),s.onMarkerSelected?.(d),s.onDirty();return}let h=r.get_selected_drawing(),c=r.get_selected_marker();h>0&&(r.deselect_drawing(),s.onDrawingSelected?.(0),s.onDirty()),c>0&&(r.deselect_marker(),s.onMarkerSelected?.(0),s.onDirty())}q(g)&&(o.liqPinSx=l.offsetX,o.liqPinSy=l.offsetY,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,s.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700)),o.isDragging=!0,o.dragZone=g,o.lastX=l.offsetX,o.lastY=l.offsetY,g===2?t.style.cursor="ew-resize":g===3||D(g)?t.style.cursor="ns-resize":t.style.cursor="grabbing"});let w=null;function e(){w&&(cancelAnimationFrame(w),w=null)}function i(l,f){let p=r.hover_hit_test(l,f),g=p[0],a=p[1],_=p[2],d=p[3],h=p[4],c=o.drawingMode;g===2?t.style.cursor="ew-resize":g===3||D(g)||g===5||g===7||g===9||g===11||g===13||g===20?t.style.cursor="ns-resize":!c&&q(g)&&a>0&&_>=0?t.style.cursor="grab":!c&&q(g)&&a>0&&d===a?t.style.cursor="move":!c&&q(g)&&(d>0||h>0)?t.style.cursor="pointer":t.style.cursor="crosshair"}function n(l,f){let p=r.hit_zone(l,f);p===2||p===3||D(p)?r.hide_crosshair():r.set_crosshair(l,f),s.onDirty(),s.onCrosshairMove?.(l,f,p),s.onVrvpHover?.(l,f),o._pendingHoverX=l,o._pendingHoverY=f,w||(w=requestAnimationFrame(()=>{w=null,o.disposed||i(o._pendingHoverX,o._pendingHoverY)}))}t.addEventListener("mousemove",l=>{if(o.disposed)return;if(o.liqPinTimer){let p=Math.abs(l.offsetX-o.liqPinSx),g=Math.abs(l.offsetY-o.liqPinSy);(p>6||g>6)&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)}if(o.isResizingRsi){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_rsi_ratio(d),s.onDirty();return}if(o.isResizingOi){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_oi_ratio(d),s.onDirty();return}if(o.isResizingFr){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_fr_ratio(d),s.onDirty();return}if(o.isResizingCvd){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_cvd_ratio(d),s.onDirty();return}if(o.isResizingVpin){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_vpin_ratio(d),s.onDirty();return}if(o.isResizingObFlow){let g=t.getBoundingClientRect().height-28,_=(o.resizeStartY-l.offsetY)/g,d=Math.max(.05,Math.min(.5,o.resizeStartRatio+_));r.set_obf_ratio(d),s.onDirty();return}if(o.isDraggingAnchor){let{wx:p,wy:g}=F(r,l.offsetX,l.offsetY,o.dragAnchorPane);r.update_drawing_anchor(o.dragAnchorIdx,p,g),r.set_crosshair(l.offsetX,l.offsetY),s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,r.hit_zone(l.offsetX,l.offsetY));return}if(o.isDraggingDrawing){let{wx:p,wy:g}=F(r,l.offsetX,l.offsetY,o.dragDrawingPane),a=p-o.dragDrawingLastWx,_=g-o.dragDrawingLastWy;r.move_drawing(a,_),o.dragDrawingLastWx=p,o.dragDrawingLastWy=g,r.set_crosshair(l.offsetX,l.offsetY),s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,r.hit_zone(l.offsetX,l.offsetY));return}let f=o.drawingMode;if(o.isBrushing&&f){let p=f.pane||0,{wx:g,wy:a}=F(r,l.offsetX,l.offsetY,p);r.add_brush_point(g,a),r.set_crosshair(l.offsetX,l.offsetY),s.onDirty();return}if(f&&st(f.tool)&&f.pathStarted){let p=f.pane||0,{wx:g,wy:a}=F(r,l.offsetX,l.offsetY,p);r.set_elliott_manual_cursor(g,a),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(f&&ot(f.tool)&&f.pathStarted){let p=f.pane||0,{wx:g,wy:a}=F(r,l.offsetX,l.offsetY,p);r.set_path_cursor(g,a),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(f&&f.step>0){let p=f.pane||0,{wx:g,wy:a}=F(r,l.offsetX,l.offsetY,p);U(r,f.tool,f,g,a,f.style,p),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(f&&wt(f.tool)){let p=r.hit_zone(l.offsetX,l.offsetY),g=J(p),{wx:a,wy:_}=F(r,l.offsetX,l.offsetY,g);U(r,f.tool,f,a,_,f.style,g),r.set_crosshair(l.offsetX,l.offsetY),s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,p);return}if(o.isDragging){let p=l.offsetX-o.lastX,g=l.offsetY-o.lastY;o.lastX=l.offsetX,o.lastY=l.offsetY,o.dragZone===2?r.pan_x(p):o.dragZone===3?r.pan_y(g):o.dragZone===14||(D(o.dragZone)?r.pan_indicator_y(x(o.dragZone),g):it(r,o.dragZone,p,g)),r.set_crosshair(l.offsetX,l.offsetY),s.onDirty(),s.onCrosshairMove?.(l.offsetX,l.offsetY,o.dragZone),s.onVrvpHover?.(l.offsetX,l.offsetY);return}n(l.offsetX,l.offsetY)}),t.addEventListener("mouseup",()=>{o.disposed||(o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,r.finish_brush(),o.finishDrawing(),s.onDirty()),o.isDragging=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,t.style.cursor="crosshair")});function u(){o.disposed||o._leaveHandled||(o._leaveHandled=!0,requestAnimationFrame(()=>{o._leaveHandled=!1}),e(),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,r.finish_brush(),o.finishDrawing()),o.isDragging=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,r.hide_crosshair(),t.style.cursor="crosshair",s.onDirty(),s.onCrosshairHide?.(),s.onVrvpHover?.(null,null))}t.addEventListener("pointerleave",u),t.addEventListener("mouseleave",u),t.addEventListener("dblclick",l=>{if(o.disposed)return;l.preventDefault(),l.stopPropagation();let f=o.drawingMode;if(f&&st(f.tool)&&f.pathStarted){r.finish_elliott_manual(),o.finishDrawing(),s.onDirty();return}if(f&&ot(f.tool)&&f.pathStarted){r.finish_path(),o.finishDrawing(),s.onDirty();return}if(f)return;let p=r.hit_zone(l.offsetX,l.offsetY);if(dt(p)||D(p)){r.reset_indicator_y_auto(x(p)),s.onDirty();return}let g=r.hit_test_drawing(l.offsetX,l.offsetY);g>0&&(r.select_drawing(g),s.onDirty(),s.onDrawingDblClick?.(g,l.offsetX,l.offsetY,l.clientX,l.clientY))}),t.addEventListener("contextmenu",l=>{if(o.disposed)return;let f=o.drawingMode;if(f&&st(f.tool)&&f.pathStarted){l.preventDefault(),l.stopPropagation(),r.finish_elliott_manual(),o.finishDrawing(),s.onDirty();return}if(f&&ot(f.tool)&&f.pathStarted){l.preventDefault(),l.stopPropagation(),r.finish_path(),o.finishDrawing(),s.onDirty();return}})}var Nt=25;function ce(t,r,s,o){t.addEventListener("touchstart",w=>{if(!o.disposed){if(w.preventDefault(),o.cancelMomentum(),w.touches.length===2){clearTimeout(o.longPressTimer),o.isCrosshairMode=!1;let e=t.getBoundingClientRect(),i=w.touches[1].clientX-w.touches[0].clientX,n=w.touches[1].clientY-w.touches[0].clientY;o.lastTouchDist=Math.sqrt(i*i+n*n),o.lastX=(w.touches[0].clientX+w.touches[1].clientX)/2-e.left,o.lastY=(w.touches[0].clientY+w.touches[1].clientY)/2-e.top,o.dragZone=r.hit_zone(o.lastX,o.lastY),o.pinchAnchorY=o.lastY}else if(w.touches.length===1){let e=t.getBoundingClientRect(),i=w.touches[0].clientX-e.left,n=w.touches[0].clientY-e.top;o.touchStartX=i,o.touchStartY=n,o.touchMoved=!1;let u=o.drawingMode;if(u){let a=r.hit_zone(i,n);if(q(a)){let _=J(a),{wx:d,wy:h}=F(r,i,n,_),c=u.tool;if(st(c)){if(!u.pathStarted)u.pane=_,r.start_elliott_manual(u.style.r,u.style.g,u.style.b,u.style.lineWidth,_),r.add_elliott_manual_point(d,h),u.pathStarted=!0,u.step=1;else if(r.add_elliott_manual_point(d,h)){o.finishDrawing(),s.onDirty();return}}else ot(c)?u.pathStarted?r.add_path_point(d,h):(u.pane=_,r.start_path(u.style.r,u.style.g,u.style.b,u.style.lineWidth,u.style.dashed,_),r.add_path_point(d,h),u.pathStarted=!0,u.step=1):Et(c)?(u.pane=_,r.start_brush(u.style.r,u.style.g,u.style.b,u.style.lineWidth,_),r.add_brush_point(d,h),o.isBrushing=!0):It(c)?u.step===0?(u.x1=d,u.y1=h,u.pane=_,u.step=1,u._stepAtTouchStart=0,U(r,c,u,d,h,u.style,_)):u.step===1?(u._stepAtTouchStart=1,U(r,c,u,d,h,u.style,u.pane)):(u._stepAtTouchStart=2,U(r,c,u,d,h,u.style,u.pane)):bt(c)?u.step===0?(u.x1=d,u.y1=h,u.pane=_,u.step=1,u._stepAtTouchStart=0,U(r,c,u,d,h,u.style,_)):(u._stepAtTouchStart=1,U(r,c,u,d,h,u.style,u.pane)):wt(c)?(u.pane=_,U(r,c,u,d,h,u.style,_)):(u.pane=_,nt(r,c,u,d,h,u.style),o.finishDrawing());r.set_crosshair(i,n),s.onDirty(),s.onCrosshairMove?.(i,n,a)}return}let l=r.hover_hit_test(i,n),f=l[0],p=l[1],g=l[2];if(q(f)&&!o.drawingMode&&p>0){if(g>=0){o.isDraggingAnchor=!0,o.dragAnchorIdx=g,o.dragAnchorPane=J(f);return}if(l[3]===p){o.isDraggingDrawing=!0,o.dragDrawingPane=J(f);let{wx:_,wy:d}=F(r,i,n,o.dragDrawingPane);o.dragDrawingLastWx=_,o.dragDrawingLastWy=d;return}}o.isDragging=!0,o.isCrosshairMode=!1,o.lastX=i,o.lastY=n,o.dragZone=f,clearTimeout(o.longPressTimer),o.longPressTimer=setTimeout(()=>{o.isDragging&&!o.touchMoved&&(o.isCrosshairMode=!0,r.set_crosshair(i,n),s.onDirty(),s.onCrosshairMove?.(i,n,o.dragZone),s.onVrvpHover?.(i,n))},300),q(o.dragZone)&&(o.liqPinSx=i,o.liqPinSy=n,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,o.touchMoved||s.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",w=>{if(o.disposed)return;w.preventDefault();let e=t.getBoundingClientRect();if(o.isDraggingAnchor&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,{wx:l,wy:f}=F(r,n,u,o.dragAnchorPane);r.update_drawing_anchor(o.dragAnchorIdx,l,f),r.set_crosshair(n,u),s.onDirty();return}if(o.isDraggingDrawing&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top;o.touchMoved=!0;let{wx:l,wy:f}=F(r,n,u,o.dragDrawingPane),p=l-o.dragDrawingLastWx,g=f-o.dragDrawingLastWy;r.move_drawing(p,g),o.dragDrawingLastWx=l,o.dragDrawingLastWy=f,r.set_crosshair(n,u),s.onDirty();return}let i=o.drawingMode;if(o.isBrushing&&i&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,l=i.pane||0,{wx:f,wy:p}=F(r,n,u,l);r.add_brush_point(f,p),r.set_crosshair(n,u),s.onDirty(),o.touchMoved=!0;return}if(i&&st(i.tool)&&i.pathStarted&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,l=i.pane||0,{wx:f,wy:p}=F(r,n,u,l);r.set_elliott_manual_cursor(f,p),r.set_crosshair(n,u),s.onDirty(),o.touchMoved=!0;return}if(i&&ot(i.tool)&&i.pathStarted&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,l=i.pane||0,{wx:f,wy:p}=F(r,n,u,l);r.set_path_cursor(f,p),r.set_crosshair(n,u),s.onDirty(),o.touchMoved=!0;return}if(i&&i.step>0&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top;!o.touchMoved&&(Math.abs(n-o.touchStartX)>Nt||Math.abs(u-o.touchStartY)>Nt)&&(o.touchMoved=!0);let l=i.pane||0,{wx:f,wy:p}=F(r,n,u,l);U(r,i.tool,i,f,p,i.style,l),r.set_crosshair(n,u);let g=r.hit_zone(n,u);s.onDirty(),s.onCrosshairMove?.(n,u,g);return}if(i&&wt(i.tool)&&w.touches.length===1){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,l=r.hit_zone(n,u),f=J(l),{wx:p,wy:g}=F(r,n,u,f);U(r,i.tool,i,p,g,i.style,f),r.set_crosshair(n,u),s.onDirty(),s.onCrosshairMove?.(n,u,l);return}if(w.touches.length===2){o.velSamples=[];let n=w.touches[1].clientX-w.touches[0].clientX,u=w.touches[1].clientY-w.touches[0].clientY,l=Math.sqrt(n*n+u*u),f=o.lastTouchDist/l,p=(w.touches[0].clientX+w.touches[1].clientX)/2-e.left,g=(w.touches[0].clientY+w.touches[1].clientY)/2-e.top,a=o.pinchAnchorY??g;o.dragZone===3?r.zoom_y(a,f):D(o.dragZone)&&o.dragZone!==14?r.zoom_indicator_y(x(o.dragZone),a,f):o.dragZone===14?(r.zoom_x(p,f),it(r,4,p-o.lastX,g-o.lastY)):o.dragZone===2?r.zoom_x(p,f):dt(o.dragZone)?(r.zoom_x(p,f),it(r,o.dragZone,p-o.lastX,g-o.lastY)):(r.zoom(p,g,f),it(r,o.dragZone,p-o.lastX,g-o.lastY)),o.lastTouchDist=l,o.lastX=p,o.lastY=g,s.onDirty()}else if(w.touches.length===1&&o.isDragging){let n=w.touches[0].clientX-e.left,u=w.touches[0].clientY-e.top,l=n-o.lastX,f=u-o.lastY;if(!o.touchMoved&&(Math.abs(n-o.touchStartX)>Nt||Math.abs(u-o.touchStartY)>Nt)&&(o.touchMoved=!0,o.isCrosshairMode||clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)),o.isCrosshairMode)r.set_crosshair(n,u),s.onDirty(),s.onCrosshairMove?.(n,u,o.dragZone),s.onVrvpHover?.(n,u);else if(o.touchMoved){if(o.lastX=n,o.lastY=u,o.dragZone===3||D(o.dragZone)||o.recordVelocity(l,f),o.dragZone===2)r.pan_x(l);else if(o.dragZone===3){let g=Math.pow(1.005,f);r.zoom_y(o.touchStartY,g)}else if(o.dragZone!==14)if(D(o.dragZone)){let g=Math.pow(1.005,f);r.zoom_indicator_y(x(o.dragZone),o.touchStartY,g)}else it(r,o.dragZone,l,f);s.onDirty()}else o.lastX=n,o.lastY=u}},{passive:!1}),t.addEventListener("touchend",w=>{if(o.disposed)return;if(clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isDraggingAnchor){o.isDraggingAnchor=!1,o.dragAnchorIdx=-1,r.hide_crosshair(),s.onDirty(),s.onCrosshairHide?.();return}if(o.isDraggingDrawing){if(o.isDraggingDrawing=!1,r.hide_crosshair(),s.onDirty(),s.onCrosshairHide?.(),!o.touchMoved){let n=r.get_selected_drawing();if(n>0){let u=t.getBoundingClientRect();s.onDrawingDblClick?.(n,o.touchStartX,o.touchStartY,o.touchStartX+u.left,o.touchStartY+u.top)}}return}if(o.isBrushing){o.isBrushing=!1,r.finish_brush(),o.finishDrawing(),s.onDirty(),s.onCrosshairHide?.();return}let e=o.drawingMode;if(e&&st(e.tool)&&e.pathStarted){let n=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),l=o.touchStartY-(o._pathLastTapY||0),f=Math.sqrt(u*u+l*l);n-(o._pathLastTapTime||0)<350&&f<30?(r.finish_elliott_manual(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=n,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,s.onDirty();return}if(e&&ot(e.tool)&&e.pathStarted){let n=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),l=o.touchStartY-(o._pathLastTapY||0),f=Math.sqrt(u*u+l*l);n-(o._pathLastTapTime||0)<350&&f<30?(r.finish_path(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=n,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,s.onDirty();return}if(e&&It(e.tool)){let n=e._stepAtTouchStart;if(e.step===1&&(n===1||o.touchMoved)){let u=t.getBoundingClientRect(),l=w.changedTouches?.[0];if(l){let f=l.clientX-u.left,p=l.clientY-u.top,g=e.pane||0,{wx:a,wy:_}=F(r,f,p,g);e.x2=a,e.y2=_,e.step=2,r.clear_drawing_preview()}}else if(e.step===2&&(n===2||o.touchMoved)){let u=t.getBoundingClientRect(),l=w.changedTouches?.[0];if(l){let f=l.clientX-u.left,p=l.clientY-u.top,g=e.pane||0,{wx:a,wy:_}=F(r,f,p,g),d=K[e.tool];d&&d.previewFn==="fib_ext"?r.clear_fib_ext_preview():r.clear_channel_preview(),nt(r,e.tool,e,a,_,e.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(r.hide_crosshair(),s.onCrosshairHide?.()),s.onDirty();return}if(e&&e.step===1&&bt(e.tool)){if(e._stepAtTouchStart===1||o.touchMoved){let u=t.getBoundingClientRect(),l=w.changedTouches?.[0];if(l){let f=l.clientX-u.left,p=l.clientY-u.top,g=e.pane||0,{wx:a,wy:_}=F(r,f,p,g);nt(r,e.tool,e,a,_,e.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(r.hide_crosshair(),s.onCrosshairHide?.()),s.onDirty();return}if(e&&wt(e.tool)){let n=t.getBoundingClientRect(),u=w.changedTouches?.[0];if(u){let l=u.clientX-n.left,f=u.clientY-n.top,p=r.hit_zone(l,f),g=q(p)?J(p):e.pane||0,{wx:a,wy:_}=F(r,l,f,g),d=e.tool;r.clear_drawing_preview();let h=nt(r,d,e,a,_,e.style);o.finishDrawing(),d==="textnote"&&h>0&&(r.select_drawing(h),s.onDrawingSelected?.(h),s.onDrawingDblClick?.(h,l,f,l+n.left,f+n.top))}o.isDragging=!1,o.lastTouchDist=0,r.hide_crosshair(),s.onCrosshairHide?.(),s.onDirty();return}if(!o.touchMoved&&!o.drawingMode){let n=Date.now(),u=o.touchStartX,l=o.touchStartY,f=u-o.lastTapX,p=l-o.lastTapY,g=Math.sqrt(f*f+p*p),a=n-o.lastTapTime<350&&g<30,_=r.hit_zone(u,l);if(a&&(dt(_)||D(_)))r.reset_indicator_y_auto(x(_)),s.onDirty();else if(q(_)){let d=r.get_selected_drawing(),h=r.hit_test_drawing(u,l),c=0;if(h<=0&&(c=r.hit_test_marker(u,l)),h>0){r.deselect_marker(),s.onMarkerSelected?.(0),r.select_drawing(h);let M=t.getBoundingClientRect(),m=u+M.left,I=l+M.top;s.onDrawingSelected?.(h,m,I),(d<=0||d===h)&&s.onDrawingDblClick?.(h,u,l,m,I),s.onDirty()}else c>0?(r.deselect_drawing(),s.onDrawingSelected?.(0),r.select_marker(c),s.onMarkerSelected?.(c),s.onDirty()):(d>0&&(r.deselect_drawing(),s.onDrawingSelected?.(0),s.onDirty()),r.get_selected_marker()>0&&(r.deselect_marker(),s.onMarkerSelected?.(0),s.onDirty()))}o.lastTapTime=n,o.lastTapX=u,o.lastTapY=l}o.touchMoved&&!o.isCrosshairMode&&!o.drawingMode&&o.dragZone!==3&&!D(o.dragZone)&&o.startMomentum(o.dragZone),o.isDragging=!1,o.isCrosshairMode=!1,o.lastTouchDist=0,(!o.drawingMode||o.drawingMode.step===0)&&(r.hide_crosshair(),s.onCrosshairHide?.()),s.onDirty(),s.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isDragging=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.isBrushing=!1,o.isCrosshairMode=!1,o.lastTouchDist=0,o.cancelMomentum(),r.hide_crosshair(),s.onCrosshairHide?.(),s.onDirty()})}function Xt(t,r,s){let o={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null},w=.92,e=.5,i=80;o.recordVelocity=function(f,p){let g=performance.now();for(o.velSamples.push({dx:f,dy:p,t:g});o.velSamples.length>0&&g-o.velSamples[0].t>i;)o.velSamples.shift()};function n(){if(o.velSamples.length<2)return{vx:0,vy:0};let f=o.velSamples[0],g=o.velSamples[o.velSamples.length-1].t-f.t;if(g<5)return{vx:0,vy:0};let a=0,_=0;for(let h of o.velSamples)a+=h.dx,_+=h.dy;let d=16.67;return{vx:a/g*d,vy:_/g*d}}o.cancelMomentum=function(){o.momentumRaf&&(cancelAnimationFrame(o.momentumRaf),o.momentumRaf=null),o.velSamples=[]},o.startMomentum=function(f){let{vx:p,vy:g}=n();if(o.velSamples=[],Math.abs(p)<e&&Math.abs(g)<e)return;o.momentumVx=p,o.momentumVy=g,o.momentumZone=f;function a(){if(o.momentumVx*=w,o.momentumVy*=w,Math.abs(o.momentumVx)<e&&Math.abs(o.momentumVy)<e){o.momentumRaf=null;return}if(o.momentumZone===2)r.pan_x(o.momentumVx);else if(o.momentumZone===3)r.pan_y(o.momentumVy);else if(o.momentumZone===14){o.momentumRaf=null;return}else D(o.momentumZone)?r.pan_indicator_y(x(o.momentumZone),o.momentumVy):it(r,o.momentumZone,o.momentumVx,o.momentumVy);s.onDirty(),o.momentumRaf=requestAnimationFrame(a)}o.momentumRaf=requestAnimationFrame(a)};let u={setMode(f,p){f?(o.drawingMode={tool:f,style:p,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(o.drawingMode?.pathStarted&&r.finish_path(),o.drawingMode=null,r.clear_drawing_preview(),t.style.cursor="crosshair"),s.onDirty()},getMode(){return o.drawingMode}};s.drawingApi?.(u),o.finishDrawing=function(){r.clear_drawing_preview(),s.onDrawingComplete?.(),o.drawingMode=null,t.style.cursor="crosshair"},_e(t,r,s,o),ce(t,r,s,o);let l=f=>{let p=document.activeElement?.tagName,g=p==="INPUT"||p==="TEXTAREA"||document.activeElement?.isContentEditable;if((f.key==="Delete"||f.key==="Backspace")&&!o.drawingMode&&!g){let _=r.get_selected_drawing();if(_>0){r.remove_drawing(_),s.onDrawingSelected?.(0),s.onDirty();return}let d=r.get_selected_marker();if(d>0){r.remove_marker(d),s.onMarkerSelected?.(0),s.onDirty();return}}if(f.key==="Escape"&&!o.drawingMode){if(r.get_selected_drawing()>0){r.deselect_drawing(),s.onDrawingSelected?.(0),s.onDirty();return}if(r.get_selected_marker()>0){r.deselect_marker(),s.onMarkerSelected?.(0),s.onDirty();return}}if(f.key==="Escape"&&o.drawingMode){if(o.drawingMode.pathStarted){o.drawingMode.tool==="elliott"?r.finish_elliott_manual():r.finish_path(),o.finishDrawing(),s.onDirty();return}r.clear_drawing_preview(),o.drawingMode=null,t.style.cursor="crosshair",s.onDrawingCancel?.(),s.onDirty();return}let a=20;switch(f.key){case"+":case"=":r.zoom(t.width/2,t.height/2,.9);break;case"-":r.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":r.pan_x(a);break;case"ArrowRight":r.pan_x(-a);break;case"ArrowUp":r.pan_y(-a);break;case"ArrowDown":r.pan_y(a);break;case"r":case"R":r.auto_scale_y();for(let _=1;_<=5;_++)r.reset_indicator_y_auto(_);break;default:return}s.onDirty()};return window.addEventListener("keydown",l),()=>{o.disposed=!0,o.cancelMomentum(),window.removeEventListener("keydown",l)}}function he(t,r,s,o){let w=e=>o()(e);return{enableRsi(){t.enable_rsi(),r()},disableRsi(){t.disable_rsi(),r()},setRsiPeriod(e){t.set_rsi_period(e),r()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(e){t.set_rsi_show_ema(e),r()},setRsiShowWma(e){t.set_rsi_show_wma(e),r()},setRsiShowSignals(e){t.set_rsi_show_signals(e),r()},setRsiShowDivergence(e){t.set_rsi_show_divergence(e),r()},setRsiShowTraps(e){t.set_rsi_show_traps(e),r()},setRsiShowLevels(e){t.set_rsi_show_levels(e),r()},setRsiSmoothing(e){t.set_rsi_smoothing(e),r()},setRsiRatio(e){t.set_rsi_ratio(e),r()},getRsiRatio(){return t.get_rsi_ratio()},enableForexSignals(){w("forexSignals")&&(t.enable_forex_signals(),r())},disableForexSignals(){t.disable_forex_signals(),r()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(e){t.set_forex_signals_setup(e),r()},setForexSignalsMode(e){t.set_forex_signals_mode(e),r()},setForexSignalsShowStats(e){t.set_forex_signals_show_stats(e),r()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){s()||w("oi")&&(t.enable_oi(),r())},disableOi(){s()||(t.disable_oi(),r())},isOiEnabled(){if(s())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(e){s()||(t.set_oi_data(e),r())},setOiDataTs(e,i){s()||(t.set_oi_data_ts(e,i),r())},setOiShowOnChart(e){s()||(t.set_oi_show_on_chart(e),r())},setOiDisplayMode(e){s()||(t.set_oi_display_mode(e),r())},setOiRatio(e){s()||(t.set_oi_ratio(e),r())},getOiRatio(){if(s())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){s()||w("fundingRate")&&(t.enable_funding_rate(),r())},disableFundingRate(){s()||(t.disable_funding_rate(),r())},isFundingRateEnabled(){if(s())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(e,i){s()||(t.set_fr_binance_data(e,i),r())},setFrAggData(e,i){s()||(t.set_fr_agg_data(e,i),r())},setFrShowAgg(e){s()||(t.set_fr_show_agg(e),r())},setFrShowSma(e){s()||(t.set_fr_show_sma(e),r())},enableCvd(){s()||w("cvd")&&(t.enable_cvd(),r())},disableCvd(){s()||(t.disable_cvd(),r())},isCvdEnabled(){if(s())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(e,i){s()||(t.set_cvd_data(e,i),r())},setCvdSpotData(e,i){s()||(t.set_cvd_spot_data(e,i),r())},setCvdSource(e){s()||(t.set_cvd_source(e),r())},getCvdSource(){if(s())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(e){s()||(t.set_cvd_mode(e),r())},getCvdMode(){if(s())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(e){s()||(t.set_cvd_show_delta(e),r())},getCvdShowDelta(){if(s())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(e){s()||(t.set_cvd_show_signals(e),r())},getCvdShowSignals(){if(s())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(e){s()||(t.set_cvd_show_divergence(e),r())},getCvdShowDivergence(){if(s())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){s()||w("largeTrades")&&(t.enable_large_trades(),r())},disableLargeTrades(){s()||(t.disable_large_trades(),r())},isLargeTradesEnabled(){if(s())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(e){s()||(t.set_large_trades_data(e),r())},pushLargeTrade(e,i,n,u){s()||(t.push_large_trade(e,i,n,u),r())},clearLargeTrades(){s()||(t.clear_large_trades(),r())},setLtVolumeFilter(e,i){s()||(t.set_lt_volume_filter(e,i),r())},setLtBubbleScale(e){s()||(t.set_lt_bubble_scale(e),r())},getLtDataMinVol(){return s()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return s()?0:t.get_lt_data_max_vol()},ltHitTest(e,i){if(s())return"";try{return t.lt_hit_test(e,i)}catch{return""}},enableVrvp(){s()||w("vrvp")&&(t.enable_vrvp(),r())},disableVrvp(){s()||(t.disable_vrvp(),r())},isVrvpEnabled(){if(s())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(e){s()||(t.set_vrvp_poc_line(e),r())},vrvpHitTest(e,i){if(s())return"";try{return t.vrvp_hit_test(e,i)}catch{return""}},enableTpo(){s()||w("tpo")&&(t.enable_tpo(),r())},disableTpo(){s()||(t.disable_tpo(),r())},isTpoEnabled(){if(s())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(e){s()||(t.set_tpo_poc_line(e),r())},setTpoVaLines(e){s()||(t.set_tpo_va_lines(e),r())},setTpoIb(e){s()||(t.set_tpo_ib(e),r())},setTpoSinglePrints(e){s()||(t.set_tpo_single_prints(e),r())},setTpoPeriod(e){s()||(t.set_tpo_period(e),r())},getTpoPeriod(){if(s())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoNakedPoc(e){s()||(t.set_tpo_naked_poc(e),r())},setTpoProfileShape(e){s()||(t.set_tpo_profile_shape(e),r())},setTpoIbMinutes(e){s()||(t.set_tpo_ib_minutes(e),r())},setTpoLetterMinutes(e){s()||(t.set_tpo_letter_minutes(e),r())},setTpoSignals(e){s()||(t.set_tpo_signals(e),r())},isTpoSignals(){if(s())return!1;try{return t.is_tpo_signals()}catch{return!1}},enableLiqHeatmap(){s()||w("liqHeatmap")&&(t.enable_liq_heatmap(),r())},disableLiqHeatmap(){s()||(t.disable_liq_heatmap(),r())},isLiqHeatmapEnabled(){if(s())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(e,i){s()||(t.set_liq_heatmap_range(e,i),r())},getLiqHeatmapMin(){if(s())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(s())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(s())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(e){s()||(t.set_liq_heatmap_profile(e),r())},isLiqHeatmapProfile(){if(s())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(e){s()||(t.set_liq_heatmap_cell_height(e),r())},getLiqHeatmapCellHeight(){if(s())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapPredictions(e){s()||(t.set_liq_heatmap_predictions(e),r())},setLiqHeatmapFilledPct(e){s()||(t.set_liq_heatmap_filled_pct(e),r())},getLiqHeatmapFilledPct(){if(s())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(e,i){if(s())return"";try{return t.liq_heatmap_hit_test(e,i)}catch{return""}},liqZoneHitTest(e,i){if(s())return"";try{return t.liq_zone_hit_test(e,i)}catch{return""}},enableSmartRanges(){s()||w("smartRanges")&&(t.enable_smart_ranges(),r())},disableSmartRanges(){s()||(t.disable_smart_ranges(),r())},isSmartRangesEnabled(){if(s())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(e){s()||(t.set_sr_text_size(e),r())},setSrShowOb(e){s()||(t.set_sr_show_ob(e),r())},setSrObLast(e){s()||(t.set_sr_ob_last(e),r())},setSrShowObActivity(e){s()||(t.set_sr_show_ob_activity(e),r())},setSrShowBreakers(e){s()||(t.set_sr_show_breakers(e),r())},setSrMitigation(e){s()||(t.set_sr_mitigation(e),r())},setSrShowMetrics(e){s()||(t.set_sr_show_metrics(e),r())},setSrShowHtfOb(e){s()||(t.set_sr_show_htf_ob(e),r())},setSrHtfMinutes(e){s()||(t.set_sr_htf_minutes(e),r())},setSrShowFvg(e){s()||(t.set_sr_show_fvg(e),r())},setSrFvgTheme(e){s()||(t.set_sr_fvg_theme(e),r())},setSrFvgMitigation(e){s()||(t.set_sr_fvg_mitigation(e),r())},setSrFvgHtf(e){s()||(t.set_sr_fvg_htf(e),r())},setSrFvgExtend(e){s()||(t.set_sr_fvg_extend(e),r())},setSrShowObSignals(e){s()||(t.set_sr_show_ob_signals(e),r())},setSrShowPredict(e){s()||(t.set_sr_show_predict(e),r())},setSrShowFvgSignals(e){s()||(t.set_sr_show_fvg_signals(e),r())},setSrShowSmartRev(e){s()||(t.set_sr_show_smart_rev(e),r())},setSrSmartRevHtf(e){s()||(t.set_sr_smart_rev_htf(e),r())},setSrStatsType(e){s()||(t.set_sr_stats_type(e),r())},setSrStatsPosition(e){s()||(t.set_sr_stats_position(e),r())},getSrSignalsCount(){if(s())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){s()||w("emaStructure")&&(t.enable_ema_structure(),r())},disableEmaStructure(){s()||(t.disable_ema_structure(),r())},isEmaStructureEnabled(){if(s())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(e){s()||(t.set_es_ema1_len(e),r())},setEsEma2Len(e){s()||(t.set_es_ema2_len(e),r())},setEsWmaLen(e){s()||(t.set_es_wma_len(e),r())},setEsShowEma1(e){s()||(t.set_es_show_ema1(e),r())},setEsShowEma2(e){s()||(t.set_es_show_ema2(e),r())},setEsShowWma(e){s()||(t.set_es_show_wma(e),r())},setEsSwingLen(e){s()||(t.set_es_swing_len(e),r())},setEsShowBos(e){s()||(t.set_es_show_bos(e),r())},enableLiveSignals(){s()||(t.enable_live_signals(),r())},disableLiveSignals(){s()||(t.disable_live_signals(),r())},isLiveSignalsEnabled(){if(s())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(e){s()||(t.set_live_signals_data(new Float64Array(e)),r())},clearLiveSignals(){s()||(t.clear_live_signals(),r())},setLiveSignalsLeverage(e){s()||(t.set_live_signals_leverage(e),r())},getLiveSignalsLeverage(){if(s())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(e){s()||(t.set_live_signals_trial(e),r())},setLiveSignalsShowEntry(e){s()||(t.set_live_signals_show_entry(e),r())},setLiveSignalsShowTpSl(e){s()||(t.set_live_signals_show_tp_sl(e),r())},setLiveSignalsShowMaxProfit(e){s()||(t.set_live_signals_show_max_profit(e),r())},setLiveSignalsShowLabels(e){s()||(t.set_live_signals_show_labels(e),r())},setLiveSignalsShowZones(e){s()||(t.set_live_signals_show_zones(e),r())},setLiveSignalsTextSize(e){s()||(t.set_live_signals_text_size(e),r())},setLiveSignalsPipValue(e){s()||(t.set_live_signals_pip_value(e),r())},setLiveSignalsLoading(e){s()||(t.set_live_signals_loading(e),r())},getLiveSignalsCount(){if(s())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){s()||w("vpin")&&(t.enable_vpin(),r())},disableVpin(){s()||(t.disable_vpin(),r())},isVpinEnabled(){if(s())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(e,i){s()||(t.set_vpin_data(e,i),r())},setVpinBucketSize(e){s()||(t.set_vpin_bucket_size(e),r())},getVpinBucketSize(){if(s())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(e){s()||(t.set_vpin_num_buckets(e),r())},getVpinNumBuckets(){if(s())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(e){s()||(t.set_vpin_threshold(e),r())},getVpinThreshold(){if(s())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(e){s()||(t.set_vpin_show_sma(e),r())},setVpinShowZones(e){s()||(t.set_vpin_show_zones(e),r())},enableStopIceberg(){s()||w("stopIceberg")&&(t.enable_stop_iceberg(),r())},disableStopIceberg(){s()||(t.disable_stop_iceberg(),r())},isStopIcebergEnabled(){if(s())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(e){s()||(t.set_si_show_stops(e),r())},setSiShowIcebergs(e){s()||(t.set_si_show_icebergs(e),r())},setSiShowZones(e){s()||(t.set_si_show_zones(e),r())},setIcebergEvents(e,i,n,u,l,f){s()||(t.set_iceberg_events(e,i,n,u,l,f),r())},getStopRunCount(){if(s())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(s())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),r()},disableVolume(){t.disable_volume(),r()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(e){t.set_volume_ma_period(e),r()},setVolumeShowMa(e){t.set_volume_show_ma(e),r()},setVolumeShowSignals(e){t.set_volume_show_signals(e),r()},setVolumeColorMode(e){t.set_volume_color_mode(e),r()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),r()},disableObSignals(){t.disable_ob_signals(),r()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(e){t.set_obs_show_walls(e),r()},setObsShowGaps(e){t.set_obs_show_gaps(e),r()},setObsShowAlerts(e){t.set_obs_show_alerts(e),r()},setObsShowCom(e){t.set_obs_show_com(e),r()},setObsWalls(e,i){t.set_obs_walls(new Float64Array(e),new Float64Array(i)),r()},setObsGaps(e,i){t.set_obs_gaps(new Float64Array(e),new Float64Array(i)),r()},pushObsAlert(e,i,n,u,l){t.push_obs_alert(e,i,n,u,l),r()},setObsCom(e){t.set_obs_com(e),r()},clearObSignals(){t.clear_ob_signals(),r()},enableObFlow(){t.enable_ob_flow(),r()},disableObFlow(){t.disable_ob_flow(),r()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(e){t.set_obf_show_obi(e),r()},setObfShowNetFlow(e){t.set_obf_show_net_flow(e),r()},setObfShowCumDelta(e){t.set_obf_show_cum_delta(e),r()},pushObfSample(e,i,n,u){t.push_obf_sample(e,i,n,u),r()},setObfData(e){t.set_obf_data(new Float64Array(e)),r()},clearObFlow(){t.clear_ob_flow(),r()},setObfRatio(e){t.set_obf_ratio(e),r()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),r()},disableObMicro(){t.disable_ob_micro(),r()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(e,i,n,u,l,f,p,g,a,_,d,h,c){t.set_obm_data(e,i,n,u,l,f,p,g,a,_,d,h,c),r()},setObmAnchorTopRight(e){t.set_obm_anchor_top_right(e),r()},clearObMicro(){t.clear_ob_micro(),r()}}}function pe(t,r,s,o){let w=i=>o()(i),e=(i,n,u)=>i<=1&&n<=1&&u<=1&&(i>0||n>0||u>0)?[Math.round(i*255),Math.round(n*255),Math.round(u*255)]:[i&255,n&255,u&255];return{addMarker(i,n,u){t.add_marker(i,n,u),r()},clearMarkers(){t.clear_markers(),r()},hitTestMarker(i,n){return t.hit_test_marker(i,n)},selectMarker(i){t.select_marker(i),r()},deselectMarker(){t.deselect_marker(),r()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(i){t.remove_marker(i),r()},deleteSelectedMarker(){let i=t.get_selected_marker();return i>0&&(t.remove_marker(i),r()),i},addTrendline(i,n,u,l,f,p,g,a,_,d=0){let[h,c,M]=e(f,p,g),m=t.add_trendline(i,n,u,l,h,c,M,a,_,d);return r(),m},addHorizontalLine(i,n,u,l,f,p,g,a=0){let[_,d,h]=e(u,l,f),c=t.add_horizontal_line(i,n,_,d,h,p,g,a);return r(),c},addArrow(i,n,u,l,f,p,g,a,_,d=0){let[h,c,M]=e(f,p,g),m=t.add_arrow(i,n,u,l,h,c,M,a,_,d);return r(),m},addFibRetracement(i,n,u,l,f,p,g,a,_,d=0){if(!w("drawingFull"))return 0;let[h,c,M]=e(f,p,g),m=t.add_fib_retracement(i,n,u,l,h,c,M,a,_,d);return r(),m},addFibExtension(i,n,u,l,f,p,g,a,_,d,h,c=0){if(!w("drawingFull"))return 0;let[M,m,I]=e(g,a,_),L=t.add_fib_extension(i,n,u,l,f,p,M,m,I,d,h,c);return r(),L},addLongPosition(i,n,u,l,f,p,g,a,_,d=0){if(!w("drawingFull"))return 0;let[h,c,M]=e(f,p,g),m=t.add_long_position(i,n,u,l,h,c,M,a,_,d);return r(),m},addShortPosition(i,n,u,l,f,p,g,a,_,d=0){if(!w("drawingFull"))return 0;let[h,c,M]=e(f,p,g),m=t.add_short_position(i,n,u,l,h,c,M,a,_,d);return r(),m},addAnchoredVwap(i,n,u,l,f,p,g=0){if(!w("drawingFull"))return 0;let[a,_,d]=e(n,u,l),h=t.add_anchored_vwap(i,a,_,d,f,p,g);return r(),h},addPriceLabel(i,n,u,l,f,p,g=0){let[a,_,d]=e(u,l,f),h=t.add_price_label(i,n,a,_,d,p,g);return r(),h},addTextNote(i,n,u,l,f,p,g=0){let[a,_,d]=e(u,l,f),h=t.add_text_note(i,n,a,_,d,p,g);return r(),h},addElliottImpulse(i,n,u,l,f,p,g=0){if(!w("drawingFull"))return 0;let[a,_,d]=e(u,l,f),h=t.add_elliott_impulse(i,n,a,_,d,p,g);return r(),h},setDrawingFontSize(i,n){t.set_drawing_font_size(i,n),r()},getDrawingFontSize(i){return t.get_drawing_font_size(i)},setDrawingText(i,n){t.set_drawing_text(i,n),r()},getDrawingText(i){return t.get_drawing_text(i)},setDrawingStyle(i,n,u,l,f){let[p,g,a]=e(n,u,l);t.set_drawing_style(i,p,g,a,f),r()},getDrawingColor(i){let n=t.get_drawing_color(i);return n?{r:n>>>24&255,g:n>>>16&255,b:n>>>8&255,lineWidth:(n&255)/10}:null},getDrawingDashed(i){try{return t.get_drawing_dashed(i)}catch{return!1}},setDrawingDashed(i,n){t.set_drawing_dashed(i,n),r()},getDrawingHideLabel(i){try{return t.get_drawing_hide_label(i)}catch{return!1}},setDrawingHideLabel(i,n){t.set_drawing_hide_label(i,n),r()},getDrawingKindId(i){try{return t.get_drawing_kind_id(i)}catch{return 255}},removeDrawing(i){t.remove_drawing(i),r()},clearDrawings(){t.clear_drawings(),r()},drawingCount(){return t.drawing_count()},setDrawingPreview(i,n,u,l,f,p,g,a,_,d,h=0){let[c,M,m]=e(p,g,a);t.set_drawing_preview(i,n,u,l,f,c,M,m,_,d,h),r()},clearDrawingPreview(){t.clear_drawing_preview(),r()},cancelBrush(){t.cancel_brush(),r()},selectDrawing(i){t.select_drawing(i),r()},deselectDrawing(){t.deselect_drawing(),r()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let i=t.get_selected_drawing();return i>0&&(t.remove_drawing(i),r()),i},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(i){try{t.import_drawings_json(i),r()}catch(n){console.warn("[bridge] importDrawingsJson failed",n)}},screenToWorld(i,n){return{x:t.screen_to_world_x(i),y:t.screen_to_world_y(n)}},worldToScreen(i,n){try{return{x:t.world_to_screen_x(i),y:t.world_to_screen_y(n)}}catch{return null}}}}var j=t=>t instanceof Float64Array?t:new Float64Array(t);function we(t,r,s,o){let w=e=>o()(e);return{setKlines(e,i,n,u,l,f){t.set_klines(j(e),j(i),j(n),j(u),j(l),j(f)),r()},setRealTimestamps(e){t.set_real_timestamps(j(e)),r()},appendRealTimestamp(e){t.append_real_timestamp(e)},prependKlines(e,i,n,u,l,f){t.prepend_klines(j(e),j(i),j(n),j(u),j(l),j(f)),r()},appendKline(e,i,n,u,l,f){t.append_kline(e,i,n,u,l,f),r()},updateLastKline(e,i,n,u,l,f){t.update_last_kline(e,i,n,u,l,f),r()},popLastKline(){let e=t.pop_last_kline();return e&&r(),e},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(s())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(s())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(s())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(s())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(s())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(s())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(s())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(e,i,n,u,l,f,p){w("heatmap")&&(t.set_heatmap(j(e),i,n,u,l,f,p),r())},appendHeatmapColumn(e,i,n,u){w("heatmap")&&(t.append_heatmap_column(j(e),i,n,u),r())},updateLastHeatmapColumn(e,i,n){t.update_last_heatmap_column(j(e),i,n),r()},getHeatmapLastTimestamp(){try{return t.get_heatmap_last_timestamp()}catch{return 0}},getHeatmapXStep(){try{return t.get_heatmap_x_step()}catch{return 0}},updateHeatmapColumnAt(e,i,n,u){t.update_heatmap_column_at(j(e),i,n,u),r()},setHeatmapRange(e,i){t.set_heatmap_range(e,i),r()},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(e){try{t.set_heatmap_prefetch_range(e)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(e){try{t.set_heatmap_color_scheme(e),r()}catch{}},setChartType(e){s()||e===2&&!w("footprint")||(t.set_chart_type(e),r())},getChartType(){if(s())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(e){s()||w("footprint")&&(t.set_footprint_tick_size(e),r())},footprintEnsureLen(e){s()||t.footprint_ensure_len(e)},footprintAddTrade(e,i,n,u){s()||t.footprint_add_trade(e,i,n,u)},footprintAddTradeBatch(e){s()||!e||e.length===0||t.footprint_add_trade_batch(j(e))},footprintSetBar(e,i,n,u,l){s()||(t.footprint_set_bar(e,i,n,u,l),r())},footprintClear(){s()||(t.footprint_clear(),r())},footprintClearBar(e){s()||t.footprint_clear_bar(e)},footprintPrependEmpty(e){s()||t.footprint_prepend_empty(e)},footprintSetShowSignals(e){s()||(t.footprint_set_show_signals(e),r())},footprintGetShowSignals(){if(s())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(s())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(e){s()||(t.footprint_set_show_profile(e),r())},footprintGetShowProfile(){if(s())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintProfileHitTest(e,i){if(s())return"";try{return t.footprint_profile_hit_test(e,i)}catch{return""}},footprintSetDisplayMode(e){s()||(t.footprint_set_display_mode(e),r())},footprintGetDisplayMode(){if(s())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},enableDeltaHistogram(){s()||t.enable_delta_histogram()},disableDeltaHistogram(){s()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(s())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var Ue=1;function B(t){if(typeof t!="string")return{r:255,g:255,b:255,a:153};if(t.startsWith("#")){let s=t.slice(1);if(s.length===8)return{r:parseInt(s.slice(0,2),16),g:parseInt(s.slice(2,4),16),b:parseInt(s.slice(4,6),16),a:parseInt(s.slice(6,8),16)};let o=parseInt(s.slice(0,2),16),w=parseInt(s.slice(2,4),16),e=parseInt(s.slice(4,6),16);return{r:o,g:w,b:e,a:255}}let r=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return r?{r:+r[1],g:+r[2],b:+r[3],a:r[4]!==void 0?Math.round(+r[4]*255):255}:{r:255,g:255,b:255,a:153}}function Wt(t,r,s){let o=new Map,w=null,e=0,i=NaN;function n(){let a;try{a=t.kline_count()}catch{return w}if(a===0)return null;let _=t.kline_closes(),d=_?.[a-1]??NaN;if(w&&!(a!==e||d!==i))return w;try{let c=t.kline_timestamps(),M=t.kline_opens(),m=t.kline_highs(),I=t.kline_lows(),L=t.kline_volumes();if(!c||!_)return w;w={timestamps:Array.from(c),open:Array.from(M),high:Array.from(m),low:Array.from(I),close:Array.from(_),volume:Array.from(L),length:a},e=a,i=d;for(let P of o.values())P._needsCompute=!0}catch{}return w}function u(){return{seriesLine(a,_="#ffffff99",d=1.5){let h=B(_);t.custom_series_line(new Float64Array(a),h.r,h.g,h.b,h.a,d)},seriesDashedLine(a,_="#ffffff66",d=1,h=4,c=4){let M=B(_);t.custom_series_dashed_line(new Float64Array(a),M.r,M.g,M.b,M.a,d,h,c)},band(a,_,d="rgba(100,149,237,0.08)"){let h=B(d);t.custom_band(new Float64Array(a),new Float64Array(_),h.r,h.g,h.b,h.a)},hline(a,_="#ffffff66",d=1){let h=B(_);t.custom_hline(a,h.r,h.g,h.b,h.a,d)},dashedHline(a,_="#ffffff66",d=1,h=6,c=4){let M=B(_);t.custom_dashed_hline(a,M.r,M.g,M.b,M.a,d,h,c)},marker(a,_,d="#e8a04a",h=3){let c=B(d);t.custom_marker(a,_,c.r,c.g,c.b,c.a,h)},markerUp(a,_,d="#26a69a",h=5){let c=B(d);t.custom_marker_up(a,_,c.r,c.g,c.b,c.a,h)},markerDown(a,_,d="#ef5350",h=5){let c=B(d);t.custom_marker_down(a,_,c.r,c.g,c.b,c.a,h)},text(a,_,d,h="#ffffffaa",c=10,M="center"){let m=B(h),I=M==="center"?1:M==="right"?2:0;t.custom_text(a,_,d,m.r,m.g,m.b,m.a,c,I)},priceLabel(a,_,d="#ffffffaa",h=10){let c=B(d);t.custom_price_label(a,_,c.r,c.g,c.b,c.a,h)},linePx(a,_,d,h,c,M=1){let m=B(c);t.custom_line_px(a,_,d,h,m.r,m.g,m.b,m.a,M)},fillRectPx(a,_,d,h,c){let M=B(c);t.custom_fill_rect_px(a,_,d,h,M.r,M.g,M.b,M.a)},strokeRectPx(a,_,d,h,c,M=1){let m=B(c);t.custom_stroke_rect_px(a,_,d,h,m.r,m.g,m.b,m.a,M)},textPx(a,_,d,h,c=10,M="left"){let m=B(h),I=M==="center"?1:M==="right"?2:0;t.custom_text_px(a,_,d,m.r,m.g,m.b,m.a,c,I)},worldToScreenX:a=>t.world_to_screen_x(a),worldToScreenY:a=>t.world_to_screen_y(a),screenToWorldX:a=>t.screen_to_world_x(a),screenToWorldY:a=>t.screen_to_world_y(a),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()})}}function l(a){if(!a.compute)return;let _=n();if(_)try{a._computed=a.compute(_,a.params)||{}}catch(d){console.warn(`[CustomIndicator "${a.name}"] compute error:`,d),a._computed={}}}let f=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function p(a){if(o.size===0)return;let _=n(),d=!1;for(let m of o.values())if(m.enabled&&!(m.compute&&!_)){d=!0;break}if(!d)return;t.custom_begin();let h=u(),c=_||f;for(let m of o.values())if(m.enabled&&!(m.compute&&!_)){m._needsCompute&&(l(m),m._needsCompute=!1);try{m.render.call(m,h,m._computed||{},c)}catch(I){console.warn(`[CustomIndicator "${m.name}"] render error:`,I)}}if(t.custom_end(),t.custom_command_count()>0){let m=t.get_custom_buffer_ptr(),I=t.get_custom_buffer_len();s(a,r,m,I)}}function g(){w=null,e=0,i=NaN;for(let a of o.values())a._needsCompute=!0}return{add(a){let _=Ue++,d={id:_,name:a.name||`Custom ${_}`,params:{...a.params},compute:a.compute||null,render:a.render,enabled:!0,_computed:{},_needsCompute:!0};return o.set(_,d),_},remove(a){o.delete(a)},updateParams(a,_){let d=o.get(a);d&&(Object.assign(d.params,_),d._needsCompute=!0)},setEnabled(a,_){let d=o.get(a);d&&(d.enabled=_)},list(){return[...o.values()].map(a=>({id:a.id,name:a.name,params:{...a.params},enabled:a.enabled}))},invalidateCompute:g,renderAll:p}}var ge={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!1,tpo:!1,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0}},xe={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs"},Qe={rsi:"Standard",drawingBasic:"Standard",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",largeTrades:"Professional",drawingFull:"Professional",vrvp:"Enterprise",tpo:"Enterprise",smartRanges:"Enterprise",emaStructure:"Enterprise",customIndicators:"Enterprise",forexSignals:"Enterprise",vpin:"Enterprise",stopIceberg:"Enterprise"};function gt(t){return ge[t]||ge.trial}function Ht(t){let r=gt(t),s=new Set;return function(w){if(r[w])return!0;if(!s.has(w)){s.add(w);let e=xe[w]||w,i=Qe[w]||"a higher";console.warn(`[MRD Chart Engine] "${e}" requires ${i} plan. Current plan: ${t}. Upgrade at https://mrd-chart.dev/pricing`)}return!1}}var $e=14,me="trial",Ct="free";var Bt=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Je=1297237059;function Ie(t){let r=`${t}:${Je}:${(t^2043453)>>>0}`,s=2166136261;for(let o=0;o<r.length;o++)s^=r.charCodeAt(o),s=Math.imul(s,16777619);return(s>>>0).toString(36)}function Lt(t){return`${t}.${Ie(t)}`}function At(t){if(!t||typeof t!="string")return null;let r=t.lastIndexOf(".");if(r<1)return null;let s=parseInt(t.slice(0,r),10);return!s||s<1e9||s>2e9||t.slice(r+1)!==Ie(s)?null:s}var Ce=Bt+"e7x",Le=Bt+"p3q",Ae="mrd_engine_session_id",ve="mrd_ce_db",mt="meta",ye="trial_ts",Te=Bt+"ck";function Gt(){try{return At(localStorage.getItem(Ce))}catch{return null}}function qt(t){try{localStorage.setItem(Ce,Lt(t))}catch{}}function Kt(){try{return At(localStorage.getItem(Le))}catch{return null}}function Ut(t){try{localStorage.setItem(Le,Lt(t))}catch{}}function xt(){try{return At(sessionStorage.getItem(Ae))}catch{return null}}function Qt(t){try{sessionStorage.setItem(Ae,Lt(t))}catch{}}function $t(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${Te}=([^;]+)`));return t?At(decodeURIComponent(t[1])):null}catch{return null}}function Jt(t){try{let r=encodeURIComponent(Lt(t));document.cookie=`${Te}=${r};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Mt=null,Me=!1;function ke(){if(!(Me||typeof indexedDB>"u")){Me=!0;try{let t=indexedDB.open(ve,1);t.onupgradeneeded=()=>{let r=t.result;r.objectStoreNames.contains(mt)||r.createObjectStore(mt)},t.onsuccess=()=>{let o=t.result.transaction(mt,"readonly").objectStore(mt).get(ye);o.onsuccess=()=>{let w=At(o.result);w&&(!Mt||w<Mt)&&(Mt=w,tr(w))}}}catch{}}}function Ee(t){Mt=t;try{let r=indexedDB.open(ve,1);r.onsuccess=()=>{r.result.transaction(mt,"readwrite").objectStore(mt).put(Lt(t),ye)}}catch{}}function tr(t){let r=Math.floor(Date.now()/1e3),s=Ne([Gt(),Kt(),xt(),$t(),t],r);s&&s!==t||s&&(qt(s),Ut(s),Qt(s),Jt(s))}function Ne(t,r){let s=null;for(let o of t)o&&(o>r+60||o<17e8||(!s||o<s)&&(s=o));return s}function er(){let t=Math.floor(Date.now()/1e3),r=[Gt(),Kt(),xt(),$t(),Mt];return Ne(r,t)}function rr(t){qt(t),Ut(t),Qt(t),Jt(t),Ee(t)}function or(t){Gt()||qt(t),Kt()||Ut(t),xt()||Qt(t),$t()||Jt(t),Mt||Ee(t)}ke();function Rt(t){if(!t||t==="trial")return sr();try{let r=JSON.parse(atob(t)),{p:s,d:o,e:w,s:e}=r;if(!s||!e)return{valid:!1,error:"Invalid license key format"};let i={...r};if(delete i.s,e!==Re(i))return{valid:!1,error:"Invalid license key signature"};if(w>0&&Date.now()/1e3>w)return{valid:!0,plan:Ct,watermark:!0,trialExpired:!0,originalPlan:s,error:`License expired on ${new Date(w*1e3).toLocaleDateString()}`,features:gt(Ct)};let n=r.pl||"web";if((n==="web"||n==="any")&&o&&o!=="*"&&typeof window<"u"){let u=window.location.hostname;if(u&&u!=="localhost"&&u!=="127.0.0.1"&&u!=="0.0.0.0"&&u!==""&&!o.split(",").map(p=>p.trim()).some(p=>nr(p,u)))return{valid:!1,error:`License not valid for domain: ${u}`}}if(n==="mobile"&&r.a&&typeof window<"u"){let u=window.__mrd_app_id;if(u&&u!==r.a)return{valid:!1,error:`License not valid for app: ${u}`}}return{valid:!0,plan:s,domain:o,platform:n,appId:r.a||null,expiry:w,watermark:!1,features:gt(s)}}catch{return{valid:!1,error:"Invalid license key"}}}function Re(t){let r="mrd-ce-hmac-2024-x9k2m",s=JSON.stringify(t),o=r+":"+s,w=2166136261,e=1818371886,i=3735928559;for(let n=0;n<o.length;n++){let u=o.charCodeAt(n);w=Math.imul(w^u,16777619)>>>0,e=Math.imul(e^u,1540483477)>>>0,i=Math.imul(i^u,461845907)>>>0}return(w.toString(36)+e.toString(36)+i.toString(36)).slice(0,24)}function sr(){let t=er();t?or(t):(t=Math.floor(Date.now()/1e3),rr(t));let r=t+$e*86400,s=Date.now()/1e3,o=Math.max(0,Math.ceil((r-s)/86400));return s>r?{valid:!0,plan:Ct,watermark:!0,trialExpired:!0,daysLeft:0,features:gt(Ct)}:{valid:!0,plan:me,watermark:!1,daysLeft:o,trialEnd:r,features:gt(me)}}function nr(t,r){if(t==="*"||t===r)return!0;if(t.startsWith("*.")){let s=t.slice(1);return r.endsWith(s)||r===t.slice(2)}return!1}var ir="MRD-Indicators",Se="mrd-indicators.com",ar="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNCk7CiAgICAgIH0KCiAgICAgIC5jbHMtMiB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtMik7CiAgICAgIH0KCiAgICAgIC5jbHMtMiwgLmNscy0zLCAuY2xzLTQsIC5jbHMtNSwgLmNscy02IHsKICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7CiAgICAgIH0KCiAgICAgIC5jbHMtMyB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtMyk7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNik7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNSk7CiAgICAgIH0KCiAgICAgIC5jbHMtNiB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNyk7CiAgICAgIH0KCiAgICAgIC5jbHMtNyB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQpOwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iOS4xMiIgeTE9IjE1Ljg4IiB4Mj0iMTkuNjMiIHkyPSI1LjM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2IzNTA5ZSIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNWE0YzciLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC0yIiB4MT0iOS4wOCIgeTE9IjYuODEiIHgyPSI5LjA4IiB5Mj0iMTQuNzMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjM0ZmIzIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTMiIHgxPSIxNy42NyIgeTE9IjYuMTEiIHgyPSI4LjQxIiB5Mj0iNi4xMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1YTJhOGIiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNCIgeDE9IjIwLjAzIiB5MT0iMTUuODkiIHgyPSIxMC45OCIgeTI9IjE1Ljg5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y2YWFjYiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3NzJhOGQiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC01IiB4MT0iMTkuMDMiIHkxPSIxNi44MiIgeDI9IjE0Ljc5IiB5Mj0iMTIuNTgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2VkMzQ4ZCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTYiIHgxPSIxNS4yNyIgeTE9IjE1LjA2IiB4Mj0iMTUuMjciIHkyPSIxOS4zNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZWU0YzliIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNyIgeDE9IjUuNTEiIHkxPSItMTI4LjAyIiB4Mj0iLTMuNyIgeTI9Ii0xMjguMDIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwOS4xMiAxMC4wMSkgcm90YXRlKDg5LjYpIiB4bGluazpocmVmPSIjbGluZWFyLWdyYWRpZW50LTMiLz4KICA8L2RlZnM+CiAgPGcgY2xhc3M9ImNscy04IiBpZD0iTG9nbyI+CiAgICA8ZyBpZD0iT0JKRUNUUyIgPgogICAgICA8ZyBpZCA9IkxvZ28iPiAKICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00LjIzLDExYzAsNS4zNiw0LjM3LDkuNzEsOS43Niw5LjcxczkuNzYtNC4zNSw5Ljc2LTkuNzFTMTkuMzksMS4yOSwxNCwxLjI5LDQuMjMsNS42NCw0LjIzLDExWk0xMC4yNiwxMC4wN2MwLTEuNTQsMS4yNS0yLjc4LDIuOC0yLjc4aDEuODdjMS41NSwwLDIuOCwxLjI1LDIuOCwyLjc4djEuODZjMCwxLjU0LTEuMjUsMi43OC0yLjgsMi43OGgtMS4yMmMtLjQ1LDAtLjg4LjE1LTEuMjIuNDRsLTIuMjMsMS44NHYtNi45MloiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMC4yNiwxNi45OXYtNi45MnMwLS4wMiwwLS4wM2MuMDItMS41MiwxLjI2LTIuNzUsMi44LTIuNzVoLTUuMDljLTIuMDUsMC0zLjczLDEuNjQtMy43NCwzLjY4LDAsLjAxLDAsLjAzLDAsLjA0LDAsLjA4LDAsLjE2LDAsLjI0LDAsLjA0LDAsLjA4LDAsLjEyLDAsLjA0LDAsLjA4LDAsLjEyLDAsLjA2LDAsLjExLjAxLjE3LDAsLjAyLDAsLjA1LDAsLjA3LDAsLjA2LjAxLjEzLjAyLjE5LDAsLjAxLDAsLjAzLDAsLjA0LDAsLjA3LjAxLjE0LjAyLjIxLDAsMCwwLC4wMSwwLC4wMiwwLC4wNy4wMi4xNS4wMy4yMiwwLDAsMCwwLDAsMCwuNjgsNC42OCw0LjcxLDguMjcsOS42LDguMy0yLjA0LS4wMi0zLjY3LTEuNjktMy42Ny0zLjcyWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE0LjA0LDEuMjlzLS4wMywwLS4wNCwwYy0uMDgsMC0uMTYsMC0uMjQsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDYsMC0uMTEsMC0uMTcsMC0uMDIsMC0uMDUsMC0uMDcsMC0uMDYsMC0uMTMuMDEtLjE5LjAyLS4wMSwwLS4wMywwLS4wNCwwLS4wNywwLS4xNC4wMS0uMjEuMDIsMCwwLS4wMSwwLS4wMiwwLS4wNywwLS4xNS4wMi0uMjIuMDMsMCwwLDAsMCwwLDAtNC43LjY4LTguMzIsNC42OS04LjM1LDkuNTQuMDItMi4wMiwxLjctMy42NSwzLjc0LTMuNjVoNi45NnMuMDIsMCwuMDMsMGMxLjUzLjAyLDIuNzcsMS4yNiwyLjc3LDIuNzh2LTUuMDZjMC0yLjA0LTEuNjUtMy43MS0zLjctMy43MloiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC45MywxNC43MWg1LjA5YzIuMDQsMCwzLjcyLTEuNjMsMy43NC0zLjY1LS4wMyw0Ljg2LTMuNjUsOC44Ny04LjM1LDkuNTQsMCwwLDAsMCwwLDAtLjA3LjAxLS4xNS4wMi0uMjIuMDMsMCwwLS4wMSwwLS4wMiwwLS4wNywwLS4xNC4wMi0uMjEuMDItLjAxLDAtLjAzLDAtLjA0LDAtLjA2LDAtLjEzLjAxLS4xOS4wMi0uMDIsMC0uMDUsMC0uMDcsMC0uMDYsMC0uMTEsMC0uMTcsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDgsMC0uMTYsMC0uMjQsMC0uMDEsMC0uMDMsMC0uMDQsMC0yLjA1LDAtMy43LTEuNjgtMy43LTMuNzJsMi4yMy0xLjg0Yy4zNC0uMjguNzgtLjQ0LDEuMjItLjQ0aDEuMjJaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTQuOTMsMTQuNzFoNS4wOWMyLjA0LDAsMy43Mi0xLjYzLDMuNzQtMy42NS0uMDMsNC44Ni0zLjY1LDguODctOC4zNSw5LjU0LDAsMCwwLDAsMCwwLS4wNy4wMS0uMTUuMDItLjIyLjAzLDAsMC0uMDEsMC0uMDIsMC0uMDcsMC0uMTQuMDItLjIxLjAyLS4wMSwwLS4wMywwLS4wNCwwLS4wNiwwLS4xMy4wMS0uMTkuMDItLjAyLDAtLjA1LDAtLjA3LDAtLjA2LDAtLjExLDAtLjE3LDAtLjA0LDAtLjA4LDAtLjEyLDAtLjA0LDAtLjA4LDAtLjEyLDAtLjA4LDAtLjE2LDAtLjI0LDAtLjAxLDAtLjAzLDAtLjA0LDAtMi4wNSwwLTMuNy0xLjY4LTMuNy0zLjcybDIuMjMtMS44NGMuMzQtLjI4Ljc4LS40NCwxLjIyLS40NGgxLjIyWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIwLjI4LDE0LjcxYy0uMDgsMC0uMTcsMC0uMjUsMGgtNi4zMWMtLjQ1LDAtLjg4LjE1LTEuMjIuNDRsLTIuMjMsMS44NGMwLC4wOCwwLC4xNywwLC4yNSwxLjA5LjY1LDIuMzcsMS4wMiwzLjczLDEuMDIsMi42NywwLDUuMDEtMS40Myw2LjI4LTMuNTVaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy02IiBkPSJNMjMuNzcsMTAuOTdzMC0uMDMsMC0uMDRjMC0uMDgsMC0uMTYsMC0uMjQsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDYsMC0uMTEtLjAxLS4xNywwLS4wMiwwLS4wNSwwLS4wNywwLS4wNi0uMDEtLjEzLS4wMi0uMTksMC0uMDEsMC0uMDMsMC0uMDQsMC0uMDctLjAyLS4xNC0uMDItLjIxLDAsMCwwLS4wMSwwLS4wMiwwLS4wNy0uMDItLjE1LS4wMy0uMjIsMCwwLDAsMCwwLDAtLjcxLTQuNjctNC43Ny04LjI0LTkuNjYtOC4yNCwyLjA0LDAsMy42OCwxLjY2LDMuNywzLjY5bC4wNCw1LjA2djEuODZzLjAxLjAyLjAxLjAzYzAsMS41Mi0xLjI1LDIuNzYtMi43OCwyLjc3bDUuMDktLjA0YzIuMDUtLjAxLDMuNzItMS42NiwzLjcxLTMuN1oiLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+",Vt=null,be=!1;function Pe(){if(Vt||be)return Vt;be=!0;let t=new Image;return t.onload=()=>{Vt=t},t.src=ar,null}function lr(){return Math.floor(Date.now()/864e5)}function ur(t){let r=(t^2654435769)>>>0;return function(){r=r+1831565813>>>0;let s=Math.imul(r^r>>>15,1|r);return s=s+Math.imul(s^s>>>7,61|s)^s,((s^s>>>14)>>>0)/4294967296}}function fr(t,r,s,o,w,e){let i=Pe();t.save(),t.setTransform(1,0,0,1,0,0),t.font="bold 10px Inter, system-ui, sans-serif";let n=t.measureText(o);t.font="8px Inter, system-ui, sans-serif";let u=t.measureText(w),l=i?18:0,f=i?14:0,p=7,g=5,a=i?5:0,d=l+a+Math.max(n.width,u.width)+p*2,h=Math.max(f,20)+g*2,c=Math.round(r-d/2),M=Math.round(s-h/2);t.globalAlpha=.45,t.fillStyle=e?"rgba(255,255,255,0.8)":"rgba(18,18,28,0.8)",t.shadowColor=e?"rgba(0,0,0,0.06)":"rgba(0,0,0,0.25)",t.shadowBlur=8,t.shadowOffsetY=1,t.beginPath(),t.roundRect(c,M,d,h,6),t.fill(),t.shadowColor="transparent",t.strokeStyle=e?"rgba(0,0,0,0.04)":"rgba(255,255,255,0.04)",t.lineWidth=.5,t.stroke();let m=c+p,I=M+h/2;i&&(t.globalAlpha=.5,t.drawImage(i,m,I-f/2,l,f),m+=l+a),t.globalAlpha=.5,t.font="bold 10px Inter, system-ui, sans-serif",t.fillStyle=e?"#1a1a2e":"#ededf5",t.textAlign="left",t.textBaseline="alphabetic",t.fillText(o,m,I-1),t.font="8px Inter, system-ui, sans-serif",t.fillStyle=e?"#777790":"#8080a0",t.textBaseline="top",t.fillText(w,m,I+2),t.restore()}function Fe(t,r,s,o){Pe();let w=r.width,e=r.height;if(w<100||e<80)return;t.save(),t.setTransform(1,0,0,1,0,0);let i=ur(lr()),n=100,u=Math.max(w-n*2,60),l=Math.max(e-n*2,40),f=n+i()*u,p=n+i()*l,g=s.trialExpired||s.plan===Ct,a=ir,_=g?`Free \u2014 ${Se}/pricing`:`Trial: ${s.daysLeft||0}d left \u2014 ${Se}`;fr(t,f,p,a,_,o),t.restore()}function _r({plan:t,domain:r="*",expiryDays:s=365,name:o,email:w}){let e=s>0?Math.floor(Date.now()/1e3)+s*86400:0,i={p:t,d:r,e,...o?{n:o}:{},...w?{m:w}:{},i:Date.now()};return i.s=Re(i),btoa(JSON.stringify(i))}var kt=null,te=null,Pt=null;async function Ft(){return kt?{module:kt,memory:te}:Pt||(Pt=(async()=>{let t=await import("./chart_engine.js");return await t.default(),te=t.wasm_memory(),kt=t,{module:t,memory:te}})(),Pt)}function et(t){let r=t.replace("#","");return[parseInt(r.substring(0,2),16)||0,parseInt(r.substring(2,4),16)||0,parseInt(r.substring(4,6),16)||0]}var Yt=null,Ot=null;async function Ye(){if(Yt)return Yt;let{module:t,memory:r}=await Ft();return Yt=t,Ot=r,t}function cr(){Yt||Ye().catch(()=>{})}async function dr(t,r={}){r.appId&&typeof window<"u"&&(window.__mrd_app_id=r.appId);let s=r.licenseKey||r.key||null,o=Rt(s);if(!o.valid)if(o.expired)console.warn(`[MRD Chart Engine] ${o.error}. Get a license at https://mrd-chart.dev/pricing`);else throw new Error(`[MRD Chart Engine] ${o.error}`);o.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${o.daysLeft} days remaining. Purchase: https://mrd-chart.dev/pricing`);let w=await Ye(),e=window.devicePixelRatio||1,i=t.getBoundingClientRect();(i.width<1||i.height<1)&&(await new Promise(S=>{let A=new ResizeObserver(y=>{for(let T of y)if(T.contentRect.width>0&&T.contentRect.height>0){A.disconnect(),S();return}});A.observe(t.parentElement||t),setTimeout(()=>{A.disconnect(),S()},2e3)}),i=t.getBoundingClientRect());let n=Math.max(i.width,100),u=Math.max(i.height,100);t.width=n*e,t.height=u*e;let l=t.getContext("2d");l.scale(e,e);let f=new w.ChartEngine(n,u);if("ontouchstart"in window||navigator.maxTouchPoints>0)try{f.set_touch_mode(!0)}catch{}try{let S=o.expired?2:o.watermark?1:0,A=o.daysLeft||0,y=1297237059;y=Math.imul(y,31)+S>>>0,y=Math.imul(y,31)+A>>>0,y=(y^y>>>16)>>>0,y=Math.imul(y,73244475)>>>0,y=(y^y>>>16)>>>0,f.set_license_state(S,A,y)}catch(S){console.warn("[MRD] set_license_state failed:",S.message)}let g=!0,a=null,_=!1,d=!1,h=!1,c=null,M=null,m=0,I=!1,L=!1,X=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:0;function $(){if(!(!_||d||a)){if(X>0){let S=performance.now()-m;if(S<X){M||(M=setTimeout(()=>{M=null,$()},X-S));return}}a=requestAnimationFrame(Xe)}}let N=()=>{g=!0,$()},k=()=>h,at=null,ht=null,Y=null,W=null,H=null,G=null,lt=null,b=null,C=0,E=null,R=null,O=0,v=0,pt=-1,vt=!1,yt=!1,Ze=Xt(t,f,{onDirty:N,onCrosshairMove:(S,A,y)=>{O=S,v=A,pt=y,vt=!0,yt=!0},onCrosshairHide:()=>{yt&&(yt=!1,vt=!0,pt=-1)},drawingApi:S=>{at=S},onDrawingComplete:()=>{ht?.()},onDrawingCancel:()=>{Y?.()},onDrawingSelected:(S,A,y)=>{W?.(S,A,y)},onMarkerSelected:S=>{H?.(S)},onDrawingDblClick:(S,A,y,T,rt)=>{G?.(S,A,y,T,rt)},onVrvpHover:(S,A)=>{lt?.(S,A)},onLiqAnnotationPin:(S,A)=>{R?.(S,A)}});function De(){if(!(!vt||L)){if(vt=!1,!yt){c&&c(null,0,0),b&&b("");return}if(c)if(pt===0||pt===1)try{let S=f.get_tooltip_data();c(S,O,v)}catch{}else c(null,0,0);if(b){let S=performance.now();if(pt===0||pt===1){if(S-C>=80){C=S;try{b(f.lt_hit_test(O,v))}catch{}}}else b("")}}}function Xe(){if(a=null,!(!_||d||L)){I=!0;try{let S=!1;try{S=g||f.is_dirty()}catch{L=!0;return}if(S){g=!1,m=performance.now();let A=!1;try{if(f.render()>0){let T=f.get_command_buffer_ptr(),rt=f.get_command_buffer_len();l.save(),l.setTransform(1,0,0,1,0,0),l.clearRect(0,0,t.width,t.height),l.restore(),ct(l,Ot,T,rt),A=!0}try{_t.renderAll(l)}catch{}}catch(y){if(A||(g=!0),y instanceof WebAssembly.RuntimeError){L=!0,console.error("[MRD] Engine crashed:",y.message);return}}De();try{E?.()}catch{}if(o.watermark)try{let y=f.get_theme()===1;Fe(l,t,o,y)}catch{}try{(g||f.is_dirty())&&$()}catch{}}}finally{I=!1}}}let St=Ht(o.plan),We=he(f,N,k,()=>St),He=pe(f,N,k,()=>St),Ve=we(f,N,k,()=>St),_t=Wt(f,Ot,ct);return{engine:f,start(){_=!0,d=!1,g=!0,$()},stop(){_=!1,a&&(cancelAnimationFrame(a),a=null),M&&(clearTimeout(M),M=null)},resize(S){if(L||I)return;if(i=t.getBoundingClientRect(),i.width<1||i.height<1){(S||0)<8&&setTimeout(()=>this.resize((S||0)+1),250);return}e=window.devicePixelRatio||1;let A=i.width*e,y=i.height*e;t.width=A,t.height=y,l.setTransform(1,0,0,1,0,0),l.scale(e,e);try{f.resize(i.width,i.height)}catch(T){if(T instanceof WebAssembly.RuntimeError){L=!0;return}throw T}N()},renderSync(){if(L)return 0;try{let S=f.render();if(S>0){let A=f.get_command_buffer_ptr(),y=f.get_command_buffer_len();l.save(),l.setTransform(1,0,0,1,0,0),l.clearRect(0,0,t.width,t.height),l.restore(),ct(l,Ot,A,y)}return S}catch(S){return S instanceof WebAssembly.RuntimeError&&(L=!0),0}},setHoverPrice(S){f.set_hover_price(S),N()},clearHoverPrice(){f.clear_hover_price(),N()},hitZone(S,A){return f.hit_zone(S,A)},startDrawing(S,A){at?.setMode(S,A)},cancelDrawing(){at?.setMode(null)},onDrawingComplete(S){ht=S},onDrawingCancel(S){Y=S},onDrawingSelected(S){W=S},onMarkerSelected(S){H=S},onDrawingDblClick(S){G=S},setReplayState(S,A,y){f.set_replay_state(S,A,y),N()},setReplayHovered(S){f.set_replay_hovered(S)},setReplayPreview(S){f.set_replay_preview(S),N()},setPrecision(S){f.set_price_precision(S),N()},setCandleInterval(S){f.set_candle_interval(S)},setTheme(S){let A=S==="light"?1:0;typeof f.set_theme=="function"?(f.set_theme(A),N()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return f.get_theme()===1?"light":"dark"},setCandleBullColor(S){let[A,y,T]=et(S);typeof f.set_candle_bull_color=="function"&&(f.set_candle_bull_color(A,y,T),N())},setCandleBearColor(S){let[A,y,T]=et(S);typeof f.set_candle_bear_color=="function"&&(f.set_candle_bear_color(A,y,T),N())},setBackgroundColor(S){let[A,y,T]=et(S);typeof f.set_background_color=="function"&&(f.set_background_color(A,y,T),N())},setGridColor(S,A=255){let[y,T,rt]=et(S);typeof f.set_grid_color=="function"&&(f.set_grid_color(y,T,rt,A),N())},setCrosshairColor(S,A=160){let[y,T,rt]=et(S);typeof f.set_crosshair_color=="function"&&(f.set_crosshair_color(y,T,rt,A),N())},setCrosshairStyle(S){typeof f.set_crosshair_style=="function"&&(f.set_crosshair_style(S),N())},setCrosshairWidth(S){typeof f.set_crosshair_width=="function"&&(f.set_crosshair_width(S),N())},setFontSize(S){typeof f.set_font_size=="function"&&(f.set_font_size(S),N())},getFontSize(){return typeof f.get_font_size=="function"?f.get_font_size():11},setGridHVisible(S){typeof f.set_grid_h_visible=="function"&&(f.set_grid_h_visible(!!S),N())},setGridVVisible(S){typeof f.set_grid_v_visible=="function"&&(f.set_grid_v_visible(!!S),N())},setBgGradient(S,A){if(typeof f.set_bg_gradient=="function"){let[y,T,rt]=et(A||"#000000");f.set_bg_gradient(!!S,y,T,rt),N()}},setCandleBullWickColor(S){let[A,y,T]=et(S);typeof f.set_candle_bull_wick_color=="function"&&(f.set_candle_bull_wick_color(A,y,T),N())},setCandleBullBorderColor(S){let[A,y,T]=et(S);typeof f.set_candle_bull_border_color=="function"&&(f.set_candle_bull_border_color(A,y,T),N())},setCandleBearWickColor(S){let[A,y,T]=et(S);typeof f.set_candle_bear_wick_color=="function"&&(f.set_candle_bear_wick_color(A,y,T),N())},setCandleBearBorderColor(S){let[A,y,T]=et(S);typeof f.set_candle_bear_border_color=="function"&&(f.set_candle_bear_border_color(A,y,T),N())},onTooltip(S){c=S},onVrvpHover(S){lt=S},onLtHover(S){b=S},onPostRender(S){E=S},onLiqAnnotationPin(S){R=S},pause(){d||(d=!0,a&&(cancelAnimationFrame(a),a=null),M&&(clearTimeout(M),M=null))},resume(){d&&(d=!1,_&&(g=!0,$()))},get isPaused(){return d},destroy(){h=!0,_=!1,d=!1,a&&(cancelAnimationFrame(a),a=null),M&&(clearTimeout(M),M=null),Ze();try{f.free()}catch{}},addIndicator(S){if(!St("customIndicators"))return null;let A=_t.add(S);return N(),A},removeIndicator(S){_t.remove(S),N()},updateIndicatorParams(S,A){_t.updateParams(S,A),N()},setIndicatorEnabled(S,A){_t.setEnabled(S,A),N()},listIndicators(){return _t.list()},invalidateCustomIndicators(){_t.invalidateCompute(),N()},get license(){return{plan:o.plan,valid:o.valid,expired:!!o.expired,watermark:!!o.watermark,daysLeft:o.daysLeft,features:o.features||{}}},setLicenseKey(S){o=Rt(S),!o.valid&&!o.expired&&console.error(`[MRD Chart Engine] ${o.error}`),St=Ht(o.plan);try{let A=o.expired?2:o.watermark?1:0,y=o.daysLeft||0,T=1297237059;T=Math.imul(T,31)+A>>>0,T=Math.imul(T,31)+y>>>0,T=(T^T>>>16)>>>0,T=Math.imul(T,73244475)>>>0,T=(T^T>>>16)>>>0,f.set_license_state(A,y,T)}catch{}return N(),o.valid},...Ve,...We,...He}}function hr(t,r){let{t:s,o,h:w,l:e,c:i,v:n}=t,u=i.length;if(u===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],f=[],p=[],g=[],a=[],_=[],d=Math.round(i[0]/r)*r,h=0;for(let c=0;c<u;c++){h+=n[c];let m=i[c]-d;for(;m>=r;){let I=d,L=d+r;l.push(s[c]),f.push(I),p.push(L),g.push(I),a.push(L),_.push(h),h=0,d=L}for(;-m>=r;){let I=d,L=d-r;l.push(s[c]),f.push(I),p.push(I),g.push(L),a.push(L),_.push(h),h=0,d=L}}return{t:l,o:f,h:p,l:g,c:a,v:_}}function pr(t,r){let{t:s,o,h:w,l:e,c:i,v:n}=t,u=i.length;if(u===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],f=[],p=[],g=[],a=[],_=[],d=o[0],h=w[0],c=e[0],M=0,m=s[0];for(let I=0;I<u;I++)for(h=Math.max(h,w[I]),c=Math.min(c,e[I]),M+=n[I];h-c>=r;){let L=i[I]>=d,P=L?c+r:h-r;if(l.push(m),f.push(d),p.push(h),g.push(c),a.push(P),_.push(M),d=P,h=L?Math.max(w[I],P):P,c=L?P:Math.min(e[I],P),M=0,m=s[I],h-c<r)break}return(M>0||l.length===0)&&(l.push(m),f.push(d),p.push(h),g.push(c),a.push(i[u-1]),_.push(M)),{t:l,o:f,h:p,l:g,c:a,v:_}}function wr(t,r){let{t:s,o,h:w,l:e,c:i,v:n}=t,u=i.length;if(u===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],f=[],p=[],g=[],a=[],_=[],d=Math.max(1,Math.round(r));for(let h=0;h<u;h+=d){let c=Math.min(h+d,u),M=-1/0,m=1/0,I=0;for(let L=h;L<c;L++)w[L]>M&&(M=w[L]),e[L]<m&&(m=e[L]),I+=n[L];l.push(s[h]),f.push(o[h]),p.push(M),g.push(m),a.push(i[c-1]),_.push(I)}return{t:l,o:f,h:p,l:g,c:a,v:_}}function gr(t,r){let s=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,o=s*2,w=r<=60?10:r<=300?5:3;return{brickSize:s,rangeSize:o,tickCount:w}}var mr={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function Mr(t={}){let r={...mr,...t},s=new Map,o=new Map,w=[],e=0;function i(g){return Math.round(g*1e8)/1e8}function n(g,a,_,d){for(let[h,c]of g){let M=i(h),m=a.get(M);if(!m){a.set(M,{lastVol:c,refills:0,totalConsumed:0,lastRefillTs:d,peakVisible:c});continue}if(c<m.lastVol*.3&&m.lastVol>0){let I=m.lastVol-c;m.totalConsumed+=I,m.lastVol=c;continue}if(c>m.lastVol*1.5&&m.totalConsumed>0)if(d-m.lastRefillTs<r.refillWindowMs){if(m.refills++,m.lastRefillTs=d,m.peakVisible=Math.max(m.peakVisible,c),m.refills>=r.minRefills){let L=m.totalConsumed,P=m.peakVisible;L>=P*r.hiddenRatio&&(w.push({timestamp:d,price:h,visibleSize:P,hiddenSize:L,isBid:_,refillCount:m.refills}),w.length>r.maxEvents&&w.shift(),m.refills=0,m.totalConsumed=0)}}else m.refills=1,m.totalConsumed=0,m.lastRefillTs=d;m.lastVol=c}if(a.size>r.maxTrackedLevels){let h=[...a.entries()];h.sort((M,m)=>M[1].lastRefillTs-m[1].lastRefillTs);let c=h.length-r.maxTrackedLevels;for(let M=0;M<c;M++)a.delete(h[M][0])}}function u(g,a,_){let d=_||Date.now();e=d;let h=g instanceof Map?g:new Map(g.map(([m,I])=>[m,I])),c=a instanceof Map?a:new Map(a.map(([m,I])=>[m,I]));n(h,s,!0,d),n(c,o,!1,d);let M=d-r.decayMs;for(;w.length>0&&w[0].timestamp<M;)w.shift()}function l(){return w}function f(g){if(!g||w.length===0)return;let a=w.length,_=new Float64Array(a),d=new Float64Array(a),h=new Float64Array(a),c=new Float64Array(a),M=new Uint8Array(a),m=new Uint32Array(a);for(let I=0;I<a;I++){let L=w[I];_[I]=L.timestamp,d[I]=L.price,h[I]=L.visibleSize,c[I]=L.hiddenSize,M[I]=L.isBid?1:0,m[I]=L.refillCount}g.setIcebergEvents(_,d,h,c,M,m)}function p(){s.clear(),o.clear(),w.length=0}return{onOrderbookUpdate:u,getEvents:l,pushToEngine:f,reset:p}}var ee=null,ze=null;async function Sr(){if(ee)return ee;let{module:t,memory:r}=await Ft();return ee=t,ze=r,t}var Oe=Promise.resolve();async function br(t,r={}){let s=await Sr();return await(Oe=Oe.then(()=>je(s,t,r),()=>je(s,t,r)))}function je(t,r,s){let o=window.devicePixelRatio||1,w=r.getBoundingClientRect(),e=Math.max(w.width,60),i=Math.max(w.height,60);r.width=e*o,r.height=i*o;let n=r.getContext("2d");n.scale(o,o);let u=new t.OrderbookEngine(e,i);s.symbol&&u.set_symbol(s.symbol),s.tickSize&&u.set_tick_size(s.tickSize),s.visibleTicks&&u.set_visible_ticks(s.visibleTicks),s.exchangeCount&&u.set_exchange_count(s.exchangeCount),s.pricePrecision!=null&&u.set_price_precision(s.pricePrecision),s.theme==="light"&&u.set_theme(1),s.heatmapCols&&u.set_heatmap_cols(s.heatmapCols),(s.ringCols||s.ringRows)&&u.set_ring_capacity(s.ringCols||300,s.ringRows||400),s.heatmapAlphaMul!=null&&u.set_heatmap_alpha_mul(Number(s.heatmapAlphaMul)),s.showCumulative!=null&&u.set_show_cumulative(!!s.showCumulative),s.showSignalOverlays!=null&&u.set_show_signal_overlays(!!s.showSignalOverlays);let l=!0,f=null,p=!1,g=!1,a=!1,_=null,d=null;function h(){!p||a||f||(f=requestAnimationFrame(M))}let c=()=>{l=!0,h()};function M(){if(f=null,!p||a)return;let b=!1;try{b=l||u.is_dirty()}catch{a=!0;return}if(b){l=!1;try{if(u.render()>0){let E=u.get_command_buffer_ptr(),R=u.get_command_buffer_len();n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,r.width,r.height),n.restore(),ct(n,ze,E,R)}}catch(C){if(C instanceof WebAssembly.RuntimeError){a=!0,console.error("[OrderbookEngine] crashed:",C.message);return}l=!0}}}r.style.touchAction="none";let m=!1,I=0,L=new Map,P=0,X=0,$=0,N=0,k=!1;function at(b){if(a)return;b.preventDefault();let C=b.deltaY>0?1.08:.93;u.zoom_y(C,b.offsetY),c()}function ht(b){if(!a){if(L.set(b.pointerId,{y:b.offsetY}),r.setPointerCapture(b.pointerId),L.size===1)m=!0,I=b.offsetY,N=b.offsetX,$=b.offsetY,k=!1;else if(L.size===2){m=!1;let C=[...L.values()];P=Math.abs(C[0].y-C[1].y),X=(C[0].y+C[1].y)/2}}}function Y(b){if(!a){if(L.set(b.pointerId,{y:b.offsetY}),L.size>=2){let C=[...L.values()],E=Math.abs(C[0].y-C[1].y),R=(C[0].y+C[1].y)/2;if(P>0){let v=P/Math.max(E,1);u.zoom_y(v,R)}let O=R-X;Math.abs(O)>.5&&u.pan_y(O),P=E,X=R,c()}else if(m){let C=b.offsetY-I;I=b.offsetY,(Math.abs(b.offsetX-N)>4||Math.abs(b.offsetY-$)>4)&&(k=!0),u.pan_y(C),c()}else if(u.set_hover(b.offsetX,b.offsetY),c(),_)try{let C=u.get_hover_price();if(C>0){let E=u.get_hover_qty(),R=u.get_hover_side();_({price:C,qty:E,side:R===2?"ask":"bid"})}else _(null)}catch{}}}function W(){a||(_&&_(null),u.clear_hover(),c())}function H(b){let C=m&&!k&&L.size===1;L.delete(b.pointerId);try{r.releasePointerCapture(b.pointerId)}catch{}if(L.size===0){if(C&&d&&!a)try{u.set_hover(b.offsetX,b.offsetY);let E=u.get_hover_price();if(E>0){let R=u.get_hover_qty(),O=u.get_hover_side();d({price:E,qty:R,side:O===2?"ask":"bid"})}}catch{}m=!1,P=0}else L.size===1&&(m=!0,I=[...L.values()][0].y,P=0)}function G(){a||(u.center_on_mid(),c())}r.addEventListener("wheel",at,{passive:!1}),r.addEventListener("pointerdown",ht),r.addEventListener("pointermove",Y),r.addEventListener("pointerup",H),r.addEventListener("pointercancel",H),r.addEventListener("pointerleave",W),r.addEventListener("dblclick",G);function lt(){r.removeEventListener("wheel",at),r.removeEventListener("pointerdown",ht),r.removeEventListener("pointermove",Y),r.removeEventListener("pointerup",H),r.removeEventListener("pointercancel",H),r.removeEventListener("pointerleave",W),r.removeEventListener("dblclick",G)}return{engine:u,start(){p=!0,l=!0,h()},stop(){p=!1,f&&(cancelAnimationFrame(f),f=null)},resize(){if(!(g||a)&&(w=r.getBoundingClientRect(),!(w.width<1||w.height<1))){o=window.devicePixelRatio||1,r.width=w.width*o,r.height=w.height*o,n.setTransform(1,0,0,1,0,0),n.scale(o,o);try{u.resize(w.width,w.height)}catch(b){if(b instanceof WebAssembly.RuntimeError){a=!0;return}throw b}c()}},pushSnapshot(b,C,E){if(a)return;let R=new Float64Array(b.length*2);for(let v=0;v<b.length;v++)R[v*2]=b[v][0],R[v*2+1]=b[v][1];let O=new Float64Array(C.length*2);for(let v=0;v<C.length;v++)O[v*2]=C[v][0],O[v*2+1]=C[v][1];try{u.push_snapshot(R,O,E)}catch(v){if(v instanceof WebAssembly.RuntimeError){a=!0;return}throw v}c()},pushSnapshotFlat(b,C,E){if(!a){try{u.push_snapshot(b,C,E)}catch(R){if(R instanceof WebAssembly.RuntimeError){a=!0;return}throw R}c()}},setDepthBook(b,C,E){if(a)return;let R=new Float64Array(b.length*2);for(let v=0;v<b.length;v++)R[v*2]=b[v][0],R[v*2+1]=b[v][1];let O=new Float64Array(C.length*2);for(let v=0;v<C.length;v++)O[v*2]=C[v][0],O[v*2+1]=C[v][1];try{u.set_depth_book(R,O,E)}catch(v){if(v instanceof WebAssembly.RuntimeError){a=!0;return}throw v}c()},setDepthBookFlat(b,C,E){if(!a){try{u.set_depth_book(b,C,E)}catch(R){if(R instanceof WebAssembly.RuntimeError){a=!0;return}throw R}c()}},pushHeatmapCol(b,C,E){if(a)return;let R=new Float64Array(b.length*2);for(let v=0;v<b.length;v++)R[v*2]=b[v][0],R[v*2+1]=b[v][1];let O=new Float64Array(C.length*2);for(let v=0;v<C.length;v++)O[v*2]=C[v][0],O[v*2+1]=C[v][1];try{u.push_heatmap_col(R,O,E)}catch(v){if(v instanceof WebAssembly.RuntimeError){a=!0;return}throw v}c()},pushHeatmapColFlat(b,C,E){if(!a){try{u.push_heatmap_col(b,C,E)}catch(R){if(R instanceof WebAssembly.RuntimeError){a=!0;return}throw R}c()}},resetRing(){if(!a){try{u.reset_ring()}catch(b){if(b instanceof WebAssembly.RuntimeError){a=!0;return}throw b}c()}},setExchangeLabels(b){if(a)return;let C=Array.isArray(b)?b.join(","):String(b);try{u.set_exchange_labels(C)}catch(E){if(E instanceof WebAssembly.RuntimeError){a=!0;return}throw E}c()},setSignalObi(b,C,E){if(!a){try{u.set_signal_obi(b,C,E)}catch(R){if(R instanceof WebAssembly.RuntimeError){a=!0;return}throw R}c()}},setSignalSpoof(b){if(!a){try{u.set_signal_spoof(b)}catch(C){if(C instanceof WebAssembly.RuntimeError){a=!0;return}throw C}c()}},setSignalAbsorption(b,C){if(!a){try{u.set_signal_absorption(b,C)}catch(E){if(E instanceof WebAssembly.RuntimeError){a=!0;return}throw E}c()}},setSignalFlow(b,C){if(!a){try{u.set_signal_flow(b,C)}catch(E){if(E instanceof WebAssembly.RuntimeError){a=!0;return}throw E}c()}},setSignalWalls(b,C){if(!a){try{u.set_signal_walls(new Float64Array(b),new Float64Array(C))}catch(E){if(E instanceof WebAssembly.RuntimeError){a=!0;return}throw E}c()}},setSignalGaps(b,C){if(!a){try{u.set_signal_gaps(new Float64Array(b),new Float64Array(C))}catch(E){if(E instanceof WebAssembly.RuntimeError){a=!0;return}throw E}c()}},setSymbol(b){a||(u.set_symbol(b),c())},setTickSize(b){a||(u.set_tick_size(b),c())},setVisibleTicks(b){a||(u.set_visible_ticks(b),c())},setExchangeCount(b){a||(u.set_exchange_count(b),c())},setPrecision(b){a||(u.set_price_precision(b),c())},setAutoCenter(b){a||u.set_auto_center(b)},centerOnMid(){a||(u.center_on_mid(),c())},setHeatmapCols(b){a||(u.set_heatmap_cols(b),c())},setHeatmapAlphaMul(b){if(!a){try{u.set_heatmap_alpha_mul(Number(b))}catch(C){if(C instanceof WebAssembly.RuntimeError){a=!0;return}throw C}c()}},setShowCumulative(b){if(!a){try{u.set_show_cumulative(!!b)}catch(C){if(C instanceof WebAssembly.RuntimeError){a=!0;return}throw C}c()}},setShowSignalOverlays(b){if(!a){try{u.set_show_signal_overlays(!!b)}catch(C){if(C instanceof WebAssembly.RuntimeError){a=!0;return}throw C}c()}},getHoverPrice(){return a?0:u.get_hover_price()},getHoverQty(){return a?0:u.get_hover_qty()},getHoverSide(){return a?0:u.get_hover_side()},onHoverPrice(b){_=b},onClickPrice(b){d=b},setTheme(b){a||(u.set_theme(b==="light"?1:0),c())},clear(){a||(u.clear(),c())},get isDead(){return a},destroy(){g=!0,p=!1,f&&(cancelAnimationFrame(f),f=null),lt();try{u.free()}catch{}}}}export{pr as buildRange,hr as buildRenko,wr as buildTick,dr as createChartBridge,Wt as createCustomIndicatorManager,Mr as createIcebergDetector,br as createOrderbookBridge,ct as dispatchCommands,_r as generateLicenseKey,cr as prefetchWasm,Xt as setupEvents,gr as suggestDefaults,Rt as validateLicense};
1
+ var $={FILL_RECT:1,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,END_FRAME:255},Cr=["left","center","right"],$t=new Map,Lr=4096;function Ir(t,r,o,s){return t<<24|r<<16|o<<8|s}function et(t,r,o,s){let w=Ir(t,r,o,s),e=$t.get(w);return e||(e=`rgba(${t},${r},${o},${(s/255).toFixed(3)})`,$t.size>=Lr&&$t.clear(),$t.set(w,e),e)}var ye=new TextDecoder;function Re(t,r){return Math.round(t*r)/r}function pt(t,r,o){let s=Math.max(1,Math.round(r*o)),w=Math.round(t*o)/o;return s&1?w+.5/o:w}function ae(t,r,o,s,w){let e=Math.round(t*w),i=Math.round(r*w),n=Math.round((t+o)*w),a=Math.round((r+s)*w);return{x:e/w,y:i/w,w:(n-e)/w,h:(a-i)/w}}function mt(t,r,o,s){let w=r.buffer;if(o+s>w.byteLength)return;let e=new DataView(w,o,s),i=new Uint8Array(w,o,s),n=0,a="",l="",d=-1,h="",g=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1));for(;n<s;){let f=i[n];if(n+=1,f===$.END_FRAME)break;switch(f){case $.FILL_RECT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4,b!==a&&(t.fillStyle=b,a=b);let p=ae(_,c,m,u,g);t.fillRect(p.x,p.y,p.w,p.h);break}case $.STROKE_RECT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let p=e.getFloat32(n,!0);n+=4,b!==l&&(t.strokeStyle=b,l=b),p!==d&&(t.lineWidth=p,d=p);let v=pt(_,p,g),I=pt(c,p,g),R=Math.round(m*g)/g,q=Math.round(u*g)/g;t.strokeRect(v,I,R,q);break}case $.LINE:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let p=e.getFloat32(n,!0);n+=4,t.beginPath(),b!==l&&(t.strokeStyle=b,l=b),p!==d&&(t.lineWidth=p,d=p),t.setLineDash([]),t.moveTo(pt(_,p,g),pt(c,p,g)),t.lineTo(pt(m,p,g),pt(u,p,g)),t.stroke();break}case $.DASHED_LINE:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let p=e.getFloat32(n,!0);n+=4;let v=e.getFloat32(n,!0);n+=4;let I=e.getFloat32(n,!0);n+=4,t.beginPath(),b!==l&&(t.strokeStyle=b,l=b),p!==d&&(t.lineWidth=p,d=p),t.setLineDash([v,I]),t.moveTo(pt(_,p,g),pt(c,p,g)),t.lineTo(pt(m,p,g),pt(u,p,g)),t.stroke(),t.setLineDash([]);break}case $.POLYLINE:{let _=e.getUint16(n,!0);n+=2;let c=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let m=e.getFloat32(n,!0);if(n+=4,_>0){let u=new Float32Array(_*2);for(let b=0;b<_;b++)u[b*2]=e.getFloat32(n,!0),n+=4,u[b*2+1]=e.getFloat32(n,!0),n+=4;if(t.beginPath(),c!==l&&(t.strokeStyle=c,l=c),m!==d&&(t.lineWidth=m,d=m),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",_===2)t.moveTo(u[0],u[1]),t.lineTo(u[2],u[3]);else{t.moveTo(u[0],u[1]);for(let b=0;b<_-1;b++){let p=b>0?b-1:0,v=b,I=b+1,R=b<_-2?b+2:_-1,q=u[p*2],x=u[p*2+1],z=u[v*2],j=u[v*2+1],W=u[I*2],G=u[I*2+1],U=u[R*2],Y=u[R*2+1],N=z+(W-q)/6,Z=j+(G-x)/6,X=W-(U-z)/6,C=G-(Y-j)/6;t.bezierCurveTo(N,Z,X,C,W,G)}}t.stroke()}break}case $.TEXT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=i[n];n+=1;let p=e.getUint16(n,!0);n+=2;let v=ye.decode(new Uint8Array(r.buffer,o+n,p));n+=p,m!==a&&(t.fillStyle=m,a=m);let I=`${Math.round(u)}px "IBM Plex Mono",monospace`;I!==h&&(t.font=I,h=I),t.textAlign=Cr[b]||"left",t.textBaseline="middle",t.fillText(v,Re(_,g),Re(c,g));break}case $.CIRCLE:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let p=e.getFloat32(n,!0);n+=4,t.beginPath(),t.arc(_,c,m,0,Math.PI*2),u!==a&&(t.fillStyle=u,a=u),t.fill(),p>0&&(b!==l&&(t.strokeStyle=b,l=b),p!==d&&(t.lineWidth=p,d=p),t.stroke());break}case $.TRIANGLE:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=e.getFloat32(n,!0);n+=4;let p=e.getFloat32(n,!0);n+=4;let v=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4,t.beginPath(),t.moveTo(_,c),t.lineTo(m,u),t.lineTo(b,p),t.closePath(),v!==a&&(t.fillStyle=v,a=v),t.fill();break}case $.SAVE:{t.save();break}case $.RESTORE:{t.restore(),a="",l="",d=-1,h="";break}case $.CLIP_RECT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=ae(_,c,m,u,g);t.beginPath(),t.rect(b.x,b.y,b.w,b.h),t.clip();break}case $.ROTATED_TEXT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=e.getFloat32(n,!0);n+=4;let p=e.getUint16(n,!0);n+=2;let v=ye.decode(i.subarray(n,n+p));n+=p;let I=`${u}px sans-serif`;I!==h&&(t.font=I,h=I),m!==a&&(t.fillStyle=m,a=m),t.textAlign="center",t.textBaseline="middle",t.save(),t.translate(_,c),t.rotate(b),t.fillText(v,0,0),t.restore();break}case $.BUBBLE_3D:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=i[n],b=i[n+1],p=i[n+2],v=i[n+3];n+=4;let I=i[n],R=i[n+1],q=i[n+2],x=i[n+3];n+=4;let z=i[n],j=i[n+1],W=i[n+2],G=i[n+3];n+=4;let U=e.getFloat32(n,!0);n+=4;let Y=m;if(Y<10){let N=`rgba(${u},${b},${p},${(v/255).toFixed(3)})`;t.beginPath(),t.arc(_,c,Y,0,Math.PI*2),t.fillStyle=N,t.fill(),a=""}else if(Y<18){let N=_-Y*.25,Z=c-Y*.25,X=t.createRadialGradient(N,Z,Y*.08,_,c,Y);X.addColorStop(0,`rgba(${I},${R},${q},${(x/255).toFixed(3)})`),X.addColorStop(1,`rgba(${u},${b},${p},${(v/255).toFixed(3)})`),t.beginPath(),t.arc(_,c,Y,0,Math.PI*2),t.fillStyle=X,t.fill(),a=""}else{let N=_-Y*.25,Z=c-Y*.25,X=t.createRadialGradient(_,c,Y*.85,_,c,Y*1.2);X.addColorStop(0,`rgba(${z},${j},${W},${(G/255*.5).toFixed(3)})`),X.addColorStop(1,`rgba(${z},${j},${W},0)`),t.beginPath(),t.arc(_,c,Y*1.2,0,Math.PI*2),t.fillStyle=X,t.fill();let C=t.createRadialGradient(N,Z,Y*.08,_,c,Y);C.addColorStop(0,`rgba(${I},${R},${q},${(x/255).toFixed(3)})`),C.addColorStop(1,`rgba(${u},${b},${p},${(v/255).toFixed(3)})`),t.beginPath(),t.arc(_,c,Y,0,Math.PI*2),t.fillStyle=C,t.fill();let A=Y*.2,T=t.createRadialGradient(N,Z,0,N,Z,A);T.addColorStop(0,"rgba(255,255,255,0.22)"),T.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(N,Z,A,0,Math.PI*2),t.fillStyle=T,t.fill(),a=""}break}case $.FILL_POLYGON:{let _=e.getUint16(n,!0);n+=2;let c=et(i[n],i[n+1],i[n+2],i[n+3]);if(n+=4,_>2){t.beginPath();let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4,t.moveTo(m,u);for(let b=1;b<_;b++)t.lineTo(e.getFloat32(n,!0),e.getFloat32(n+4,!0)),n+=8;t.closePath(),c!==a&&(t.fillStyle=c,a=c),t.fill()}else n+=_*8;break}case $.DASHED_POLYLINE:{let _=e.getUint16(n,!0);n+=2;let c=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=e.getFloat32(n,!0);if(n+=4,_>1){t.beginPath(),c!==l&&(t.strokeStyle=c,l=c),m!==d&&(t.lineWidth=m,d=m),t.setLineDash([u,b]),t.lineJoin="round";let p=e.getFloat32(n,!0);n+=4;let v=e.getFloat32(n,!0);n+=4,t.moveTo(p,v);for(let I=1;I<_;I++)t.lineTo(e.getFloat32(n,!0),e.getFloat32(n+4,!0)),n+=8;t.stroke(),t.setLineDash([])}else n+=_*8;break}case $.GRADIENT_RECT:{let _=e.getFloat32(n,!0);n+=4;let c=e.getFloat32(n,!0);n+=4;let m=e.getFloat32(n,!0);n+=4;let u=e.getFloat32(n,!0);n+=4;let b=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let p=et(i[n],i[n+1],i[n+2],i[n+3]);n+=4;let v=ae(_,c,m,u,g),I=t.createLinearGradient(v.x,v.y,v.x,v.y+v.h);I.addColorStop(0,b),I.addColorStop(1,p),t.fillStyle=I,a="",t.fillRect(v.x,v.y,v.w,v.h);break}default:return}}}var it={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"}};function Bt(t){return it[t]?.type==="2point"}function Vt(t){return it[t]?.type==="3point"}function Ot(t){let r=it[t]?.type;return r==="1point"||r==="1point_x"||r==="1point_xy"||r==="1point_xp"}function Dt(t){return it[t]?.type==="freehand"}function bt(t){return it[t]?.type==="npoint"}function Mt(t){return it[t]?.type==="elliott_manual"}var Fe={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function St(t,r,o,s,w,e){e=e||Fe;let i=it[r];if(!i)return 0;let n=0;if(i.type==="3point"?n=t[i.addFn](o.x1,o.y1,o.x2,o.y2,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,o.pane):i.type==="2point"?n=t[i.addFn](o.x1,o.y1,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,o.pane):i.type==="1point_x"?n=t[i.addFn](s,e.r,e.g,e.b,e.lineWidth,e.dashed,o.pane):i.type==="1point_xp"?n=t[i.addFn](s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,o.pane):i.type==="1point_xy"?n=t[i.addFn](s,w,e.r,e.g,e.b,e.fontSize||12,o.pane):n=t[i.addFn](w,e.r,e.g,e.b,e.lineWidth,e.dashed,o.pane),n&&e.fontSize&&typeof t.set_drawing_font_size=="function"&&(i.type==="2point"||i.type==="3point"))try{t.set_drawing_font_size(n,e.fontSize)}catch{}return n||0}function at(t,r,o,s,w,e,i){e=e||Fe;let n=it[r];if(n){if(n.previewFn==="elliott"){t.set_elliott_preview(s,w,e.r,e.g,e.b,e.lineWidth,i);return}n.type==="3point"?o.step===1?t.set_drawing_preview(n.previewKind,o.x1,o.y1,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):o.step===2&&(n.previewFn==="fib_ext"?t.set_fib_ext_preview(o.x1,o.y1,o.x2,o.y2,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):t.set_channel_preview(o.x1,o.y1,o.x2,o.y2,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i)):n.type==="2point"?t.set_drawing_preview(n.previewKind,o.x1,o.y1,s,w,e.r,e.g,e.b,e.lineWidth,e.dashed,i):n.type==="1point_x"?t.set_drawing_preview(n.previewKind,s,0,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i):n.type==="1point_xp"||n.type==="1point_xy"?t.set_drawing_preview(n.previewKind,s,w,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i):t.set_drawing_preview(n.previewKind,0,w,0,0,e.r,e.g,e.b,e.lineWidth,e.dashed,i)}}function Jt(t,r,o,s,w,e){if(s!=null&&w!=null){let l=r-s,d=o-w,h=Math.sqrt(l*l+d*d);if(h>1.5*1.2){let g=Math.min(128,Math.ceil(h/1.5));for(let f=1;f<g;f++){let _=f/g,c=s+l*_,m=w+d*_,{wx:u,wy:b}=B(t,c,m,e);t.add_brush_point(u,b)}}}let{wx:n,wy:a}=B(t,r,o,e);t.add_brush_point(n,a)}function B(t,r,o,s){let w=t.screen_to_world_x(r),e;switch(s){case 1:e=t.screen_to_rsi_y(o);break;case 2:e=t.screen_to_oi_y(o);break;case 3:e=t.screen_to_fr_y(o);break;case 4:e=t.screen_to_cvd_y(o);break;case 5:e=t.screen_to_vpin_y(o);break;case 6:e=t.screen_to_ob_flow_y(o);break;case 7:e=t.screen_to_agg_liq_y(o);break;default:e=t.screen_to_world_y(o);break}return{wx:w,wy:e}}function _t(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:t===22?7:0}function Nt(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22}function tt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24}function lt(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:t===22||t===24?7:0}function vt(t,r,o,s){Nt(r)?(t.pan(o,0),Math.abs(s)>.01&&r!==4&&t.pan_indicator_y(lt(r),s)):t.pan(o,s)}function st(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22}function Be(t,r,o,s){t.addEventListener("wheel",l=>{if(s.disposed)return;l.preventDefault(),s.cancelMomentum();let d=l.deltaY>0?1.1:.9,h=r.hit_zone(l.offsetX,l.offsetY);tt(h)?h!==14&&r.zoom_indicator_y(lt(h),l.offsetY,d):Nt(h)?h===4?r.zoom_x(l.offsetX,d):l.ctrlKey?r.zoom_indicator_y(lt(h),l.offsetY,d):r.zoom_x(l.offsetX,d):l.ctrlKey?r.zoom_y(l.offsetY,d):l.shiftKey||h===2?r.zoom_x(l.offsetX,d):h===3?r.zoom_y(l.offsetY,d):r.zoom(l.offsetX,l.offsetY,d),o.onDirty()},{passive:!1}),t.addEventListener("mousedown",l=>{if(s.disposed||l.button!==0)return;s.cancelMomentum(),e();let d=performance.now();if(d-s.lastClickTime<300){s.lastClickTime=d;return}s.lastClickTime=d;let h=s.drawingMode;if(h){let f=r.hit_zone(l.offsetX,l.offsetY);if(!st(f))return;let _=_t(f),{wx:c,wy:m}=B(r,l.offsetX,l.offsetY,_),u=h.style,b=h.tool;if(Mt(b)){if(!h.pathStarted)h.pane=_,r.start_elliott_manual(u.r,u.g,u.b,u.lineWidth,_),r.add_elliott_manual_point(c,m),h.pathStarted=!0,h.step=1;else if(r.add_elliott_manual_point(c,m)){s.finishDrawing(),o.onDirty();return}}else if(bt(b))h.pathStarted?r.add_path_point(c,m):(h.pane=_,r.start_path(u.r,u.g,u.b,u.lineWidth,u.dashed,_),r.add_path_point(c,m),h.pathStarted=!0,h.step=1);else if(Dt(b))h.pane=_,r.start_brush(u.r,u.g,u.b,u.lineWidth,_),r.add_brush_point(c,m),s.isBrushing=!0,s.brushLastSx=l.offsetX,s.brushLastSy=l.offsetY;else if(Vt(b))if(h.step===0)h.x1=c,h.y1=m,h.pane=_,h.step=1;else if(h.step===1)h.x2=c,h.y2=m,h.step=2,r.clear_drawing_preview();else{let p=it[b];p&&p.previewFn==="fib_ext"?r.clear_fib_ext_preview():r.clear_channel_preview(),St(r,b,h,c,m,u),s.finishDrawing()}else if(Bt(b))h.step===0?(h.x1=c,h.y1=m,h.pane=_,h.step=1):(St(r,b,h,c,m,u),s.finishDrawing());else{h.pane=_;let p=St(r,b,h,c,m,u);s.finishDrawing(),b==="textnote"&&p>0&&(r.select_drawing(p),o.onDrawingSelected?.(p),o.onDrawingDblClick?.(p,l.offsetX,l.offsetY,l.clientX,l.clientY))}o.onDirty();return}let g=r.hit_zone(l.offsetX,l.offsetY);if(g===5){s.isResizingRsi=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(g===7){s.isResizingOi=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_oi_ratio(),t.style.cursor="ns-resize";return}if(g===9){s.isResizingFr=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_fr_ratio(),t.style.cursor="ns-resize";return}if(g===11){s.isResizingCvd=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(g===13){s.isResizingVpin=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(g===20){s.isResizingObFlow=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_obf_ratio(),t.style.cursor="ns-resize";return}if(g===23){s.isResizingAggLiq=!0,s.resizeStartY=l.offsetY,s.resizeStartRatio=r.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(st(g)){let f=r.get_selected_drawing();if(f>0){let b=r.hit_test_drawing_anchor(l.offsetX,l.offsetY);if(b>=0){s.isDraggingAnchor=!0,s.dragAnchorIdx=b,s.dragAnchorPane=_t(g),t.style.cursor="grabbing";return}if(r.hit_test_drawing(l.offsetX,l.offsetY)===f){s.isDraggingDrawing=!0,s.dragDrawingPane=_t(g);let{wx:v,wy:I}=B(r,l.offsetX,l.offsetY,s.dragDrawingPane);s.dragDrawingLastWx=v,s.dragDrawingLastWy=I,t.style.cursor="move";return}}let _=r.hit_test_drawing(l.offsetX,l.offsetY);if(_>0){r.deselect_marker(),o.onMarkerSelected?.(0),r.select_drawing(_),o.onDrawingSelected?.(_),o.onDirty();return}let c=r.hit_test_marker(l.offsetX,l.offsetY);if(c>0){r.deselect_drawing(),o.onDrawingSelected?.(0),r.select_marker(c),o.onMarkerSelected?.(c),o.onDirty();return}let m=r.get_selected_drawing(),u=r.get_selected_marker();m>0&&(r.deselect_drawing(),o.onDrawingSelected?.(0),o.onDirty()),u>0&&(r.deselect_marker(),o.onMarkerSelected?.(0),o.onDirty())}st(g)&&(s.liqPinSx=l.offsetX,s.liqPinSy=l.offsetY,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,o.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700)),s.isDragging=!0,s.dragZone=g,s.lastX=l.offsetX,s.lastY=l.offsetY,g===2?t.style.cursor="ew-resize":g===3||tt(g)?t.style.cursor="ns-resize":t.style.cursor="grabbing"});let w=null;function e(){w&&(cancelAnimationFrame(w),w=null)}function i(l,d){let h=r.hover_hit_test(l,d),g=h[0],f=h[1],_=h[2],c=h[3],m=h[4],u=s.drawingMode;g===2?t.style.cursor="ew-resize":g===3||tt(g)||g===5||g===7||g===9||g===11||g===13||g===20||g===23?t.style.cursor="ns-resize":!u&&st(g)&&f>0&&_>=0?t.style.cursor="grab":!u&&st(g)&&f>0&&c===f?t.style.cursor="move":!u&&st(g)&&(c>0||m>0)?t.style.cursor="pointer":t.style.cursor="crosshair"}function n(l,d){let h=r.hit_zone(l,d);h===2||h===3||tt(h)?r.hide_crosshair():r.set_crosshair(l,d),o.onDirty(),o.onCrosshairMove?.(l,d,h),o.onVrvpHover?.(l,d),s._pendingHoverX=l,s._pendingHoverY=d,w||(w=requestAnimationFrame(()=>{w=null,s.disposed||i(s._pendingHoverX,s._pendingHoverY)}))}t.addEventListener("mousemove",l=>{if(s.disposed)return;if(s.liqPinTimer){let h=Math.abs(l.offsetX-s.liqPinSx),g=Math.abs(l.offsetY-s.liqPinSy);(h>6||g>6)&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)}if(s.isResizingRsi){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_rsi_ratio(c),o.onDirty();return}if(s.isResizingOi){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_oi_ratio(c),o.onDirty();return}if(s.isResizingFr){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_fr_ratio(c),o.onDirty();return}if(s.isResizingCvd){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_cvd_ratio(c),o.onDirty();return}if(s.isResizingVpin){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_vpin_ratio(c),o.onDirty();return}if(s.isResizingObFlow){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_obf_ratio(c),o.onDirty();return}if(s.isResizingAggLiq){let g=t.getBoundingClientRect().height-28,_=(s.resizeStartY-l.offsetY)/g,c=Math.max(.05,Math.min(.5,s.resizeStartRatio+_));r.set_agg_liq_ratio(c),o.onDirty();return}if(s.isDraggingAnchor){let{wx:h,wy:g}=B(r,l.offsetX,l.offsetY,s.dragAnchorPane);r.update_drawing_anchor(s.dragAnchorIdx,h,g),r.set_crosshair(l.offsetX,l.offsetY),o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,r.hit_zone(l.offsetX,l.offsetY));return}if(s.isDraggingDrawing){let{wx:h,wy:g}=B(r,l.offsetX,l.offsetY,s.dragDrawingPane),f=h-s.dragDrawingLastWx,_=g-s.dragDrawingLastWy;r.move_drawing(f,_),s.dragDrawingLastWx=h,s.dragDrawingLastWy=g,r.set_crosshair(l.offsetX,l.offsetY),o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,r.hit_zone(l.offsetX,l.offsetY));return}let d=s.drawingMode;if(s.isBrushing&&d){let h=d.pane||0;Jt(r,l.offsetX,l.offsetY,s.brushLastSx,s.brushLastSy,h),s.brushLastSx=l.offsetX,s.brushLastSy=l.offsetY,r.set_crosshair(l.offsetX,l.offsetY),o.onDirty();return}if(d&&Mt(d.tool)&&d.pathStarted){let h=d.pane||0,{wx:g,wy:f}=B(r,l.offsetX,l.offsetY,h);r.set_elliott_manual_cursor(g,f),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(d&&bt(d.tool)&&d.pathStarted){let h=d.pane||0,{wx:g,wy:f}=B(r,l.offsetX,l.offsetY,h);r.set_path_cursor(g,f),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(d&&d.step>0){let h=d.pane||0,{wx:g,wy:f}=B(r,l.offsetX,l.offsetY,h);at(r,d.tool,d,g,f,d.style,h),r.set_crosshair(l.offsetX,l.offsetY);let _=r.hit_zone(l.offsetX,l.offsetY);o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,_);return}if(d&&Ot(d.tool)){let h=r.hit_zone(l.offsetX,l.offsetY),g=_t(h),{wx:f,wy:_}=B(r,l.offsetX,l.offsetY,g);at(r,d.tool,d,f,_,d.style,g),r.set_crosshair(l.offsetX,l.offsetY),o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,h);return}if(s.isDragging){let h=l.offsetX-s.lastX,g=l.offsetY-s.lastY;s.lastX=l.offsetX,s.lastY=l.offsetY,s.dragZone===2?r.pan_x(h):s.dragZone===3?r.pan_y(g):s.dragZone===14||(tt(s.dragZone)?r.pan_indicator_y(lt(s.dragZone),g):vt(r,s.dragZone,h,g)),r.set_crosshair(l.offsetX,l.offsetY),o.onDirty(),o.onCrosshairMove?.(l.offsetX,l.offsetY,s.dragZone),o.onVrvpHover?.(l.offsetX,l.offsetY);return}n(l.offsetX,l.offsetY)}),t.addEventListener("mouseup",()=>{s.disposed||(s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,r.finish_brush(),s.finishDrawing(),o.onDirty()),s.isDragging=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,t.style.cursor="crosshair")});function a(){s.disposed||s._leaveHandled||(s._leaveHandled=!0,requestAnimationFrame(()=>{s._leaveHandled=!1}),e(),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,r.finish_brush(),s.finishDrawing()),s.isDragging=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,r.hide_crosshair(),t.style.cursor="crosshair",o.onDirty(),o.onCrosshairHide?.(),o.onVrvpHover?.(null,null))}t.addEventListener("pointerleave",a),t.addEventListener("mouseleave",a),t.addEventListener("dblclick",l=>{if(s.disposed)return;l.preventDefault(),l.stopPropagation();let d=s.drawingMode;if(d&&Mt(d.tool)&&d.pathStarted){r.finish_elliott_manual(),s.finishDrawing(),o.onDirty();return}if(d&&bt(d.tool)&&d.pathStarted){r.finish_path(),s.finishDrawing(),o.onDirty();return}if(d)return;let h=r.hit_zone(l.offsetX,l.offsetY),g=r.hit_test_drawing(l.offsetX,l.offsetY);if(g>0){r.select_drawing(g),o.onDirty(),o.onDrawingDblClick?.(g,l.offsetX,l.offsetY,l.clientX,l.clientY);return}if(Nt(h)||tt(h)){r.reset_indicator_y_auto(lt(h)),o.onDirty();return}(h===0||h===1)&&o.onChartDblClick?.(l.offsetX,l.offsetY,l.clientX,l.clientY)}),t.addEventListener("contextmenu",l=>{if(s.disposed)return;let d=s.drawingMode;if(d&&Mt(d.tool)&&d.pathStarted){l.preventDefault(),l.stopPropagation(),r.finish_elliott_manual(),s.finishDrawing(),o.onDirty();return}if(d&&bt(d.tool)&&d.pathStarted){l.preventDefault(),l.stopPropagation(),r.finish_path(),s.finishDrawing(),o.onDirty();return}})}var kt=25;function Ve(t,r,o,s){t.addEventListener("touchstart",w=>{if(!s.disposed){if(w.preventDefault(),s.cancelMomentum(),w.touches.length===2){clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isCrosshairMode=!1,s.pinchActive=!0,s.lastTapTime=0;let e=t.getBoundingClientRect(),i=w.touches[1].clientX-w.touches[0].clientX,n=w.touches[1].clientY-w.touches[0].clientY;s.lastTouchDist=Math.sqrt(i*i+n*n),s.lastX=(w.touches[0].clientX+w.touches[1].clientX)/2-e.left,s.lastY=(w.touches[0].clientY+w.touches[1].clientY)/2-e.top,s.dragZone=r.hit_zone(s.lastX,s.lastY),s.pinchAnchorY=s.lastY}else if(w.touches.length===1){let e=t.getBoundingClientRect(),i=w.touches[0].clientX-e.left,n=w.touches[0].clientY-e.top;s.touchStartX=i,s.touchStartY=n,s.touchMoved=!1;let a=s.drawingMode;if(a){let f=r.hit_zone(i,n);if(st(f)){let _=_t(f),{wx:c,wy:m}=B(r,i,n,_),u=a.tool;if(Mt(u)){if(!a.pathStarted)a.pane=_,r.start_elliott_manual(a.style.r,a.style.g,a.style.b,a.style.lineWidth,_),r.add_elliott_manual_point(c,m),a.pathStarted=!0,a.step=1;else if(r.add_elliott_manual_point(c,m)){s.finishDrawing(),o.onDirty();return}}else bt(u)?a.pathStarted?r.add_path_point(c,m):(a.pane=_,r.start_path(a.style.r,a.style.g,a.style.b,a.style.lineWidth,a.style.dashed,_),r.add_path_point(c,m),a.pathStarted=!0,a.step=1):Dt(u)?(a.pane=_,r.start_brush(a.style.r,a.style.g,a.style.b,a.style.lineWidth,_),r.add_brush_point(c,m),s.isBrushing=!0,s.brushLastSx=i,s.brushLastSy=n):Vt(u)?a.step===0?(a.x1=c,a.y1=m,a.pane=_,a.step=1,a._stepAtTouchStart=0,at(r,u,a,c,m,a.style,_)):a.step===1?(a._stepAtTouchStart=1,at(r,u,a,c,m,a.style,a.pane)):(a._stepAtTouchStart=2,at(r,u,a,c,m,a.style,a.pane)):Bt(u)?a.step===0?(a.x1=c,a.y1=m,a.pane=_,a.step=1,a._stepAtTouchStart=0,at(r,u,a,c,m,a.style,_)):(a._stepAtTouchStart=1,at(r,u,a,c,m,a.style,a.pane)):Ot(u)?(a.pane=_,at(r,u,a,c,m,a.style,_)):(a.pane=_,St(r,u,a,c,m,a.style),s.finishDrawing());r.set_crosshair(i,n),o.onDirty(),o.onCrosshairMove?.(i,n,f)}return}let l=r.hover_hit_test(i,n),d=l[0],h=l[1],g=l[2];if(st(d)&&!s.drawingMode&&h>0){if(g>=0){s.isDraggingAnchor=!0,s.dragAnchorIdx=g,s.dragAnchorPane=_t(d);return}if(l[3]===h){s.isDraggingDrawing=!0,s.dragDrawingPane=_t(d);let{wx:_,wy:c}=B(r,i,n,s.dragDrawingPane);s.dragDrawingLastWx=_,s.dragDrawingLastWy=c;return}}s.isDragging=!0,s.isCrosshairMode=!1,s.lastX=i,s.lastY=n,s.dragZone=d,clearTimeout(s.longPressTimer),s.longPressTimer=setTimeout(()=>{s.isDragging&&!s.touchMoved&&(s.isCrosshairMode=!0,r.set_crosshair(i,n),o.onDirty(),o.onCrosshairMove?.(i,n,s.dragZone),o.onVrvpHover?.(i,n))},300),st(s.dragZone)&&(s.liqPinSx=i,s.liqPinSy=n,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,s.touchMoved||o.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",w=>{if(s.disposed)return;w.preventDefault();let e=t.getBoundingClientRect();if(s.isDraggingAnchor&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,{wx:l,wy:d}=B(r,n,a,s.dragAnchorPane);r.update_drawing_anchor(s.dragAnchorIdx,l,d),r.set_crosshair(n,a),o.onDirty();return}if(s.isDraggingDrawing&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top;s.touchMoved=!0;let{wx:l,wy:d}=B(r,n,a,s.dragDrawingPane),h=l-s.dragDrawingLastWx,g=d-s.dragDrawingLastWy;r.move_drawing(h,g),s.dragDrawingLastWx=l,s.dragDrawingLastWy=d,r.set_crosshair(n,a),o.onDirty();return}let i=s.drawingMode;if(s.isBrushing&&i&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,l=i.pane||0;Jt(r,n,a,s.brushLastSx,s.brushLastSy,l),s.brushLastSx=n,s.brushLastSy=a,r.set_crosshair(n,a),o.onDirty(),s.touchMoved=!0;return}if(i&&Mt(i.tool)&&i.pathStarted&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,l=i.pane||0,{wx:d,wy:h}=B(r,n,a,l);r.set_elliott_manual_cursor(d,h),r.set_crosshair(n,a),o.onDirty(),s.touchMoved=!0;return}if(i&&bt(i.tool)&&i.pathStarted&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,l=i.pane||0,{wx:d,wy:h}=B(r,n,a,l);r.set_path_cursor(d,h),r.set_crosshair(n,a),o.onDirty(),s.touchMoved=!0;return}if(i&&i.step>0&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top;!s.touchMoved&&(Math.abs(n-s.touchStartX)>kt||Math.abs(a-s.touchStartY)>kt)&&(s.touchMoved=!0);let l=i.pane||0,{wx:d,wy:h}=B(r,n,a,l);at(r,i.tool,i,d,h,i.style,l),r.set_crosshair(n,a);let g=r.hit_zone(n,a);o.onDirty(),o.onCrosshairMove?.(n,a,g);return}if(i&&Ot(i.tool)&&w.touches.length===1){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,l=r.hit_zone(n,a),d=_t(l),{wx:h,wy:g}=B(r,n,a,d);at(r,i.tool,i,h,g,i.style,d),r.set_crosshair(n,a),o.onDirty(),o.onCrosshairMove?.(n,a,l);return}if(w.touches.length===2){s.velSamples=[],s.pinchActive=!0;let n=w.touches[1].clientX-w.touches[0].clientX,a=w.touches[1].clientY-w.touches[0].clientY,l=Math.sqrt(n*n+a*a),d=s.lastTouchDist/l,h=(w.touches[0].clientX+w.touches[1].clientX)/2-e.left,g=(w.touches[0].clientY+w.touches[1].clientY)/2-e.top,f=s.pinchAnchorY??g;s.dragZone===3?r.zoom_y(f,d):tt(s.dragZone)&&s.dragZone!==14?r.zoom_indicator_y(lt(s.dragZone),f,d):s.dragZone===14?(r.zoom_x(h,d),vt(r,4,h-s.lastX,g-s.lastY)):s.dragZone===2?r.zoom_x(h,d):Nt(s.dragZone)?(r.zoom_x(h,d),vt(r,s.dragZone,h-s.lastX,g-s.lastY)):(r.zoom(h,g,d),vt(r,s.dragZone,h-s.lastX,g-s.lastY)),s.lastTouchDist=l,s.lastX=h,s.lastY=g,o.onDirty()}else if(w.touches.length===1&&s.isDragging){let n=w.touches[0].clientX-e.left,a=w.touches[0].clientY-e.top,l=n-s.lastX,d=a-s.lastY;if(!s.touchMoved&&(Math.abs(n-s.touchStartX)>kt||Math.abs(a-s.touchStartY)>kt)&&(s.touchMoved=!0,s.isCrosshairMode||clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)),s.isCrosshairMode)r.set_crosshair(n,a),o.onDirty(),o.onCrosshairMove?.(n,a,s.dragZone),o.onVrvpHover?.(n,a);else if(s.touchMoved){if(s.lastX=n,s.lastY=a,s.dragZone===3||tt(s.dragZone)||s.recordVelocity(l,d),s.dragZone===2)r.pan_x(l);else if(s.dragZone===3){let g=Math.pow(1.005,d);r.zoom_y(s.touchStartY,g)}else if(s.dragZone!==14)if(tt(s.dragZone)){let g=Math.pow(1.005,d);r.zoom_indicator_y(lt(s.dragZone),s.touchStartY,g)}else vt(r,s.dragZone,l,d);o.onDirty()}else s.lastX=n,s.lastY=a}},{passive:!1}),t.addEventListener("touchend",w=>{if(s.disposed)return;if(clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isDraggingAnchor){s.isDraggingAnchor=!1,s.dragAnchorIdx=-1,r.hide_crosshair(),o.onDirty(),o.onCrosshairHide?.();return}if(s.isDraggingDrawing){if(s.isDraggingDrawing=!1,r.hide_crosshair(),o.onDirty(),o.onCrosshairHide?.(),!s.touchMoved){let a=r.get_selected_drawing();if(a>0){let l=t.getBoundingClientRect();o.onDrawingDblClick?.(a,s.touchStartX,s.touchStartY,s.touchStartX+l.left,s.touchStartY+l.top)}}return}if(s.isBrushing){s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,r.finish_brush(),s.finishDrawing(),o.onDirty(),o.onCrosshairHide?.();return}let e=s.drawingMode;if(e&&Mt(e.tool)&&e.pathStarted){let a=Date.now(),l=s.touchStartX-(s._pathLastTapX||0),d=s.touchStartY-(s._pathLastTapY||0),h=Math.sqrt(l*l+d*d);a-(s._pathLastTapTime||0)<350&&h<30?(r.finish_elliott_manual(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,o.onDirty();return}if(e&&bt(e.tool)&&e.pathStarted){let a=Date.now(),l=s.touchStartX-(s._pathLastTapX||0),d=s.touchStartY-(s._pathLastTapY||0),h=Math.sqrt(l*l+d*d);a-(s._pathLastTapTime||0)<350&&h<30?(r.finish_path(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,o.onDirty();return}if(e&&Vt(e.tool)){let a=e._stepAtTouchStart;if(e.step===1&&(a===1||s.touchMoved)){let l=t.getBoundingClientRect(),d=w.changedTouches?.[0];if(d){let h=d.clientX-l.left,g=d.clientY-l.top,f=e.pane||0,{wx:_,wy:c}=B(r,h,g,f);e.x2=_,e.y2=c,e.step=2,r.clear_drawing_preview()}}else if(e.step===2&&(a===2||s.touchMoved)){let l=t.getBoundingClientRect(),d=w.changedTouches?.[0];if(d){let h=d.clientX-l.left,g=d.clientY-l.top,f=e.pane||0,{wx:_,wy:c}=B(r,h,g,f),m=it[e.tool];m&&m.previewFn==="fib_ext"?r.clear_fib_ext_preview():r.clear_channel_preview(),St(r,e.tool,e,_,c,e.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(r.hide_crosshair(),o.onCrosshairHide?.()),o.onDirty();return}if(e&&e.step===1&&Bt(e.tool)){if(e._stepAtTouchStart===1||s.touchMoved){let l=t.getBoundingClientRect(),d=w.changedTouches?.[0];if(d){let h=d.clientX-l.left,g=d.clientY-l.top,f=e.pane||0,{wx:_,wy:c}=B(r,h,g,f);St(r,e.tool,e,_,c,e.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(r.hide_crosshair(),o.onCrosshairHide?.()),o.onDirty();return}if(e&&Ot(e.tool)){let a=t.getBoundingClientRect(),l=w.changedTouches?.[0];if(l){let d=l.clientX-a.left,h=l.clientY-a.top,g=r.hit_zone(d,h),f=st(g)?_t(g):e.pane||0,{wx:_,wy:c}=B(r,d,h,f),m=e.tool;r.clear_drawing_preview();let u=St(r,m,e,_,c,e.style);s.finishDrawing(),m==="textnote"&&u>0&&(r.select_drawing(u),o.onDrawingSelected?.(u),o.onDrawingDblClick?.(u,d,h,d+a.left,h+a.top))}s.isDragging=!1,s.lastTouchDist=0,r.hide_crosshair(),o.onCrosshairHide?.(),o.onDirty();return}let i=w.touches.length===0;if(i&&!s.pinchActive&&!s.touchMoved&&!s.drawingMode){let a=Date.now(),l=s.touchStartX,d=s.touchStartY,h=l-s.lastTapX,g=d-s.lastTapY,f=Math.sqrt(h*h+g*g),_=a-s.lastTapTime<350&&f<30,c=r.hit_zone(l,d),m=_?r.hit_test_drawing(l,d):0;if(_&&(Nt(c)||tt(c))&&m<=0)r.reset_indicator_y_auto(lt(c)),o.onDirty();else if(st(c)){let u=r.get_selected_drawing(),b=m>0?m:r.hit_test_drawing(l,d),p=0;if(b<=0&&(p=r.hit_test_marker(l,d)),b>0){r.deselect_marker(),o.onMarkerSelected?.(0),r.select_drawing(b);let v=t.getBoundingClientRect(),I=l+v.left,R=d+v.top;o.onDrawingSelected?.(b,I,R),(u<=0||u===b)&&o.onDrawingDblClick?.(b,l,d,I,R),o.onDirty()}else if(p>0)r.deselect_drawing(),o.onDrawingSelected?.(0),r.select_marker(p),o.onMarkerSelected?.(p),o.onDirty();else if(u>0&&(r.deselect_drawing(),o.onDrawingSelected?.(0),o.onDirty()),r.get_selected_marker()>0&&(r.deselect_marker(),o.onMarkerSelected?.(0),o.onDirty()),_&&c===0){let I=t.getBoundingClientRect();o.onChartDblClick?.(l,d,l+I.left,d+I.top)}}s.lastTapTime=a,s.lastTapX=l,s.lastTapY=d}i&&!s.pinchActive&&s.touchMoved&&!s.isCrosshairMode&&!s.drawingMode&&s.dragZone!==3&&!tt(s.dragZone)&&s.startMomentum(s.dragZone),s.isDragging=!1,s.isCrosshairMode=!1,s.lastTouchDist=0,i&&(s.pinchActive=!1),(!s.drawingMode||s.drawingMode.step===0)&&(r.hide_crosshair(),o.onCrosshairHide?.()),o.onDirty(),o.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isDragging=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,s.isCrosshairMode=!1,s.lastTouchDist=0,s.pinchActive=!1,s.cancelMomentum(),r.hide_crosshair(),o.onCrosshairHide?.(),o.onDirty()})}function ce(t,r,o){let s={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,pinchActive:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null},w=.92,e=.5,i=80;s.recordVelocity=function(d,h){let g=performance.now();for(s.velSamples.push({dx:d,dy:h,t:g});s.velSamples.length>0&&g-s.velSamples[0].t>i;)s.velSamples.shift()};function n(){if(s.velSamples.length<2)return{vx:0,vy:0};let d=s.velSamples[0],g=s.velSamples[s.velSamples.length-1].t-d.t;if(g<5)return{vx:0,vy:0};let f=0,_=0;for(let m of s.velSamples)f+=m.dx,_+=m.dy;let c=16.67;return{vx:f/g*c,vy:_/g*c}}s.cancelMomentum=function(){s.momentumRaf&&(cancelAnimationFrame(s.momentumRaf),s.momentumRaf=null),s.velSamples=[]},s.startMomentum=function(d){let{vx:h,vy:g}=n();if(s.velSamples=[],Math.abs(h)<e&&Math.abs(g)<e)return;s.momentumVx=h,s.momentumVy=g,s.momentumZone=d;function f(){if(s.momentumVx*=w,s.momentumVy*=w,Math.abs(s.momentumVx)<e&&Math.abs(s.momentumVy)<e){s.momentumRaf=null;return}if(s.momentumZone===2)r.pan_x(s.momentumVx);else if(s.momentumZone===3)r.pan_y(s.momentumVy);else if(s.momentumZone===14){s.momentumRaf=null;return}else tt(s.momentumZone)?r.pan_indicator_y(lt(s.momentumZone),s.momentumVy):vt(r,s.momentumZone,s.momentumVx,s.momentumVy);o.onDirty(),s.momentumRaf=requestAnimationFrame(f)}s.momentumRaf=requestAnimationFrame(f)};let a={setMode(d,h){d?(s.drawingMode={tool:d,style:h,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(s.drawingMode?.pathStarted&&r.finish_path(),s.drawingMode=null,r.clear_drawing_preview(),t.style.cursor="crosshair"),o.onDirty()},getMode(){return s.drawingMode}};o.drawingApi?.(a),s.finishDrawing=function(){r.clear_drawing_preview(),o.onDrawingComplete?.(),s.drawingMode=null,t.style.cursor="crosshair"},Be(t,r,o,s),Ve(t,r,o,s);let l=d=>{let h=document.activeElement?.tagName,g=h==="INPUT"||h==="TEXTAREA"||document.activeElement?.isContentEditable;if((d.key==="Delete"||d.key==="Backspace")&&!s.drawingMode&&!g){let _=r.get_selected_drawing();if(_>0){r.remove_drawing(_),o.onDrawingSelected?.(0),o.onDirty();return}let c=r.get_selected_marker();if(c>0){r.remove_marker(c),o.onMarkerSelected?.(0),o.onDirty();return}}if(d.key==="Escape"&&!s.drawingMode){if(r.get_selected_drawing()>0){r.deselect_drawing(),o.onDrawingSelected?.(0),o.onDirty();return}if(r.get_selected_marker()>0){r.deselect_marker(),o.onMarkerSelected?.(0),o.onDirty();return}}if(d.key==="Escape"&&s.drawingMode){if(s.drawingMode.pathStarted){s.drawingMode.tool==="elliott"?r.finish_elliott_manual():r.finish_path(),s.finishDrawing(),o.onDirty();return}r.clear_drawing_preview(),s.drawingMode=null,t.style.cursor="crosshair",o.onDrawingCancel?.(),o.onDirty();return}let f=20;switch(d.key){case"+":case"=":r.zoom(t.width/2,t.height/2,.9);break;case"-":r.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":r.pan_x(f);break;case"ArrowRight":r.pan_x(-f);break;case"ArrowUp":r.pan_y(-f);break;case"ArrowDown":r.pan_y(f);break;case"r":case"R":r.auto_scale_y();for(let _=1;_<=5;_++)r.reset_indicator_y_auto(_);break;default:return}o.onDirty()};return window.addEventListener("keydown",l),()=>{s.disposed=!0,s.cancelMomentum(),window.removeEventListener("keydown",l)}}var Ct=t=>t instanceof Float64Array?t:new Float64Array(t),qe=(t,r=0)=>{if(t==null||t==="")return r;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"bull":return 0;case"bear":return 1;case"neutral":return 2;case"all":return 255;default:return r}},Er=(t,r=255)=>{if(t==null||t==="")return r;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"offside_buy":return 0;case"offside_sell":return 1;case"distribution":return 2;case"accumulation":return 3;case"absorption":return 4;default:return r}},Nr=(t,r=0)=>{if(t==null||t==="")return r;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"wick":return 0;case"close":return 1;case"all":return 255;default:return r}};function Ke(t,r,o,s){let w=e=>s()(e);return{enableRsi(){t.enable_rsi(),r()},disableRsi(){t.disable_rsi(),r()},setRsiPeriod(e){t.set_rsi_period(e),r()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(e){t.set_rsi_show_ema(e),r()},setRsiShowWma(e){t.set_rsi_show_wma(e),r()},setRsiShowSignals(e){t.set_rsi_show_signals(e),r()},setRsiShowDivergence(e){t.set_rsi_show_divergence(e),r()},setRsiShowTraps(e){t.set_rsi_show_traps(e),r()},setRsiShowLevels(e){t.set_rsi_show_levels(e),r()},setRsiShowOnChart(e){t.set_rsi_show_on_chart(e),r()},setRsiSmoothing(e){t.set_rsi_smoothing(e),r()},setRsiRatio(e){t.set_rsi_ratio(e),r()},getRsiRatio(){return t.get_rsi_ratio()},enableForexSignals(){w("forexSignals")&&(t.enable_forex_signals(),r())},disableForexSignals(){t.disable_forex_signals(),r()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(e){t.set_forex_signals_setup(e),r()},setForexSignalsMode(e){t.set_forex_signals_mode(e),r()},setForexSignalsShowStats(e){t.set_forex_signals_show_stats(e),r()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){o()||w("oi")&&(t.enable_oi(),r())},disableOi(){o()||(t.disable_oi(),r())},isOiEnabled(){if(o())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(e){o()||(t.set_oi_data(e),r())},setOiDataTs(e,i){o()||(t.set_oi_data_ts(e,i),r())},setOiShowOnChart(e){o()||(t.set_oi_show_on_chart(e),r())},setOiDisplayMode(e){o()||(t.set_oi_display_mode(e),r())},setOiRatio(e){o()||(t.set_oi_ratio(e),r())},getOiRatio(){if(o())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){o()||w("fundingRate")&&(t.enable_funding_rate(),r())},disableFundingRate(){o()||(t.disable_funding_rate(),r())},isFundingRateEnabled(){if(o())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(e,i){o()||(t.set_fr_binance_data(e,i),r())},setFrAggData(e,i){o()||(t.set_fr_agg_data(e,i),r())},setFrShowAgg(e){o()||(t.set_fr_show_agg(e),r())},setFrShowSma(e){o()||(t.set_fr_show_sma(e),r())},enableCvd(){o()||w("cvd")&&(t.enable_cvd(),r())},disableCvd(){o()||(t.disable_cvd(),r())},isCvdEnabled(){if(o())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(e,i){o()||(t.set_cvd_data(e,i),r())},setCvdSpotData(e,i){o()||(t.set_cvd_spot_data(e,i),r())},setCvdSource(e){o()||(t.set_cvd_source(e),r())},getCvdSource(){if(o())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(e){o()||(t.set_cvd_mode(e),r())},getCvdMode(){if(o())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(e){o()||(t.set_cvd_show_delta(e),r())},getCvdShowDelta(){if(o())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(e){o()||(t.set_cvd_show_signals(e),r())},getCvdShowSignals(){if(o())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(e){o()||(t.set_cvd_show_divergence(e),r())},getCvdShowDivergence(){if(o())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){o()||w("largeTrades")&&(t.enable_large_trades(),r())},disableLargeTrades(){o()||(t.disable_large_trades(),r())},isLargeTradesEnabled(){if(o())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(e){o()||(t.set_large_trades_data(e),r())},pushLargeTrade(e,i,n,a){o()||(t.push_large_trade(e,i,n,a),r())},clearLargeTrades(){o()||(t.clear_large_trades(),r())},setLtVolumeFilter(e,i){o()||(t.set_lt_volume_filter(e,i),r())},setLtBubbleScale(e){o()||(t.set_lt_bubble_scale(e),r())},getLtDataMinVol(){return o()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return o()?0:t.get_lt_data_max_vol()},ltHitTest(e,i){if(o())return"";try{return t.lt_hit_test(e,i)}catch{return""}},enableVrvp(){o()||w("vrvp")&&(t.enable_vrvp(),r())},disableVrvp(){o()||(t.disable_vrvp(),r())},isVrvpEnabled(){if(o())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(e){o()||(t.set_vrvp_poc_line(e),r())},setVrvpData(e,i){o()||(t.set_vrvp_data(e,i),r())},vrvpHitTest(e,i){if(o())return"";try{return t.vrvp_hit_test(e,i)}catch{return""}},enableCvdProfile(){o()||w("cvdProfile")&&(t.enable_cvd_profile(),r())},disableCvdProfile(){o()||(t.disable_cvd_profile(),r())},isCvdProfileEnabled(){if(o())return!1;try{return t.is_cvd_profile_enabled()}catch{return!1}},setCvdProfileSessions(e){o()||(t.set_cvd_profile_sessions(Ct(e)),r())},applyCvdProfileUpdate(e,i,n,a){o()||(t.apply_cvd_profile_update(e,i,n,Ct(a)),r())},replaceCvdProfileSession(e,i,n,a,l){o()||(t.replace_cvd_profile_session(e,i,!!n,a,Ct(l)),r())},openCvdProfileSession(e,i,n){o()||(t.open_cvd_profile_session(e,i,n),r())},clearCvdProfile(){o()||(t.clear_cvd_profile(),r())},setCvdProfileViewMode(e){o()||(t.set_cvd_profile_view_mode(e|0),r())},getCvdProfileViewMode(){if(o())return 2;try{return t.get_cvd_profile_view_mode()}catch{return 2}},setCvdProfileShowAnchors(e){o()||(t.set_cvd_profile_show_anchors(!!e),r())},setCvdProfileShowPoc(e){o()||(t.set_cvd_profile_show_poc(!!e),r())},setCvdProfileShowSessionPocLine(e){o()||(t.set_cvd_profile_show_session_poc_line(!!e),r())},setCvdProfileShowDeltaPoc(e){o()||(t.set_cvd_profile_show_delta_poc(!!e),r())},setCvdProfileTooltipEnabled(e){o()||(t.set_cvd_profile_tooltip_enabled(!!e),r())},setCvdProfileMaxBarRatio(e){o()||(t.set_cvd_profile_max_bar_ratio(Number(e)||.85),r())},setCvdProfileLabelSizeScale(e){if(o())return;let i=Number(e);t.set_cvd_profile_label_size_scale(Number.isFinite(i)?i:1),r()},setCvdProfileBarHeightPx(e){o()||(t.set_cvd_profile_bar_height_px(Number(e)||0),r())},setCvdProfileBarMaxWidthPx(e){o()||(t.set_cvd_profile_bar_max_width_px(Number(e)||0),r())},setCvdProfileThemeMode(e){if(o())return;let i=Number(e),n=i===1||i===2?i:0;t.set_cvd_profile_theme_mode(n),r()},setCvdProfileValueInQuote(e){o()||(t.set_cvd_profile_value_in_quote(!!e),r())},cvdProfileHitTest(e,i){if(o())return"";try{return t.cvd_profile_hit_test(e,i)}catch{return""}},enableCvdOrderBlock(){o()||w("cvdProfile")&&(t.enable_cvd_orderblock(),r())},disableCvdOrderBlock(){o()||(t.disable_cvd_orderblock(),r())},isCvdOrderBlockEnabled(){if(o())return!1;try{return t.is_cvd_orderblock_enabled()}catch{return!1}},clearCvdOrderBlockObs(){o()||(t.clear_cvd_orderblock_obs(),r())},clearCvdOrderBlockAll(){o()||(t.clear_cvd_orderblock_all(),r())},upsertCvdOrderBlockOb(e,i,n,a,l,d,h,g,f,_,c,m,u,b,p,v,I,R,q,x,z,j,W,G,U,Y,N,Z,X,C,A,T,O,V,P){o()||(t.upsert_cvd_orderblock_ob(String(e||""),qe(i),Er(n),(a|0)>>>0,Number(l)||0,Number(d)||0,Number(h)||0,Number(g)||0,Number(f)||0,Number(_)||0,Number(c)||0,Number(m)||0,Number(u)||0,Number(b)||0,Number(p)||0,Number(v)||0,Number(I)||0,Number(R)||0,Number(q)||0,Number(x)||0,Number(z)||0,Number(j)||0,Number(W)||0,(G|0)>>>0,Number(U)||0,(Y|0)>>>0,!!N,Number(Z)||0,X===void 0?!0:!!X,!!C,!!A,Number(T)||0,Number(O)||0,Number(V)||0,Number(P)||0),r())},removeCvdOrderBlockOb(e){if(o())return!1;try{let i=t.remove_cvd_orderblock_ob(String(e||""));return i&&r(),i}catch{return!1}},setCvdOrderBlockDirectionFilter(e){o()||(t.set_cvd_orderblock_direction_filter(qe(e,255)),r())},setCvdOrderBlockMitigationFilter(e){o()||(t.set_cvd_orderblock_mitigation_filter(Nr(e,255)),r())},setCvdOrderBlockMinScore(e){o()||(t.set_cvd_orderblock_min_score(Number(e)||0),r())},setCvdOrderBlockShowMitigated(e){o()||(t.set_cvd_orderblock_show_mitigated(!!e),r())},setCvdOrderBlockBreakerStyle(e){if(o())return;let i=Number(e),n=Number.isFinite(i)?Math.max(0,Math.min(2,Math.trunc(i))):0;t.set_cvd_orderblock_breaker_style(n),r()},setCvdOrderBlockShowObs(e){o()||(t.set_cvd_orderblock_show_obs(!!e),r())},setCvdOrderBlockShowGaps(e){o()||(t.set_cvd_orderblock_show_gaps(!!e),r())},setCvdOrderBlockShowFilledGaps(e){o()||(t.set_cvd_orderblock_show_filled_gaps(!!e),r())},setCvdOrderBlockShowLabels(e){o()||(t.set_cvd_orderblock_show_labels(!!e),r())},setCvdOrderBlockLabelSizeScale(e){if(o())return;let i=Number(e);t.set_cvd_orderblock_label_size_scale(Number.isFinite(i)?i:1),r()},setCvdOrderBlockRenderMode(e){if(o())return;let i=Number(e),n=i===0||i===1||i===2?i:1;t.set_cvd_orderblock_render_mode(n),r()},cvdOrderBlockObCount(){if(o())return 0;try{return t.cvd_orderblock_ob_count()}catch{return 0}},cvdOrderBlockGapCount(){if(o())return 0;try{return t.cvd_orderblock_gap_count()}catch{return 0}},cvdOrderBlockHitTest(e,i){if(o())return"";try{return t.cvd_orderblock_hit_test(e,i)}catch{return""}},enableCvdTradeSignals(){o()||w("cvdProfile")&&(t.enable_cvd_trade_signals(),r())},disableCvdTradeSignals(){o()||(t.disable_cvd_trade_signals(),r())},isCvdTradeSignalsEnabled(){if(o())return!1;try{return t.is_cvd_trade_signals_enabled()}catch{return!1}},clearCvdTradeSignals(){o()||(t.clear_cvd_trade_signals(),r())},upsertCvdTradeSignal(e,i,n,a,l,d,h,g,f,_,c,m,u,b,p,v,I,R,q,x,z){if(o())return;let j=0;(i==="short"||i===1)&&(j=1);let W=0;n==="breakout"||n===1?W=1:n==="delta_trap"||n===2?W=2:n==="absorption_resolution"||n===3?W=3:(n==="divergence"||n===4)&&(W=4);let G=0;b==="bull"||b===1?G=1:(b==="bear"||b===2)&&(G=2),t.upsert_cvd_trade_signal(String(e||""),j,W,Number(a)||0,Number(l)||0,Number(d)||0,Number(h)||0,Number(g)||0,Number(f)||0,Number(_)||0,Number(c)||0,Number(m)||0,Number(u)||0,G,(p|0)>>>0,Number(v)||0,Number(I)||0,Number(R)||0,Number(q)||0,(x|0)>>>0,String(z||"")),r()},removeCvdTradeSignal(e){if(o())return!1;try{let i=t.remove_cvd_trade_signal(String(e||""));return i&&r(),i}catch{return!1}},setCvdTradeSignalsShowLong(e){o()||(t.set_cvd_trade_signals_show_long(!!e),r())},setCvdTradeSignalsShowShort(e){o()||(t.set_cvd_trade_signals_show_short(!!e),r())},setCvdTradeSignalsShowRejection(e){o()||(t.set_cvd_trade_signals_show_rejection(!!e),r())},setCvdTradeSignalsShowBreakout(e){o()||(t.set_cvd_trade_signals_show_breakout(!!e),r())},setCvdTradeSignalsShowDeltaTrap(e){o()||(t.set_cvd_trade_signals_show_delta_trap(!!e),r())},setCvdTradeSignalsShowAbsorptionResolution(e){o()||(t.set_cvd_trade_signals_show_absorption_resolution(!!e),r())},setCvdTradeSignalsShowDivergence(e){o()||(t.set_cvd_trade_signals_show_divergence(!!e),r())},setCvdTradeSignalsShowLabels(e){o()||(t.set_cvd_trade_signals_show_labels(!!e),r())},setCvdTradeSignalsShowLevels(e){o()||(t.set_cvd_trade_signals_show_levels(!!e),r())},setCvdTradeSignalsMinConfidence(e){o()||(t.set_cvd_trade_signals_min_confidence(Number(e)||0),r())},cvdTradeSignalCount(){if(o())return 0;try{return t.cvd_trade_signal_count()}catch{return 0}},cvdTradeSignalsHitTest(e,i){if(o())return"";try{return t.cvd_trade_signals_hit_test(e,i)}catch{return""}},enableCvdDivergence(){o()||w("cvdProfile")&&(t.enable_cvd_divergence(),r())},disableCvdDivergence(){o()||(t.disable_cvd_divergence(),r())},isCvdDivergenceEnabled(){if(o())return!1;try{return t.is_cvd_divergence_enabled()}catch{return!1}},clearCvdDivergence(){o()||(t.clear_cvd_divergence(),r())},upsertCvdDivergence(e,i,n,a,l,d,h,g,f,_,c){if(o())return;let m=0;(i==="hidden"||i===1)&&(m=1);let u=0;(n==="short"||n===1)&&(u=1),t.upsert_cvd_divergence(String(e||""),m,u,Number(a)||0,Number(l)||0,Number(d)||0,Number(h)||0,Number(g)||0,Number(f)||0,Number(_)||0,Number(c)||0),r()},removeCvdDivergence(e){if(o())return!1;try{let i=t.remove_cvd_divergence(String(e||""));return i&&r(),i}catch{return!1}},setCvdDivergenceShowRegular(e){o()||(t.set_cvd_divergence_show_regular(!!e),r())},setCvdDivergenceShowHidden(e){o()||(t.set_cvd_divergence_show_hidden(!!e),r())},setCvdDivergenceShowLong(e){o()||(t.set_cvd_divergence_show_long(!!e),r())},setCvdDivergenceShowShort(e){o()||(t.set_cvd_divergence_show_short(!!e),r())},setCvdDivergenceShowLabels(e){o()||(t.set_cvd_divergence_show_labels(!!e),r())},setCvdDivergenceShowBand(e){o()||(t.set_cvd_divergence_show_band(!!e),r())},setCvdDivergenceMinStrength(e){o()||(t.set_cvd_divergence_min_strength(Number(e)||0),r())},cvdDivergenceCount(){if(o())return 0;try{return t.cvd_divergence_count()}catch{return 0}},cvdDivergenceHitTest(e,i){if(o())return"";try{return t.cvd_divergence_hit_test(e,i)}catch{return""}},enableCvdRegime(){o()||w("cvdProfile")&&(t.enable_cvd_regime(),r())},disableCvdRegime(){o()||(t.disable_cvd_regime(),r())},isCvdRegimeEnabled(){if(o())return!1;try{return t.is_cvd_regime_enabled()}catch{return!1}},clearCvdRegime(){o()||(t.clear_cvd_regime(),r())},upsertCvdRegimeFlip(e,i,n,a,l,d,h,g){if(o())return;let f=_=>_==="bull"||_===1?1:_==="bear"||_===2?2:0;t.upsert_cvd_regime_flip(String(e||""),Number(i)||0,Number(n)||0,f(a),f(l),Number(d)||0,(h|0)>>>0,Number(g)||0),r()},removeCvdRegimeFlip(e){if(o())return!1;try{let i=t.remove_cvd_regime_flip(String(e||""));return i&&r(),i}catch{return!1}},setCvdRegimeShowRibbon(e){o()||(t.set_cvd_regime_show_ribbon(!!e),r())},setCvdRegimeShowWash(e){o()||(t.set_cvd_regime_show_wash(!!e),r())},setCvdRegimeShowFlipLines(e){o()||(t.set_cvd_regime_show_flip_lines(!!e),r())},cvdRegimeFlipCount(){if(o())return 0;try{return t.cvd_regime_flip_count()}catch{return 0}},cvdRegimeHitTest(e,i){if(o())return"";try{return t.cvd_regime_hit_test(e,i)}catch{return""}},enableTpo(){o()||w("tpo")&&(t.enable_tpo(),r())},disableTpo(){o()||(t.disable_tpo(),r())},isTpoEnabled(){if(o())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(e){o()||(t.set_tpo_poc_line(e),r())},setTpoVaLines(e){o()||(t.set_tpo_va_lines(e),r())},setTpoIb(e){o()||(t.set_tpo_ib(e),r())},setTpoSinglePrints(e){o()||(t.set_tpo_single_prints(e),r())},setTpoPeriod(e){o()||(t.set_tpo_period(e),r())},getTpoPeriod(){if(o())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoNakedPoc(e){o()||(t.set_tpo_naked_poc(e),r())},setTpoProfileShape(e){o()||(t.set_tpo_profile_shape(e),r())},setTpoIbMinutes(e){o()||(t.set_tpo_ib_minutes(e),r())},setTpoLetterMinutes(e){o()||(t.set_tpo_letter_minutes(e),r())},setTpoSignals(e){o()||(t.set_tpo_signals(e),r())},isTpoSignals(){if(o())return!1;try{return t.is_tpo_signals()}catch{return!1}},enableLiqHeatmap(){o()||w("liqHeatmap")&&(t.enable_liq_heatmap(),r())},disableLiqHeatmap(){o()||(t.disable_liq_heatmap(),r())},isLiqHeatmapEnabled(){if(o())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(e,i){o()||(t.set_liq_heatmap_range(e,i),r())},getLiqHeatmapMin(){if(o())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(o())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(o())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(e){o()||(t.set_liq_heatmap_profile(e),r())},isLiqHeatmapProfile(){if(o())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(e){o()||(t.set_liq_heatmap_cell_height(e),r())},getLiqHeatmapCellHeight(){if(o())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapPredictions(e){o()||(t.set_liq_heatmap_predictions(e),r())},setLiqHeatmapFilledPct(e){o()||(t.set_liq_heatmap_filled_pct(e),r())},getLiqHeatmapFilledPct(){if(o())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(e,i){if(o())return"";try{return t.liq_heatmap_hit_test(e,i)}catch{return""}},liqZoneHitTest(e,i){if(o())return"";try{return t.liq_zone_hit_test(e,i)}catch{return""}},enableSmartRanges(){o()||w("smartRanges")&&(t.enable_smart_ranges(),r())},disableSmartRanges(){o()||(t.disable_smart_ranges(),r())},isSmartRangesEnabled(){if(o())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(e){o()||(t.set_sr_text_size(e),r())},setSrShowOb(e){o()||(t.set_sr_show_ob(e),r())},setSrObLast(e){o()||(t.set_sr_ob_last(e),r())},setSrShowObActivity(e){o()||(t.set_sr_show_ob_activity(e),r())},setSrShowBreakers(e){o()||(t.set_sr_show_breakers(e),r())},setSrMitigation(e){o()||(t.set_sr_mitigation(e),r())},setSrShowMetrics(e){o()||(t.set_sr_show_metrics(e),r())},setSrShowHtfOb(e){o()||(t.set_sr_show_htf_ob(e),r())},setSrHtfMinutes(e){o()||(t.set_sr_htf_minutes(e),r())},setSrShowFvg(e){o()||(t.set_sr_show_fvg(e),r())},setSrFvgTheme(e){o()||(t.set_sr_fvg_theme(e),r())},setSrFvgMitigation(e){o()||(t.set_sr_fvg_mitigation(e),r())},setSrFvgHtf(e){o()||(t.set_sr_fvg_htf(e),r())},setSrFvgExtend(e){o()||(t.set_sr_fvg_extend(e),r())},setSrShowObSignals(e){o()||(t.set_sr_show_ob_signals(e),r())},setSrShowPredict(e){o()||(t.set_sr_show_predict(e),r())},setSrShowFvgSignals(e){o()||(t.set_sr_show_fvg_signals(e),r())},setSrShowSmartRev(e){o()||(t.set_sr_show_smart_rev(e),r())},setSrSmartRevHtf(e){o()||(t.set_sr_smart_rev_htf(e),r())},setSrStatsType(e){o()||(t.set_sr_stats_type(e),r())},setSrStatsPosition(e){o()||(t.set_sr_stats_position(e),r())},getSrSignalsCount(){if(o())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){o()||w("emaStructure")&&(t.enable_ema_structure(),r())},disableEmaStructure(){o()||(t.disable_ema_structure(),r())},isEmaStructureEnabled(){if(o())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(e){o()||(t.set_es_ema1_len(e),r())},setEsEma2Len(e){o()||(t.set_es_ema2_len(e),r())},setEsWmaLen(e){o()||(t.set_es_wma_len(e),r())},setEsShowEma1(e){o()||(t.set_es_show_ema1(e),r())},setEsShowEma2(e){o()||(t.set_es_show_ema2(e),r())},setEsShowWma(e){o()||(t.set_es_show_wma(e),r())},setEsSwingLen(e){o()||(t.set_es_swing_len(e),r())},setEsShowBos(e){o()||(t.set_es_show_bos(e),r())},enableLiveSignals(){o()||(t.enable_live_signals(),r())},disableLiveSignals(){o()||(t.disable_live_signals(),r())},isLiveSignalsEnabled(){if(o())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(e){o()||(t.set_live_signals_data(new Float64Array(e)),r())},clearLiveSignals(){o()||(t.clear_live_signals(),r())},setLiveSignalsLeverage(e){o()||(t.set_live_signals_leverage(e),r())},getLiveSignalsLeverage(){if(o())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(e){o()||(t.set_live_signals_trial(e),r())},setLiveSignalsShowEntry(e){o()||(t.set_live_signals_show_entry(e),r())},setLiveSignalsShowTpSl(e){o()||(t.set_live_signals_show_tp_sl(e),r())},setLiveSignalsShowMaxProfit(e){o()||(t.set_live_signals_show_max_profit(e),r())},setLiveSignalsShowLabels(e){o()||(t.set_live_signals_show_labels(e),r())},setLiveSignalsShowZones(e){o()||(t.set_live_signals_show_zones(e),r())},setLiveSignalsTextSize(e){o()||(t.set_live_signals_text_size(e),r())},setLiveSignalsPipValue(e){o()||(t.set_live_signals_pip_value(e),r())},setLiveSignalsLoading(e){o()||(t.set_live_signals_loading(e),r())},getLiveSignalsCount(){if(o())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){o()||w("vpin")&&(t.enable_vpin(),r())},disableVpin(){o()||(t.disable_vpin(),r())},isVpinEnabled(){if(o())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(e,i){o()||(t.set_vpin_data(e,i),r())},setVpinBucketSize(e){o()||(t.set_vpin_bucket_size(e),r())},getVpinBucketSize(){if(o())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(e){o()||(t.set_vpin_num_buckets(e),r())},getVpinNumBuckets(){if(o())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(e){o()||(t.set_vpin_threshold(e),r())},getVpinThreshold(){if(o())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(e){o()||(t.set_vpin_show_sma(e),r())},setVpinShowZones(e){o()||(t.set_vpin_show_zones(e),r())},enableStopIceberg(){o()||w("stopIceberg")&&(t.enable_stop_iceberg(),r())},disableStopIceberg(){o()||(t.disable_stop_iceberg(),r())},isStopIcebergEnabled(){if(o())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(e){o()||(t.set_si_show_stops(e),r())},setSiShowIcebergs(e){o()||(t.set_si_show_icebergs(e),r())},setSiShowZones(e){o()||(t.set_si_show_zones(e),r())},setIcebergEvents(e,i,n,a,l,d){o()||(t.set_iceberg_events(e,i,n,a,l,d),r())},getStopRunCount(){if(o())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(o())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),r()},disableVolume(){t.disable_volume(),r()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(e){t.set_volume_ma_period(e),r()},setVolumeShowMa(e){t.set_volume_show_ma(e),r()},setVolumeShowSignals(e){t.set_volume_show_signals(e),r()},setVolumeColorMode(e){t.set_volume_color_mode(e),r()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),r()},disableObSignals(){t.disable_ob_signals(),r()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(e){t.set_obs_show_walls(e),r()},setObsShowGaps(e){t.set_obs_show_gaps(e),r()},setObsShowAlerts(e){t.set_obs_show_alerts(e),r()},setObsShowCom(e){t.set_obs_show_com(e),r()},setObsWalls(e,i){t.set_obs_walls(new Float64Array(e),new Float64Array(i)),r()},setObsGaps(e,i){t.set_obs_gaps(new Float64Array(e),new Float64Array(i)),r()},pushObsAlert(e,i,n,a,l){t.push_obs_alert(e,i,n,a,l),r()},setObsCom(e){t.set_obs_com(e),r()},clearObSignals(){t.clear_ob_signals(),r()},enableObFlow(){t.enable_ob_flow(),r()},disableObFlow(){t.disable_ob_flow(),r()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(e){t.set_obf_show_obi(e),r()},setObfShowNetFlow(e){t.set_obf_show_net_flow(e),r()},setObfShowCumDelta(e){t.set_obf_show_cum_delta(e),r()},pushObfSample(e,i,n,a){t.push_obf_sample(e,i,n,a),r()},setObfData(e){t.set_obf_data(new Float64Array(e)),r()},clearObFlow(){t.clear_ob_flow(),r()},setObfRatio(e){t.set_obf_ratio(e),r()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),r()},disableObMicro(){t.disable_ob_micro(),r()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(e,i,n,a,l,d,h,g,f,_,c,m,u){t.set_obm_data(e,i,n,a,l,d,h,g,f,_,c,m,u),r()},setObmAnchorTopRight(e){t.set_obm_anchor_top_right(e),r()},clearObMicro(){t.clear_ob_micro(),r()},enableAggLiq(){w("aggLiquidations")&&(t.enable_agg_liq(),r())},disableAggLiq(){t.disable_agg_liq(),r()},isAggLiqEnabled(){return t.is_agg_liq_enabled()},setAggLiqData(e){let i;if(e&&e.length>0&&typeof e[0]=="object"&&!Array.isArray(e[0])){i=new Float64Array(e.length*6);for(let n=0;n<e.length;n++){let a=e[n];i[n*6+0]=Number(a.time)||0,i[n*6+1]=Number(a.longUsd)||0,i[n*6+2]=Number(a.shortUsd)||0,i[n*6+3]=Number(a.longQty)||0,i[n*6+4]=Number(a.shortQty)||0,i[n*6+5]=Number(a.count)||0}}else i=new Float64Array(e||[]);t.set_agg_liq_data(i),r()},pushAggLiqBar(e,i,n,a,l,d){t.push_agg_liq_bar(e,i,n,a,l,d>>>0),r()},clearAggLiq(){t.clear_agg_liq(),r()},setAggLiqMode(e){t.set_agg_liq_mode(e),r()},getAggLiqMode(){return t.get_agg_liq_mode()},setAggLiqShowLong(e){t.set_agg_liq_show_long(e),r()},setAggLiqShowShort(e){t.set_agg_liq_show_short(e),r()},setAggLiqHover(e){t.set_agg_liq_hover(e|0),r()},aggLiqBarJson(e){let i=t.agg_liq_bar_json(e|0);if(!i)return null;try{return JSON.parse(i)}catch{return null}},setAggLiqRatio(e){t.set_agg_liq_ratio(e),r()},getAggLiqRatio(){return t.get_agg_liq_ratio()},screenToAggLiqY(e){return t.screen_to_agg_liq_y(e)},aggLiqToScreenY(e){return t.agg_liq_to_screen_y(e)},setAggLiqSignals(e){let i;if(e&&e.length>0&&typeof e[0]=="object"&&!Array.isArray(e[0])){i=new Float64Array(e.length*6);for(let n=0;n<e.length;n++){let a=e[n];i[n*6+0]=Number(a.time)/1e3,i[n*6+1]=Ge[a.type]??-1,i[n*6+2]=xe[a.side]??0,i[n*6+3]=Number(a.volumeUsd)||0,i[n*6+4]=Number(a.ratio)||0,i[n*6+5]=Math.max(0,Math.min(1,Number(a.confidence)||0))}}else i=new Float64Array(e||[]);t.set_agg_liq_signals(i),r()},pushAggLiqSignal(e){if(!e||e.time==null||e.type==null)return;let i=Ge[e.type];i!=null&&(t.push_agg_liq_signal(Number(e.time)/1e3,i,xe[e.side]??0,Number(e.volumeUsd)||0,Number(e.ratio)||0,Math.max(0,Math.min(1,Number(e.confidence)||0))),r())},clearAggLiqSignals(){t.clear_agg_liq_signals(),r()},setAggLiqShowSignals(e){t.set_agg_liq_show_signals(!!e),r()},isAggLiqShowSignals(){return t.is_agg_liq_show_signals()},setAggLiqSignalsOnChart(e){t.set_agg_liq_signals_on_chart(!!e),r()},isAggLiqSignalsOnChart(){return t.is_agg_liq_signals_on_chart()},enableMrdPullback(){o()||w("mrdPullback")&&(t.enable_mrd_pullback(),r())},disableMrdPullback(){o()||(t.disable_mrd_pullback(),r())},isMrdPullbackEnabled(){if(o())return!1;try{return t.is_mrd_pullback_enabled()}catch{return!1}},setMrdPullbackEntryMode(e){o()||(t.set_mrd_pullback_entry_mode(e),r())},setMrdPullbackTrendMode(e){o()||(t.set_mrd_pullback_trend_mode(e),r())},setMrdPullbackShowHiddenDiv(e){o()||(t.set_mrd_pullback_show_hidden_div(e),r())},setMrdPullbackSrMode(e){o()||(t.set_mrd_pullback_sr_mode(e),r())},setMrdPullbackTextSize(e){o()||(t.set_mrd_pullback_text_size(e),r())},setMrdPullbackTfMode(e){o()||(t.set_mrd_pullback_tf_mode(e),r())},setMrdPullbackHtfKlines(e,i,n,a,l,d){o()||(t.set_mrd_pullback_htf_klines(Ct(e),Ct(i),Ct(n),Ct(a),Ct(l),Ct(d)),r())},updateMrdPullbackLastHtfKline(e,i,n,a,l,d){o()||(t.update_mrd_pullback_last_htf_kline(e,i,n,a,l,d),r())},clearMrdPullbackHtfKlines(){o()||(t.clear_mrd_pullback_htf_klines(),r())}}}var Ge=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),xe=Object.freeze({neutral:0,long:1,short:2});function Qe(t,r,o,s){let w=i=>s()(i),e=(i,n,a)=>i<=1&&n<=1&&a<=1&&(i>0||n>0||a>0)?[Math.round(i*255),Math.round(n*255),Math.round(a*255)]:[i&255,n&255,a&255];return{addMarker(i,n,a){t.add_marker(i,n,a),r()},clearMarkers(){t.clear_markers(),r()},hitTestMarker(i,n){return t.hit_test_marker(i,n)},selectMarker(i){t.select_marker(i),r()},deselectMarker(){t.deselect_marker(),r()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(i){t.remove_marker(i),r()},deleteSelectedMarker(){let i=t.get_selected_marker();return i>0&&(t.remove_marker(i),r()),i},addTrendline(i,n,a,l,d,h,g,f,_,c=0){let[m,u,b]=e(d,h,g),p=t.add_trendline(i,n,a,l,m,u,b,f,_,c);return r(),p},addHorizontalLine(i,n,a,l,d,h,g,f=0){let[_,c,m]=e(a,l,d),u=t.add_horizontal_line(i,n,_,c,m,h,g,f);return r(),u},addArrow(i,n,a,l,d,h,g,f,_,c=0){let[m,u,b]=e(d,h,g),p=t.add_arrow(i,n,a,l,m,u,b,f,_,c);return r(),p},addFibRetracement(i,n,a,l,d,h,g,f,_,c=0){if(!w("drawingFull"))return 0;let[m,u,b]=e(d,h,g),p=t.add_fib_retracement(i,n,a,l,m,u,b,f,_,c);return r(),p},addFibExtension(i,n,a,l,d,h,g,f,_,c,m,u=0){if(!w("drawingFull"))return 0;let[b,p,v]=e(g,f,_),I=t.add_fib_extension(i,n,a,l,d,h,b,p,v,c,m,u);return r(),I},addLongPosition(i,n,a,l,d,h,g,f,_,c=0){if(!w("drawingFull"))return 0;let[m,u,b]=e(d,h,g),p=t.add_long_position(i,n,a,l,m,u,b,f,_,c);return r(),p},addShortPosition(i,n,a,l,d,h,g,f,_,c=0){if(!w("drawingFull"))return 0;let[m,u,b]=e(d,h,g),p=t.add_short_position(i,n,a,l,m,u,b,f,_,c);return r(),p},addAnchoredVwap(i,n,a,l,d,h,g=0){if(!w("drawingFull"))return 0;let[f,_,c]=e(n,a,l),m=t.add_anchored_vwap(i,f,_,c,d,h,g);return r(),m},addPriceLabel(i,n,a,l,d,h,g=0){let[f,_,c]=e(a,l,d),m=t.add_price_label(i,n,f,_,c,h,g);return r(),m},addTextNote(i,n,a,l,d,h,g=0){let[f,_,c]=e(a,l,d),m=t.add_text_note(i,n,f,_,c,h,g);return r(),m},addElliottImpulse(i,n,a,l,d,h,g=0){if(!w("drawingFull"))return 0;let[f,_,c]=e(a,l,d),m=t.add_elliott_impulse(i,n,f,_,c,h,g);return r(),m},setDrawingFontSize(i,n){t.set_drawing_font_size(i,n),r()},getDrawingFontSize(i){return t.get_drawing_font_size(i)},setDrawingText(i,n){t.set_drawing_text(i,n),r()},getDrawingText(i){return t.get_drawing_text(i)},setDrawingStyle(i,n,a,l,d){let[h,g,f]=e(n,a,l);t.set_drawing_style(i,h,g,f,d),r()},getDrawingColor(i){let n=t.get_drawing_color(i);return n?{r:n>>>24&255,g:n>>>16&255,b:n>>>8&255,lineWidth:(n&255)/10}:null},getDrawingDashed(i){try{return t.get_drawing_dashed(i)}catch{return!1}},setDrawingDashed(i,n){t.set_drawing_dashed(i,n),r()},getDrawingHideLabel(i){try{return t.get_drawing_hide_label(i)}catch{return!1}},setDrawingHideLabel(i,n){t.set_drawing_hide_label(i,n),r()},getDrawingFlipLeft(i){try{return t.get_drawing_flip_left(i)}catch{return!1}},setDrawingFlipLeft(i,n){try{t.set_drawing_flip_left(i,n),r()}catch{}},getDrawingTextWrap(i){try{return t.get_drawing_text_wrap(i)}catch{return!1}},setDrawingTextWrap(i,n){try{t.set_drawing_text_wrap(i,n),r()}catch{}},getDrawingKindId(i){try{return t.get_drawing_kind_id(i)}catch{return 255}},removeDrawing(i){t.remove_drawing(i),r()},clearDrawings(){t.clear_drawings(),r()},drawingCount(){return t.drawing_count()},setDrawingPreview(i,n,a,l,d,h,g,f,_,c,m=0){let[u,b,p]=e(h,g,f);t.set_drawing_preview(i,n,a,l,d,u,b,p,_,c,m),r()},clearDrawingPreview(){t.clear_drawing_preview(),r()},cancelBrush(){t.cancel_brush(),r()},selectDrawing(i){t.select_drawing(i),r()},deselectDrawing(){t.deselect_drawing(),r()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let i=t.get_selected_drawing();return i>0&&(t.remove_drawing(i),r()),i},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(i){try{t.import_drawings_json(i),r()}catch(n){console.warn("[bridge] importDrawingsJson failed",n)}},screenToWorld(i,n){return{x:t.screen_to_world_x(i),y:t.screen_to_world_y(n)}},worldToScreen(i,n){try{return{x:t.world_to_screen_x(i),y:t.world_to_screen_y(n)}}catch{return null}}}}var Q=t=>t instanceof Float64Array?t:new Float64Array(t);function Ue(t,r,o,s){let w=e=>s()(e);return{setKlines(e,i,n,a,l,d){o()||(t.set_klines(Q(e),Q(i),Q(n),Q(a),Q(l),Q(d)),r())},setRealTimestamps(e){o()||(t.set_real_timestamps(Q(e)),r())},appendRealTimestamp(e){o()||t.append_real_timestamp(e)},prependKlines(e,i,n,a,l,d){o()||(t.prepend_klines(Q(e),Q(i),Q(n),Q(a),Q(l),Q(d)),r())},appendKline(e,i,n,a,l,d){o()||(t.append_kline(e,i,n,a,l,d),r())},updateLastKline(e,i,n,a,l,d){o()||(t.update_last_kline(e,i,n,a,l,d),r())},popLastKline(){if(o())return!1;let e=t.pop_last_kline();return e&&r(),!!e},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(o())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(o())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(o())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(o())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(o())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(o())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(o())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(e,i,n,a,l,d,h){o()||w("heatmap")&&(t.set_heatmap(Q(e),i,n,a,l,d,h),r())},appendHeatmapColumn(e,i,n,a){o()||w("heatmap")&&(t.append_heatmap_column(Q(e),i,n,a),r())},updateLastHeatmapColumn(e,i,n){o()||(t.update_last_heatmap_column(Q(e),i,n),r())},getHeatmapLastTimestamp(){if(o())return 0;try{return t.get_heatmap_last_timestamp()??0}catch{return 0}},getHeatmapXStep(){if(o())return 0;try{return t.get_heatmap_x_step()??0}catch{return 0}},updateHeatmapColumnAt(e,i,n,a){o()||(t.update_heatmap_column_at(Q(e),i,n,a),r())},setHeatmapRange(e,i){o()||(t.set_heatmap_range(e,i),r())},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(e){try{t.set_heatmap_prefetch_range(e)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(e){try{t.set_heatmap_color_scheme(e),r()}catch{}},setHeatmapShowProfile(e){try{t.set_heatmap_show_profile(e),r()}catch{}},isHeatmapShowProfile(){try{return t.is_heatmap_show_profile()}catch{return!1}},setHeatmapProfileBrightness(e){try{t.set_heatmap_profile_brightness(Number(e)||1),r()}catch{}},getHeatmapProfileBrightness(){try{return t.get_heatmap_profile_brightness()}catch{return 1}},setHeatmapWalls(e){try{t.set_heatmap_walls(new Float64Array(e)),r()}catch{}},clearHeatmapWalls(){try{t.clear_heatmap_walls(),r()}catch{}},getHeatmapWallCount(){try{return t.get_heatmap_wall_count()}catch{return 0}},setChartType(e){o()||e===2&&!w("footprint")||(t.set_chart_type(e),r())},getChartType(){if(o())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(e){o()||w("footprint")&&(t.set_footprint_tick_size(e),r())},footprintEnsureLen(e){o()||t.footprint_ensure_len(e)},footprintAddTrade(e,i,n,a){o()||t.footprint_add_trade(e,i,n,a)},footprintAddTradeBatch(e){o()||!e||e.length===0||t.footprint_add_trade_batch(Q(e))},footprintSetBar(e,i,n,a,l){o()||(t.footprint_set_bar(e,i,n,a,l),r())},footprintClear(){o()||(t.footprint_clear(),r())},footprintClearBar(e){o()||t.footprint_clear_bar(e)},footprintPrependEmpty(e){o()||t.footprint_prepend_empty(e)},footprintSetShowSignals(e){o()||(t.footprint_set_show_signals(e),r())},footprintGetShowSignals(){if(o())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(o())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(e){o()||(t.footprint_set_show_profile(e),r())},footprintGetShowProfile(){if(o())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintProfileHitTest(e,i){if(o())return"";try{return t.footprint_profile_hit_test(e,i)}catch{return""}},footprintSetDisplayMode(e){o()||(t.footprint_set_display_mode(e),r())},footprintGetDisplayMode(){if(o())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},enableDeltaHistogram(){o()||t.enable_delta_histogram()},disableDeltaHistogram(){o()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(o())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var Pr=1,te=new Map,yr=4096,de=Object.freeze({r:255,g:255,b:255,a:153});function Rr(t){if(typeof t!="string")return de;if(t.charCodeAt(0)===35){let o=t.slice(1);return o.length===8?Object.freeze({r:parseInt(o.slice(0,2),16),g:parseInt(o.slice(2,4),16),b:parseInt(o.slice(4,6),16),a:parseInt(o.slice(6,8),16)}):Object.freeze({r:parseInt(o.slice(0,2),16),g:parseInt(o.slice(2,4),16),b:parseInt(o.slice(4,6),16),a:255})}let r=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return r?Object.freeze({r:+r[1],g:+r[2],b:+r[3],a:r[4]!==void 0?Math.round(+r[4]*255):255}):de}function rt(t){if(typeof t!="string")return de;let r=te.get(t);if(r!==void 0)return r;te.size>=yr&&te.clear();let o=Rr(t);return te.set(t,o),o}function he(t,r,o){let s=new Map,w=null,e=0,i=NaN;function n(){let f;try{f=t.kline_count()}catch{return w}if(f===0)return null;let _=t.kline_closes(),c=_?.[f-1]??NaN;if(w&&!(f!==e||c!==i))return w;try{let u=t.kline_timestamps(),b=t.kline_opens(),p=t.kline_highs(),v=t.kline_lows(),I=t.kline_volumes();if(!u||!_)return w;w={timestamps:Array.from(u),open:Array.from(b),high:Array.from(p),low:Array.from(v),close:Array.from(_),volume:Array.from(I),length:f},e=f,i=c;for(let R of s.values())R._needsCompute=!0}catch{}return w}function a(){return{seriesLine(f,_="#ffffff99",c=1.5){let m=rt(_);t.custom_series_line(new Float64Array(f),m.r,m.g,m.b,m.a,c)},seriesDashedLine(f,_="#ffffff66",c=1,m=4,u=4){let b=rt(_);t.custom_series_dashed_line(new Float64Array(f),b.r,b.g,b.b,b.a,c,m,u)},band(f,_,c="rgba(100,149,237,0.08)"){let m=rt(c);t.custom_band(new Float64Array(f),new Float64Array(_),m.r,m.g,m.b,m.a)},hline(f,_="#ffffff66",c=1){let m=rt(_);t.custom_hline(f,m.r,m.g,m.b,m.a,c)},dashedHline(f,_="#ffffff66",c=1,m=6,u=4){let b=rt(_);t.custom_dashed_hline(f,b.r,b.g,b.b,b.a,c,m,u)},marker(f,_,c="#e8a04a",m=3){let u=rt(c);t.custom_marker(f,_,u.r,u.g,u.b,u.a,m)},markerUp(f,_,c="#26a69a",m=5){let u=rt(c);t.custom_marker_up(f,_,u.r,u.g,u.b,u.a,m)},markerDown(f,_,c="#ef5350",m=5){let u=rt(c);t.custom_marker_down(f,_,u.r,u.g,u.b,u.a,m)},text(f,_,c,m="#ffffffaa",u=10,b="center"){let p=rt(m),v=b==="center"?1:b==="right"?2:0;t.custom_text(f,_,c,p.r,p.g,p.b,p.a,u,v)},priceLabel(f,_,c="#ffffffaa",m=10){let u=rt(c);t.custom_price_label(f,_,u.r,u.g,u.b,u.a,m)},linePx(f,_,c,m,u,b=1){let p=rt(u);t.custom_line_px(f,_,c,m,p.r,p.g,p.b,p.a,b)},fillRectPx(f,_,c,m,u){let b=rt(u);t.custom_fill_rect_px(f,_,c,m,b.r,b.g,b.b,b.a)},strokeRectPx(f,_,c,m,u,b=1){let p=rt(u);t.custom_stroke_rect_px(f,_,c,m,p.r,p.g,p.b,p.a,b)},textPx(f,_,c,m,u=10,b="left"){let p=rt(m),v=b==="center"?1:b==="right"?2:0;t.custom_text_px(f,_,c,p.r,p.g,p.b,p.a,u,v)},worldToScreenX:f=>t.world_to_screen_x(f),worldToScreenY:f=>t.world_to_screen_y(f),screenToWorldX:f=>t.screen_to_world_x(f),screenToWorldY:f=>t.screen_to_world_y(f),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()})}}function l(f){if(!f.compute)return;let _=n();if(_)try{f._computed=f.compute(_,f.params)||{}}catch(c){console.warn(`[CustomIndicator "${f.name}"] compute error:`,c),f._computed={}}}let d=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function h(f){if(s.size===0)return;let _=n(),c=!1;for(let p of s.values())if(p.enabled&&!(p.compute&&!_)){c=!0;break}if(!c)return;t.custom_begin();let m=a(),u=_||d;for(let p of s.values())if(p.enabled&&!(p.compute&&!_)){p._needsCompute&&(l(p),p._needsCompute=!1);try{p.render.call(p,m,p._computed||{},u)}catch(v){console.warn(`[CustomIndicator "${p.name}"] render error:`,v)}}if(t.custom_end(),t.custom_command_count()>0){let p=t.get_custom_buffer_ptr(),v=t.get_custom_buffer_len();o(f,r,p,v)}}function g(){w=null,e=0,i=NaN;for(let f of s.values())f._needsCompute=!0}return{add(f){let _=Pr++,c={id:_,name:f.name||`Custom ${_}`,params:{...f.params},compute:f.compute||null,render:f.render,enabled:!0,_computed:{},_needsCompute:!0};return s.set(_,c),_},remove(f){s.delete(f)},updateParams(f,_){let c=s.get(f);c&&(Object.assign(c.params,_),c._needsCompute=!0)},setEnabled(f,_){let c=s.get(f);c&&(c.enabled=_)},list(){return[...s.values()].map(f=>({id:f.id,name:f.name,params:{...f.params},enabled:f.enabled}))},invalidateCompute:g,renderAll:h}}var $e={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,cvdProfile:!0,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!1,mrdPullback:!1},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!1,tpo:!1,cvdProfile:!0,smartRanges:!1,emaStructure:!1,customIndicators:!1,forexSignals:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!0,mrdPullback:!0},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0}},Fr={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",cvdProfile:"CVD Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs",aggLiquidations:"Aggregated Liquidations",mrdPullback:"mrD-Pullback Signals"},Or={rsi:"Standard",drawingBasic:"Standard",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",largeTrades:"Professional",drawingFull:"Professional",vrvp:"Enterprise",tpo:"Enterprise",smartRanges:"Enterprise",emaStructure:"Enterprise",customIndicators:"Enterprise",forexSignals:"Enterprise",vpin:"Enterprise",stopIceberg:"Enterprise",aggLiquidations:"Professional",mrdPullback:"Professional"};function Pt(t){return $e[t]||$e.trial}function pe(t){let r=Pt(t),o=new Set;return function(w){if(r[w])return!0;if(!o.has(w)){o.add(w);let e=Fr[w]||w,i=Or[w]||"a higher";console.warn(`[MRD Chart Engine] "${e}" requires ${i} plan. Current plan: ${t}. Upgrade at https://mrd-chart.dev/pricing`)}return!1}}var De="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",Yr=14,Je="trial",qt="free",zr="MRD-Indicators",ke="mrd-indicators.com",me=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),jr=1297237059;function ge(t){t=t.replace(/-/g,"+").replace(/_/g,"/");let r=t.length%4;if(r===2)t+="==";else if(r===3)t+="=";else if(r!==0)throw new Error("bad b64url");return atob(t)}function rr(t){let r=ge(t),o=new Uint8Array(r.length);for(let s=0;s<r.length;s++)o[s]=r.charCodeAt(s);return o}function Zr(t){return new TextEncoder().encode(t)}var ee=null;async function Xr(){if(ee)return ee;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let r=rr(De);if(r.length!==32)throw new Error("Public key must be 32 bytes (Ed25519 raw)");return ee=(async()=>{let o={kty:"OKP",crv:"Ed25519",x:De,ext:!0};try{return await t.importKey("jwk",o,{name:"Ed25519"},!1,["verify"])}catch{return await t.importKey("raw",r,{name:"Ed25519"},!1,["verify"])}})(),ee}async function Hr(t){let r=t.split(".");if(r.length!==3)return null;let o,s;try{o=JSON.parse(ge(r[0])),s=JSON.parse(ge(r[1]))}catch{return null}if(o.alg!=="EdDSA"||o.typ!=="MRD-LIC")return null;let w=rr(r[2]),e=Zr(r[0]+"."+r[1]),i=await Xr();return await globalThis.crypto.subtle.verify("Ed25519",i,w,e)?s:null}function Wr(t,r){if(t==="*"||t===r)return!0;if(t.startsWith("*.")){let o=t.slice(1);return r.endsWith(o)||r===t.slice(2)}return!1}var or=me+"e7x",sr=me+"p3q",nr="mrd_engine_session_id",ir="mrd_ce_db",zt="meta",ar="trial_ts",lr=me+"ck";function ur(t){let r=`${t}:${jr}:${(t^2043453)>>>0}`,o=2166136261;for(let s=0;s<r.length;s++)o^=r.charCodeAt(s),o=Math.imul(o,16777619);return(o>>>0).toString(36)}function Gt(t){return`${t}.${ur(t)}`}function xt(t){if(!t||typeof t!="string")return null;let r=t.lastIndexOf(".");if(r<1)return null;let o=parseInt(t.slice(0,r),10);return!o||o<1e9||o>2e9||t.slice(r+1)!==ur(o)?null:o}function be(){try{return xt(localStorage.getItem(or))}catch{return null}}function Me(t){try{localStorage.setItem(or,Gt(t))}catch{}}function Se(){try{return xt(localStorage.getItem(sr))}catch{return null}}function ve(t){try{localStorage.setItem(sr,Gt(t))}catch{}}function Ce(){try{return xt(sessionStorage.getItem(nr))}catch{return null}}function Le(t){try{sessionStorage.setItem(nr,Gt(t))}catch{}}function Ie(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${lr}=([^;]+)`));return t?xt(decodeURIComponent(t[1])):null}catch{return null}}function Ae(t){try{let r=encodeURIComponent(Gt(t));document.cookie=`${lr}=${r};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var jt=null,tr=!1;function Br(){if(!(tr||typeof indexedDB>"u")){tr=!0;try{let t=indexedDB.open(ir,1);t.onupgradeneeded=()=>{let r=t.result;r.objectStoreNames.contains(zt)||r.createObjectStore(zt)},t.onsuccess=()=>{let s=t.result.transaction(zt,"readonly").objectStore(zt).get(ar);s.onsuccess=()=>{let w=xt(s.result);w&&(!jt||w<jt)&&(jt=w,Vr(w))}}}catch{}}}function fr(t){jt=t;try{let r=indexedDB.open(ir,1);r.onsuccess=()=>{r.result.transaction(zt,"readwrite").objectStore(zt).put(Gt(t),ar)}}catch{}}function _r(t,r){let o=null;for(let s of t)s&&(s>r+60||s<17e8||(!o||s<o)&&(o=s));return o}function Vr(t){let r=Math.floor(Date.now()/1e3),o=_r([be(),Se(),Ce(),Ie(),t],r);o&&o!==t||o&&(Me(o),ve(o),Le(o),Ae(o))}function qr(){let t=Math.floor(Date.now()/1e3);return _r([be(),Se(),Ce(),Ie(),jt],t)}function Gr(t){Me(t),ve(t),Le(t),Ae(t),fr(t)}function xr(t){be()||Me(t),Se()||ve(t),Ce()||Le(t),Ie()||Ae(t),jt||fr(t)}Br();function Kr(){let t=qr();t?xr(t):(t=Math.floor(Date.now()/1e3),Gr(t));let r=t+Yr*86400,o=Date.now()/1e3,s=Math.max(0,Math.ceil((r-o)/86400));return o>r?{valid:!0,plan:qt,watermark:!0,trialExpired:!0,daysLeft:0,features:Pt(qt)}:{valid:!0,plan:Je,watermark:!1,daysLeft:s,trialEnd:r,features:Pt(Je)}}async function re(t){if(!t||t==="trial")return Kr();let r;try{r=await Hr(t)}catch(l){return{valid:!1,error:`License verification error: ${l.message}`}}if(!r)return{valid:!1,error:"Invalid license signature"};let{p:o,d:s,e:w,pl:e,a:i}=r;if(!o)return{valid:!1,error:"Invalid license payload (missing plan)"};let n=Math.floor(Date.now()/1e3);if(w>0&&n>w)return{valid:!0,plan:qt,watermark:!0,trialExpired:!0,originalPlan:o,error:`License expired on ${new Date(w*1e3).toLocaleDateString()}`,features:Pt(qt)};let a=e||"web";if((a==="web"||a==="any")&&s&&s!=="*"&&typeof window<"u"){let l=window.location.hostname;if(l&&l!=="localhost"&&l!=="127.0.0.1"&&l!=="0.0.0.0"&&l!==""&&!String(s).split(",").map(g=>g.trim()).some(g=>Wr(g,l)))return{valid:!1,error:`License not valid for domain: ${l}`}}if(a==="mobile"&&i&&typeof window<"u"){let l=window.__mrd_app_id;if(l&&l!==i)return{valid:!1,error:`License not valid for app: ${l}`}}return{valid:!0,plan:o,domain:s,platform:a,appId:i||null,expiry:w,issuedAt:r.iat,subject:r.sub,watermark:!1,features:r.f?{...Pt(o),custom:r.f}:Pt(o)}}var Qr="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNCk7CiAgICAgIH0KCiAgICAgIC5jbHMtMiB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtMik7CiAgICAgIH0KCiAgICAgIC5jbHMtMiwgLmNscy0zLCAuY2xzLTQsIC5jbHMtNSwgLmNscy02IHsKICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7CiAgICAgIH0KCiAgICAgIC5jbHMtMyB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtMyk7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNik7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNSk7CiAgICAgIH0KCiAgICAgIC5jbHMtNiB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQtNyk7CiAgICAgIH0KCiAgICAgIC5jbHMtNyB7CiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXItZ3JhZGllbnQpOwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iOS4xMiIgeTE9IjE1Ljg4IiB4Mj0iMTkuNjMiIHkyPSI1LjM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2IzNTA5ZSIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmNWE0YzciLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC0yIiB4MT0iOS4wOCIgeTE9IjYuODEiIHgyPSI5LjA4IiB5Mj0iMTQuNzMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjM0ZmIzIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTMiIHgxPSIxNy42NyIgeTE9IjYuMTEiIHgyPSI4LjQxIiB5Mj0iNi4xMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1YTJhOGIiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNCIgeDE9IjIwLjAzIiB5MT0iMTUuODkiIHgyPSIxMC45OCIgeTI9IjE1Ljg5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y2YWFjYiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3NzJhOGQiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC01IiB4MT0iMTkuMDMiIHkxPSIxNi44MiIgeDI9IjE0Ljc5IiB5Mj0iMTIuNTgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2VkMzQ4ZCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTYiIHgxPSIxNS4yNyIgeTE9IjE1LjA2IiB4Mj0iMTUuMjciIHkyPSIxOS4zNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZWU0YzliIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNyIgeDE9IjUuNTEiIHkxPSItMTI4LjAyIiB4Mj0iLTMuNyIgeTI9Ii0xMjguMDIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwOS4xMiAxMC4wMSkgcm90YXRlKDg5LjYpIiB4bGluazpocmVmPSIjbGluZWFyLWdyYWRpZW50LTMiLz4KICA8L2RlZnM+CiAgPGcgY2xhc3M9ImNscy04IiBpZD0iTG9nbyI+CiAgICA8ZyBpZD0iT0JKRUNUUyIgPgogICAgICA8ZyBpZCA9IkxvZ28iPiAKICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00LjIzLDExYzAsNS4zNiw0LjM3LDkuNzEsOS43Niw5LjcxczkuNzYtNC4zNSw5Ljc2LTkuNzFTMTkuMzksMS4yOSwxNCwxLjI5LDQuMjMsNS42NCw0LjIzLDExWk0xMC4yNiwxMC4wN2MwLTEuNTQsMS4yNS0yLjc4LDIuOC0yLjc4aDEuODdjMS41NSwwLDIuOCwxLjI1LDIuOCwyLjc4djEuODZjMCwxLjU0LTEuMjUsMi43OC0yLjgsMi43OGgtMS4yMmMtLjQ1LDAtLjg4LjE1LTEuMjIuNDRsLTIuMjMsMS44NHYtNi45MloiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMC4yNiwxNi45OXYtNi45MnMwLS4wMiwwLS4wM2MuMDItMS41MiwxLjI2LTIuNzUsMi44LTIuNzVoLTUuMDljLTIuMDUsMC0zLjczLDEuNjQtMy43NCwzLjY4LDAsLjAxLDAsLjAzLDAsLjA0LDAsLjA4LDAsLjE2LDAsLjI0LDAsLjA0LDAsLjA4LDAsLjEyLDAsLjA0LDAsLjA4LDAsLjEyLDAsLjA2LDAsLjExLjAxLjE3LDAsLjAyLDAsLjA1LDAsLjA3LDAsLjA2LjAxLjEzLjAyLjE5LDAsLjAxLDAsLjAzLDAsLjA0LDAsLjA3LjAxLjE0LjAyLjIxLDAsMCwwLC4wMSwwLC4wMiwwLC4wNy4wMi4xNS4wMy4yMiwwLDAsMCwwLDAsMCwuNjgsNC42OCw0LjcxLDguMjcsOS42LDguMy0yLjA0LS4wMi0zLjY3LTEuNjktMy42Ny0zLjcyWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE0LjA0LDEuMjlzLS4wMywwLS4wNCwwYy0uMDgsMC0uMTYsMC0uMjQsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDYsMC0uMTEsMC0uMTcsMC0uMDIsMC0uMDUsMC0uMDcsMC0uMDYsMC0uMTMuMDEtLjE5LjAyLS4wMSwwLS4wMywwLS4wNCwwLS4wNywwLS4xNC4wMS0uMjEuMDIsMCwwLS4wMSwwLS4wMiwwLS4wNywwLS4xNS4wMi0uMjIuMDMsMCwwLDAsMCwwLDAtNC43LjY4LTguMzIsNC42OS04LjM1LDkuNTQuMDItMi4wMiwxLjctMy42NSwzLjc0LTMuNjVoNi45NnMuMDIsMCwuMDMsMGMxLjUzLjAyLDIuNzcsMS4yNiwyLjc3LDIuNzh2LTUuMDZjMC0yLjA0LTEuNjUtMy43MS0zLjctMy43MloiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC45MywxNC43MWg1LjA5YzIuMDQsMCwzLjcyLTEuNjMsMy43NC0zLjY1LS4wMyw0Ljg2LTMuNjUsOC44Ny04LjM1LDkuNTQsMCwwLDAsMCwwLDAtLjA3LjAxLS4xNS4wMi0uMjIuMDMsMCwwLS4wMSwwLS4wMiwwLS4wNywwLS4xNC4wMi0uMjEuMDItLjAxLDAtLjAzLDAtLjA0LDAtLjA2LDAtLjEzLjAxLS4xOS4wMi0uMDIsMC0uMDUsMC0uMDcsMC0uMDYsMC0uMTEsMC0uMTcsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDgsMC0uMTYsMC0uMjQsMC0uMDEsMC0uMDMsMC0uMDQsMC0yLjA1LDAtMy43LTEuNjgtMy43LTMuNzJsMi4yMy0xLjg0Yy4zNC0uMjguNzgtLjQ0LDEuMjItLjQ0aDEuMjJaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTQuOTMsMTQuNzFoNS4wOWMyLjA0LDAsMy43Mi0xLjYzLDMuNzQtMy42NS0uMDMsNC44Ni0zLjY1LDguODctOC4zNSw5LjU0LDAsMCwwLDAsMCwwLS4wNy4wMS0uMTUuMDItLjIyLjAzLDAsMC0uMDEsMC0uMDIsMC0uMDcsMC0uMTQuMDItLjIxLjAyLS4wMSwwLS4wMywwLS4wNCwwLS4wNiwwLS4xMy4wMS0uMTkuMDItLjAyLDAtLjA1LDAtLjA3LDAtLjA2LDAtLjExLDAtLjE3LDAtLjA0LDAtLjA4LDAtLjEyLDAtLjA0LDAtLjA4LDAtLjEyLDAtLjA4LDAtLjE2LDAtLjI0LDAtLjAxLDAtLjAzLDAtLjA0LDAtMi4wNSwwLTMuNy0xLjY4LTMuNy0zLjcybDIuMjMtMS44NGMuMzQtLjI4Ljc4LS40NCwxLjIyLS40NGgxLjIyWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTIwLjI4LDE0LjcxYy0uMDgsMC0uMTcsMC0uMjUsMGgtNi4zMWMtLjQ1LDAtLjg4LjE1LTEuMjIuNDRsLTIuMjMsMS44NGMwLC4wOCwwLC4xNywwLC4yNSwxLjA5LjY1LDIuMzcsMS4wMiwzLjczLDEuMDIsMi42NywwLDUuMDEtMS40Myw2LjI4LTMuNTVaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy02IiBkPSJNMjMuNzcsMTAuOTdzMC0uMDMsMC0uMDQsMC0uMDgsMC0uMTYsMC0uMjQsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDQsMC0uMDgsMC0uMTIsMC0uMDYsMC0uMTEtLjAxLS4xNywwLS4wMiwwLS4wNSwwLS4wNywwLS4wNi0uMDEtLjEzLS4wMi0uMTksMC0uMDEsMC0uMDMsMC0uMDQsMC0uMDctLjAyLS4xNC0uMDItLjIxLDAsMCwwLS4wMSwwLS4wMiwwLS4wNy0uMDItLjE1LS4wMy0uMjIsMCwwLDAsMCwwLDAtLjcxLTQuNjctNC43Ny04LjI0LTkuNjYtOC4yNCwyLjA0LDAsMy42OCwxLjY2LDMuNywzLjY5bC4wNCw1LjA2djEuODZzLjAxLjAyLjAxLjAzYzAsMS41Mi0xLjI1LDIuNzYtMi43OCwyLjc3bDUuMDktLjA0YzIuMDUtLjAxLDMuNzItMS42NiwzLjcxLTMuN1oiLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+",we=null,er=!1;function cr(){if(we||er)return we;er=!0;let t=new Image;return t.onload=()=>{we=t},t.src=Qr,null}function Ur(){return Math.floor(Date.now()/864e5)}function $r(t){let r=(t^2654435769)>>>0;return function(){r=r+1831565813>>>0;let o=Math.imul(r^r>>>15,1|r);return o=o+Math.imul(o^o>>>7,61|o)^o,((o^o>>>14)>>>0)/4294967296}}function Dr(t,r,o,s,w,e){let i=cr();t.save(),t.setTransform(1,0,0,1,0,0),t.font="bold 10px Inter, system-ui, sans-serif";let n=t.measureText(s);t.font="8px Inter, system-ui, sans-serif";let a=t.measureText(w),l=i?18:0,d=i?14:0,h=7,g=5,f=i?5:0,c=l+f+Math.max(n.width,a.width)+h*2,m=Math.max(d,20)+g*2,u=Math.round(r-c/2),b=Math.round(o-m/2);t.globalAlpha=.45,t.fillStyle=e?"rgba(255,255,255,0.8)":"rgba(18,18,28,0.8)",t.beginPath(),t.roundRect(u,b,c,m,6),t.fill(),t.strokeStyle=e?"rgba(0,0,0,0.04)":"rgba(255,255,255,0.04)",t.lineWidth=.5,t.stroke();let p=u+h,v=b+m/2;i&&(t.globalAlpha=.5,t.drawImage(i,p,v-d/2,l,d),p+=l+f),t.globalAlpha=.5,t.font="bold 10px Inter, system-ui, sans-serif",t.fillStyle=e?"#1a1a2e":"#ededf5",t.textAlign="left",t.textBaseline="alphabetic",t.fillText(s,p,v-1),t.font="8px Inter, system-ui, sans-serif",t.fillStyle=e?"#777790":"#8080a0",t.textBaseline="top",t.fillText(w,p,v+2),t.restore()}function dr(t,r,o,s){cr();let w=r.width,e=r.height;if(w<100||e<80)return;t.save(),t.setTransform(1,0,0,1,0,0);let i=$r(Ur()),n=100,a=Math.max(w-n*2,60),l=Math.max(e-n*2,40),d=n+i()*a,h=n+i()*l,g=o.trialExpired||o.plan===qt,f=zr,_=g?`Free \u2014 ${ke}/pricing`:`Trial: ${o.daysLeft||0}d left \u2014 ${ke}`;Dr(t,d,h,f,_,s),t.restore()}var Te=null,Ee=null,oe=null;async function Zt(){return Te?{module:Te,memory:Ee}:oe||(oe=(async()=>{let t=await import("./chart_engine.js");return await t.default(),Ee=t.wasm_memory(),Te=t,{module:t,memory:Ee}})(),oe)}function gt(t){let r=t.replace("#","");return[parseInt(r.substring(0,2),16)||0,parseInt(r.substring(2,4),16)||0,parseInt(r.substring(4,6),16)||0]}var se=null,ne=null;async function hr(){if(se)return se;let{module:t,memory:r}=await Zt();return se=t,ne=r,t}function Jr(){se||hr().catch(()=>{})}async function kr(t,r={}){r.appId&&typeof window<"u"&&(window.__mrd_app_id=r.appId);let o=r.licenseKey||r.key||null,s=await re(o);if(!s.valid)if(s.expired)console.warn(`[MRD Chart Engine] ${s.error}. Get a license at https://mrd-chart.dev/pricing`);else throw new Error(`[MRD Chart Engine] ${s.error}`);s.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${s.daysLeft} days remaining. Purchase: https://mrd-chart.dev/pricing`);let w=await hr(),e=window.devicePixelRatio||1,i=e,n=e,a=t.getBoundingClientRect();(a.width<1||a.height<1)&&(await new Promise(M=>{let L=new ResizeObserver(E=>{for(let F of E)if(F.contentRect.width>0&&F.contentRect.height>0){L.disconnect(),M();return}});L.observe(t.parentElement||t),setTimeout(()=>{L.disconnect(),M()},2e3)}),a=t.getBoundingClientRect());let l=Math.max(a.width,100),d=Math.max(a.height,100);t.width=Math.max(1,Math.round(l*e)),t.height=Math.max(1,Math.round(d*e));let h=t.getContext("2d");i=t.width/l,n=t.height/d,h.setTransform(i,0,0,n,0,0);let g=new w.ChartEngine(l,d),f=!1,_={dead:!1,destroyed:!1,cleanupEvents:null};function c(M){if(!_.dead){_.dead=!0,f=!0;try{let L=M?.message?String(M.message):String(M||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",L)}catch{}try{_.cleanupEvents?.()}catch{}}}function m(M){if(!M)return!1;if(typeof WebAssembly<"u"&&M instanceof WebAssembly.RuntimeError)return!0;let L=M.message?String(M.message):"";return L.includes("memory access out of bounds")||L.includes("recursive use of an object")||L.includes("null pointer passed to rust")||L.includes("unreachable")}let u=new Proxy(g,{get(M,L){let E=Reflect.get(M,L);return typeof E!="function"?E:function(...S){if(!_.dead)try{return E.apply(M,S)}catch(y){if(m(y)){c(y);return}throw y}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{u.set_touch_mode(!0)}catch{}try{let M=s.expired?2:s.watermark?1:0,L=s.daysLeft||0,E=1297237059;E=Math.imul(E,31)+M>>>0,E=Math.imul(E,31)+L>>>0,E=(E^E>>>16)>>>0,E=Math.imul(E,73244475)>>>0,E=(E^E>>>16)>>>0,u.set_license_state(M,L,E)}catch(M){console.warn("[MRD] set_license_state failed:",M.message)}let p=!0,v=null,I=!1,R=!1,q=!1,x=null,z=null,j=0,W=!1,U=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:0;function Y(){if(!(!I||R||v)){if(U>0){let M=performance.now()-j;if(M<U){z||(z=setTimeout(()=>{z=null,Y()},U-M));return}}v=requestAnimationFrame(Xt)}}let N=()=>{p=!0,Y()},Z=()=>q||_.dead,X=null,C=null,A=null,T=null,O=null,V=null,P=null,yt=null,ct=null,Rt=0,Lt=null,It=null,dt=0,D=0,k=-1,ht=!1,ft=!1,ie=ce(t,u,{onDirty:N,onCrosshairMove:(M,L,E)=>{dt=M,D=L,k=E,ht=!0,ft=!0},onCrosshairHide:()=>{ft&&(ft=!1,ht=!0,k=-1)},drawingApi:M=>{X=M},onDrawingComplete:()=>{C?.()},onDrawingCancel:()=>{A?.()},onDrawingSelected:(M,L,E)=>{T?.(M,L,E)},onMarkerSelected:M=>{O?.(M)},onDrawingDblClick:(M,L,E,F,S)=>{V?.(M,L,E,F,S)},onChartDblClick:(M,L,E,F)=>{P?.(M,L,E,F)},onVrvpHover:(M,L)=>{yt?.(M,L)},onLiqAnnotationPin:(M,L)=>{It?.(M,L)}});_.cleanupEvents=ie;function Kt(){if(!(!ht||f)){if(ht=!1,!ft){x&&x(null,0,0),ct&&ct("");return}if(x)if(k===0||k===1)try{let M=u.get_tooltip_data();x(M,dt,D)}catch{}else x(null,0,0);if(ct){let M=performance.now();if(k===0||k===1){if(M-Rt>=80){Rt=M;try{ct(u.lt_hit_test(dt,D))}catch{}}}else ct("")}}}function Xt(){if(v=null,!(!I||R||f)){W=!0;try{let M=!1;try{M=p||u.is_dirty()}catch{f=!0;return}if(M){p=!1,j=performance.now();let L=!1;try{if(u.render()>0){let F=u.get_command_buffer_ptr(),S=u.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,t.width,t.height),h.restore(),mt(h,ne,F,S),L=!0}try{ot.renderAll(h)}catch{}}catch(E){if(L||(p=!0),E instanceof WebAssembly.RuntimeError){f=!0,console.error("[MRD] Engine crashed:",E.message);return}}Kt();try{Lt?.()}catch{}if(s.watermark)try{let E=u.get_theme()===1;dr(h,t,s,E)}catch{}try{(p||u.is_dirty())&&Y()}catch{}}}finally{W=!1}}}let At=pe(s.plan),Ft=Ke(u,N,Z,()=>At),Qt=Qe(u,N,Z,()=>At),Ut=Ue(u,N,Z,()=>At),ot=he(u,ne,mt),Ht=["__trade_overlay","__position_overlay"],Wt=!0;return{engine:u,start(){I=!0,R=!1,p=!0,Y()},stop(){I=!1,v&&(cancelAnimationFrame(v),v=null),z&&(clearTimeout(z),z=null)},resize(M){if(f||W)return;if(a=t.getBoundingClientRect(),a.width<1||a.height<1){(M||0)<8&&setTimeout(()=>this.resize((M||0)+1),250);return}e=window.devicePixelRatio||1;let L=Math.max(1,Math.round(a.width*e)),E=Math.max(1,Math.round(a.height*e));t.width=L,t.height=E,i=t.width/a.width,n=t.height/a.height,h.setTransform(1,0,0,1,0,0),h.setTransform(i,0,0,n,0,0);try{u.resize(a.width,a.height)}catch(F){if(F instanceof WebAssembly.RuntimeError){f=!0;return}throw F}this.renderSync(),N()},renderSync(){if(f)return 0;try{let M=u.render();if(M>0){let L=u.get_command_buffer_ptr(),E=u.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,t.width,t.height),h.restore(),mt(h,ne,L,E)}return M}catch(M){return M instanceof WebAssembly.RuntimeError&&(f=!0),0}},renderFrameNow(){!I||R||f||(v&&(cancelAnimationFrame(v),v=null),z&&(clearTimeout(z),z=null),p=!0,Xt())},setCrosshairExternal(M,L,E){if(f)return!1;try{return u.set_crosshair(M,L),dt=M,D=L,k=typeof E=="number"?E:0,ht=!0,ft=!0,!0}catch{return!1}},hideCrosshairExternal(){if(!f)try{u.hide_crosshair(),ft&&(ft=!1,ht=!0,k=-1)}catch{}},setHoverPrice(M){Z()||(u.set_hover_price(M),N())},clearHoverPrice(){Z()||(u.clear_hover_price(),N())},hitZone(M,L){if(Z())return-1;let E=u.hit_zone(M,L);return E===void 0?-1:E},startDrawing(M,L){X?.setMode(M,L)},cancelDrawing(){X?.setMode(null)},onDrawingComplete(M){C=M},onDrawingCancel(M){A=M},onDrawingSelected(M){T=M},onMarkerSelected(M){O=M},onDrawingDblClick(M){V=M},onChartDblClick(M){P=M},setReplayState(M,L,E){Z()||(u.set_replay_state(M,L,E),N())},setReplayHovered(M){Z()||u.set_replay_hovered(M)},setReplayPreview(M){Z()||(u.set_replay_preview(M),N())},setPrecision(M){u.set_price_precision(M),N()},setCandleInterval(M){u.set_candle_interval(M)},setTheme(M){let L=M==="light"?1:0;typeof u.set_theme=="function"?(u.set_theme(L),N()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return u.get_theme()===1?"light":"dark"},setCandleBullColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bull_color=="function"&&(u.set_candle_bull_color(L,E,F),N())},setCandleBearColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bear_color=="function"&&(u.set_candle_bear_color(L,E,F),N())},setBackgroundColor(M){let[L,E,F]=gt(M);typeof u.set_background_color=="function"&&(u.set_background_color(L,E,F),N())},setGridColor(M,L=255){let[E,F,S]=gt(M);typeof u.set_grid_color=="function"&&(u.set_grid_color(E,F,S,L),N())},setCrosshairColor(M,L=160){let[E,F,S]=gt(M);typeof u.set_crosshair_color=="function"&&(u.set_crosshair_color(E,F,S,L),N())},setCrosshairStyle(M){typeof u.set_crosshair_style=="function"&&(u.set_crosshair_style(M),N())},setCrosshairWidth(M){typeof u.set_crosshair_width=="function"&&(u.set_crosshair_width(M),N())},setFontSize(M){typeof u.set_font_size=="function"&&(u.set_font_size(M),N())},getFontSize(){return typeof u.get_font_size=="function"?u.get_font_size():11},setGridHVisible(M){typeof u.set_grid_h_visible=="function"&&(u.set_grid_h_visible(!!M),N())},setGridVVisible(M){typeof u.set_grid_v_visible=="function"&&(u.set_grid_v_visible(!!M),N())},setDrawingsVisible(M){typeof u.set_drawings_visible=="function"&&(u.set_drawings_visible(!!M),N())},setIndicatorsVisible(M){typeof u.set_indicators_visible=="function"&&(u.set_indicators_visible(!!M),N())},setKlineVisible(M){typeof u.set_kline_visible=="function"&&(u.set_kline_visible(!!M),N())},getKlineVisible(){return typeof u.get_kline_visible=="function"?!!u.get_kline_visible():!0},setPositionMarkersVisible(M){let L=!!M;Wt=L;for(let E of ot.list())Ht.includes(E.name)&&ot.setEnabled(E.id,L);N()},setBgGradient(M,L){if(typeof u.set_bg_gradient=="function"){let[E,F,S]=gt(L||"#000000");u.set_bg_gradient(!!M,E,F,S),N()}},setCandleBullWickColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bull_wick_color=="function"&&(u.set_candle_bull_wick_color(L,E,F),N())},setCandleBullBorderColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bull_border_color=="function"&&(u.set_candle_bull_border_color(L,E,F),N())},setCandleBearWickColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bear_wick_color=="function"&&(u.set_candle_bear_wick_color(L,E,F),N())},setCandleBearBorderColor(M){let[L,E,F]=gt(M);typeof u.set_candle_bear_border_color=="function"&&(u.set_candle_bear_border_color(L,E,F),N())},onTooltip(M){x=M},onVrvpHover(M){yt=M},onLtHover(M){ct=M},onPostRender(M){Lt=M},onLiqAnnotationPin(M){It=M},pause(){R||(R=!0,v&&(cancelAnimationFrame(v),v=null),z&&(clearTimeout(z),z=null))},resume(){R&&(R=!1,I&&(p=!0,Y()))},get isPaused(){return R},destroy(){if(q=!0,_.destroyed=!0,I=!1,R=!1,v&&(cancelAnimationFrame(v),v=null),z&&(clearTimeout(z),z=null),ie(),!_.dead)try{g.free()}catch{}_.dead=!0},addIndicator(M){if(!At("customIndicators"))return null;let L=ot.add(M);return!Wt&&M&&Ht.includes(M.name)&&ot.setEnabled(L,!1),N(),L},removeIndicator(M){ot.remove(M),N()},updateIndicatorParams(M,L){ot.updateParams(M,L),N()},setIndicatorEnabled(M,L){ot.setEnabled(M,L),N()},listIndicators(){return ot.list()},invalidateCustomIndicators(){ot.invalidateCompute(),N()},get license(){return{plan:s.plan,valid:s.valid,expired:!!s.expired,watermark:!!s.watermark,daysLeft:s.daysLeft,features:s.features||{}}},async setLicenseKey(M){s=await re(M),!s.valid&&!s.expired&&console.error(`[MRD Chart Engine] ${s.error}`),At=pe(s.plan);try{let L=s.expired?2:s.watermark?1:0,E=s.daysLeft||0,F=1297237059;F=Math.imul(F,31)+L>>>0,F=Math.imul(F,31)+E>>>0,F=(F^F>>>16)>>>0,F=Math.imul(F,73244475)>>>0,F=(F^F>>>16)>>>0,u.set_license_state(L,E,F)}catch{}return N(),s.valid},...Ut,...Ft,...Qt}}function to(t,r){let{t:o,o:s,h:w,l:e,c:i,v:n}=t,a=i.length;if(a===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],d=[],h=[],g=[],f=[],_=[],c=Math.round(i[0]/r)*r,m=0;for(let u=0;u<a;u++){m+=n[u];let p=i[u]-c;for(;p>=r;){let v=c,I=c+r;l.push(o[u]),d.push(v),h.push(I),g.push(v),f.push(I),_.push(m),m=0,c=I}for(;-p>=r;){let v=c,I=c-r;l.push(o[u]),d.push(v),h.push(v),g.push(I),f.push(I),_.push(m),m=0,c=I}}return{t:l,o:d,h,l:g,c:f,v:_}}function eo(t,r){let{t:o,o:s,h:w,l:e,c:i,v:n}=t,a=i.length;if(a===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],d=[],h=[],g=[],f=[],_=[],c=s[0],m=w[0],u=e[0],b=0,p=o[0];for(let v=0;v<a;v++)for(m=Math.max(m,w[v]),u=Math.min(u,e[v]),b+=n[v];m-u>=r;){let I=i[v]>=c,R=I?u+r:m-r;if(l.push(p),d.push(c),h.push(m),g.push(u),f.push(R),_.push(b),c=R,m=I?Math.max(w[v],R):R,u=I?R:Math.min(e[v],R),b=0,p=o[v],m-u<r)break}return(b>0||l.length===0)&&(l.push(p),d.push(c),h.push(m),g.push(u),f.push(i[a-1]),_.push(b)),{t:l,o:d,h,l:g,c:f,v:_}}function ro(t,r){let{t:o,o:s,h:w,l:e,c:i,v:n}=t,a=i.length;if(a===0||r<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let l=[],d=[],h=[],g=[],f=[],_=[],c=Math.max(1,Math.round(r));for(let m=0;m<a;m+=c){let u=Math.min(m+c,a),b=-1/0,p=1/0,v=0;for(let I=m;I<u;I++)w[I]>b&&(b=w[I]),e[I]<p&&(p=e[I]),v+=n[I];l.push(o[m]),d.push(s[m]),h.push(b),g.push(p),f.push(i[u-1]),_.push(v)}return{t:l,o:d,h,l:g,c:f,v:_}}function oo(t,r){let o=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,s=o*2,w=r<=60?10:r<=300?5:3;return{brickSize:o,rangeSize:s,tickCount:w}}var so={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function no(t={}){let r={...so,...t},o=new Map,s=new Map,w=[],e=0;function i(g){return Math.round(g*1e8)/1e8}function n(g,f,_,c){for(let[m,u]of g){let b=i(m),p=f.get(b);if(!p){f.set(b,{lastVol:u,refills:0,totalConsumed:0,lastRefillTs:c,peakVisible:u});continue}if(u<p.lastVol*.3&&p.lastVol>0){let v=p.lastVol-u;p.totalConsumed+=v,p.lastVol=u;continue}if(u>p.lastVol*1.5&&p.totalConsumed>0)if(c-p.lastRefillTs<r.refillWindowMs){if(p.refills++,p.lastRefillTs=c,p.peakVisible=Math.max(p.peakVisible,u),p.refills>=r.minRefills){let I=p.totalConsumed,R=p.peakVisible;I>=R*r.hiddenRatio&&(w.push({timestamp:c,price:m,visibleSize:R,hiddenSize:I,isBid:_,refillCount:p.refills}),w.length>r.maxEvents&&w.shift(),p.refills=0,p.totalConsumed=0)}}else p.refills=1,p.totalConsumed=0,p.lastRefillTs=c;p.lastVol=u}if(f.size>r.maxTrackedLevels){let m=[...f.entries()];m.sort((b,p)=>b[1].lastRefillTs-p[1].lastRefillTs);let u=m.length-r.maxTrackedLevels;for(let b=0;b<u;b++)f.delete(m[b][0])}}function a(g,f,_){let c=_||Date.now();e=c;let m=g instanceof Map?g:new Map(g.map(([p,v])=>[p,v])),u=f instanceof Map?f:new Map(f.map(([p,v])=>[p,v]));n(m,o,!0,c),n(u,s,!1,c);let b=c-r.decayMs;for(;w.length>0&&w[0].timestamp<b;)w.shift()}function l(){return w}function d(g){if(!g||w.length===0)return;let f=w.length,_=new Float64Array(f),c=new Float64Array(f),m=new Float64Array(f),u=new Float64Array(f),b=new Uint8Array(f),p=new Uint32Array(f);for(let v=0;v<f;v++){let I=w[v];_[v]=I.timestamp,c[v]=I.price,m[v]=I.visibleSize,u[v]=I.hiddenSize,b[v]=I.isBid?1:0,p[v]=I.refillCount}g.setIcebergEvents(_,c,m,u,b,p)}function h(){o.clear(),s.clear(),w.length=0}return{onOrderbookUpdate:a,getEvents:l,pushToEngine:d,reset:h}}var Ne=null,gr=null;async function io(){if(Ne)return Ne;let{module:t,memory:r}=await Zt();return Ne=t,gr=r,t}var pr=Promise.resolve();async function ao(t,r={}){let o=await io();return await(pr=pr.then(()=>wr(o,t,r),()=>wr(o,t,r)))}function wr(t,r,o){let s=window.devicePixelRatio||1,w=r.getBoundingClientRect(),e=Math.max(w.width,60),i=Math.max(w.height,60);r.width=e*s,r.height=i*s;let n=r.getContext("2d");n.scale(s,s);let a=new t.OrderbookEngine(e,i);o.symbol&&a.set_symbol(o.symbol),o.tickSize&&a.set_tick_size(o.tickSize),o.visibleTicks&&a.set_visible_ticks(o.visibleTicks),o.exchangeCount&&a.set_exchange_count(o.exchangeCount),o.pricePrecision!=null&&a.set_price_precision(o.pricePrecision),o.theme==="light"&&a.set_theme(1),o.heatmapCols&&a.set_heatmap_cols(o.heatmapCols),(o.ringCols||o.ringRows)&&a.set_ring_capacity(o.ringCols||300,o.ringRows||400),o.heatmapAlphaMul!=null&&a.set_heatmap_alpha_mul(Number(o.heatmapAlphaMul)),o.showCumulative!=null&&a.set_show_cumulative(!!o.showCumulative),o.showSignalOverlays!=null&&a.set_show_signal_overlays(!!o.showSignalOverlays);let l=!0,d=null,h=!1,g=!1,f=!1,_=null,c=null;function m(){!h||f||d||(d=requestAnimationFrame(b))}let u=()=>{l=!0,m()};function b(){if(d=null,!h||f)return;let C=!1;try{C=l||a.is_dirty()}catch{f=!0;return}if(C){l=!1;try{if(a.render()>0){let T=a.get_command_buffer_ptr(),O=a.get_command_buffer_len();n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,r.width,r.height),n.restore(),mt(n,gr,T,O)}}catch(A){if(A instanceof WebAssembly.RuntimeError){f=!0,console.error("[OrderbookEngine] crashed:",A.message);return}l=!0}}}r.style.touchAction="none";let p=!1,v=0,I=new Map,R=0,q=0,x=0,z=0,j=!1;function W(C){if(f)return;C.preventDefault();let A=C.deltaY>0?1.08:.93;a.zoom_y(A,C.offsetY),u()}function G(C){if(!f){if(I.set(C.pointerId,{y:C.offsetY}),r.setPointerCapture(C.pointerId),I.size===1)p=!0,v=C.offsetY,z=C.offsetX,x=C.offsetY,j=!1;else if(I.size===2){p=!1;let A=[...I.values()];R=Math.abs(A[0].y-A[1].y),q=(A[0].y+A[1].y)/2}}}function U(C){if(!f){if(I.set(C.pointerId,{y:C.offsetY}),I.size>=2){let A=[...I.values()],T=Math.abs(A[0].y-A[1].y),O=(A[0].y+A[1].y)/2;if(R>0){let P=R/Math.max(T,1);a.zoom_y(P,O)}let V=O-q;Math.abs(V)>.5&&a.pan_y(V),R=T,q=O,u()}else if(p){let A=C.offsetY-v;v=C.offsetY,(Math.abs(C.offsetX-z)>4||Math.abs(C.offsetY-x)>4)&&(j=!0),a.pan_y(A),u()}else if(a.set_hover(C.offsetX,C.offsetY),u(),_)try{let A=a.get_hover_price();if(A>0){let T=a.get_hover_qty(),O=a.get_hover_side();_({price:A,qty:T,side:O===2?"ask":"bid"})}else _(null)}catch{}}}function Y(){f||(_&&_(null),a.clear_hover(),u())}function N(C){let A=p&&!j&&I.size===1;I.delete(C.pointerId);try{r.releasePointerCapture(C.pointerId)}catch{}if(I.size===0){if(A&&c&&!f)try{a.set_hover(C.offsetX,C.offsetY);let T=a.get_hover_price();if(T>0){let O=a.get_hover_qty(),V=a.get_hover_side();c({price:T,qty:O,side:V===2?"ask":"bid"})}}catch{}p=!1,R=0}else I.size===1&&(p=!0,v=[...I.values()][0].y,R=0)}function Z(){f||(a.center_on_mid(),u())}r.addEventListener("wheel",W,{passive:!1}),r.addEventListener("pointerdown",G),r.addEventListener("pointermove",U),r.addEventListener("pointerup",N),r.addEventListener("pointercancel",N),r.addEventListener("pointerleave",Y),r.addEventListener("dblclick",Z);function X(){r.removeEventListener("wheel",W),r.removeEventListener("pointerdown",G),r.removeEventListener("pointermove",U),r.removeEventListener("pointerup",N),r.removeEventListener("pointercancel",N),r.removeEventListener("pointerleave",Y),r.removeEventListener("dblclick",Z)}return{engine:a,start(){h=!0,l=!0,m()},stop(){h=!1,d&&(cancelAnimationFrame(d),d=null)},resize(){if(!(g||f)&&(w=r.getBoundingClientRect(),!(w.width<1||w.height<1))){s=window.devicePixelRatio||1,r.width=w.width*s,r.height=w.height*s,n.setTransform(1,0,0,1,0,0),n.scale(s,s);try{a.resize(w.width,w.height)}catch(C){if(C instanceof WebAssembly.RuntimeError){f=!0;return}throw C}u()}},pushSnapshot(C,A,T){if(f)return;let O=new Float64Array(C.length*2);for(let P=0;P<C.length;P++)O[P*2]=C[P][0],O[P*2+1]=C[P][1];let V=new Float64Array(A.length*2);for(let P=0;P<A.length;P++)V[P*2]=A[P][0],V[P*2+1]=A[P][1];try{a.push_snapshot(O,V,T)}catch(P){if(P instanceof WebAssembly.RuntimeError){f=!0;return}throw P}u()},pushSnapshotFlat(C,A,T){if(!f){try{a.push_snapshot(C,A,T)}catch(O){if(O instanceof WebAssembly.RuntimeError){f=!0;return}throw O}u()}},setDepthBook(C,A,T){if(f)return;let O=new Float64Array(C.length*2);for(let P=0;P<C.length;P++)O[P*2]=C[P][0],O[P*2+1]=C[P][1];let V=new Float64Array(A.length*2);for(let P=0;P<A.length;P++)V[P*2]=A[P][0],V[P*2+1]=A[P][1];try{a.set_depth_book(O,V,T)}catch(P){if(P instanceof WebAssembly.RuntimeError){f=!0;return}throw P}u()},setDepthBookFlat(C,A,T){if(!f){try{a.set_depth_book(C,A,T)}catch(O){if(O instanceof WebAssembly.RuntimeError){f=!0;return}throw O}u()}},pushHeatmapCol(C,A,T){if(f)return;let O=new Float64Array(C.length*2);for(let P=0;P<C.length;P++)O[P*2]=C[P][0],O[P*2+1]=C[P][1];let V=new Float64Array(A.length*2);for(let P=0;P<A.length;P++)V[P*2]=A[P][0],V[P*2+1]=A[P][1];try{a.push_heatmap_col(O,V,T)}catch(P){if(P instanceof WebAssembly.RuntimeError){f=!0;return}throw P}u()},pushHeatmapColFlat(C,A,T){if(!f){try{a.push_heatmap_col(C,A,T)}catch(O){if(O instanceof WebAssembly.RuntimeError){f=!0;return}throw O}u()}},resetRing(){if(!f){try{a.reset_ring()}catch(C){if(C instanceof WebAssembly.RuntimeError){f=!0;return}throw C}u()}},setExchangeLabels(C){if(f)return;let A=Array.isArray(C)?C.join(","):String(C);try{a.set_exchange_labels(A)}catch(T){if(T instanceof WebAssembly.RuntimeError){f=!0;return}throw T}u()},setSignalObi(C,A,T){if(!f){try{a.set_signal_obi(C,A,T)}catch(O){if(O instanceof WebAssembly.RuntimeError){f=!0;return}throw O}u()}},setSignalSpoof(C){if(!f){try{a.set_signal_spoof(C)}catch(A){if(A instanceof WebAssembly.RuntimeError){f=!0;return}throw A}u()}},setSignalAbsorption(C,A){if(!f){try{a.set_signal_absorption(C,A)}catch(T){if(T instanceof WebAssembly.RuntimeError){f=!0;return}throw T}u()}},setSignalFlow(C,A){if(!f){try{a.set_signal_flow(C,A)}catch(T){if(T instanceof WebAssembly.RuntimeError){f=!0;return}throw T}u()}},setSignalWalls(C,A){if(!f){try{a.set_signal_walls(new Float64Array(C),new Float64Array(A))}catch(T){if(T instanceof WebAssembly.RuntimeError){f=!0;return}throw T}u()}},setSignalGaps(C,A){if(!f){try{a.set_signal_gaps(new Float64Array(C),new Float64Array(A))}catch(T){if(T instanceof WebAssembly.RuntimeError){f=!0;return}throw T}u()}},setSymbol(C){f||(a.set_symbol(C),u())},setTickSize(C){f||(a.set_tick_size(C),u())},setVisibleTicks(C){f||(a.set_visible_ticks(C),u())},setExchangeCount(C){f||(a.set_exchange_count(C),u())},setPrecision(C){f||(a.set_price_precision(C),u())},setAutoCenter(C){f||a.set_auto_center(C)},centerOnMid(){f||(a.center_on_mid(),u())},setHeatmapCols(C){f||(a.set_heatmap_cols(C),u())},setHeatmapAlphaMul(C){if(!f){try{a.set_heatmap_alpha_mul(Number(C))}catch(A){if(A instanceof WebAssembly.RuntimeError){f=!0;return}throw A}u()}},setShowCumulative(C){if(!f){try{a.set_show_cumulative(!!C)}catch(A){if(A instanceof WebAssembly.RuntimeError){f=!0;return}throw A}u()}},setShowSignalOverlays(C){if(!f){try{a.set_show_signal_overlays(!!C)}catch(A){if(A instanceof WebAssembly.RuntimeError){f=!0;return}throw A}u()}},getHoverPrice(){return f?0:a.get_hover_price()},getHoverQty(){return f?0:a.get_hover_qty()},getHoverSide(){return f?0:a.get_hover_side()},onHoverPrice(C){_=C},onClickPrice(C){c=C},setTheme(C){f||(a.set_theme(C==="light"?1:0),u())},clear(){f||(a.clear(),u())},get isDead(){return f},destroy(){g=!0,h=!1,d&&(cancelAnimationFrame(d),d=null),X();try{a.free()}catch{}}}}var Pe=null,Mr=null;async function lo(){if(Pe)return Pe;let{module:t,memory:r}=await Zt();return Pe=t,Mr=r,t}function uo(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",r=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,o=typeof window<"u"&&Math.min(window.innerWidth,window.innerHeight)<820;return/iphone|ipad|ipod|android|mobile/i.test(t)||r&&o}var mr=Promise.resolve();async function fo(t,r={}){let o=await lo();return mr=mr.then(()=>br(o,t,r),()=>br(o,t,r))}function br(t,r,o){let s=window.devicePixelRatio||1,w=r.getBoundingClientRect(),e=Math.max(w.width,60),i=Math.max(w.height,60);r.width=e*s,r.height=i*s;let n=r.getContext("2d");n.setTransform(1,0,0,1,0,0),n.scale(s,s);let a=new t.TickEngine(e,i);o.tickSize&&a.set_tick_size(o.tickSize),o.pricePrecision!=null&&a.set_price_precision(o.pricePrecision),o.theme==="light"&&a.set_theme(1),(o.lookbackMs||o.cellMs)&&a.set_lookback(o.lookbackMs||5*60*1e3,o.cellMs||100),o.showTradeTape!=null&&a.set_show_trade_tape(!!o.showTradeTape),o.showBookHeatmap!=null&&a.set_show_book_heatmap(!!o.showBookHeatmap),o.showVwap!=null&&a.set_show_vwap(!!o.showVwap),o.showGrid!=null&&a.set_show_grid(!!o.showGrid);let l=o.isMobile!=null?!!o.isMobile:uo(),d=!!o.lowPower,h=l||d?33:16,g=66,f=3e4,_=!0,c=null,m=!1,u=!1,b=!1,p=!1,v=0,I=performance.now(),R=performance.now(),q=0,x=8,z=0,j=0,W=0,G=null,U=null,Y=0,N=[];function Z(){if(u||!m||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let S=performance.now();return(S-I>f&&S-R>f?g:h)+j}function X(){!m||u||p||c||(c=requestAnimationFrame(C))}function C(S){if(c=null,!m||u||p)return;let y=Z();if(!Number.isFinite(y))return;if(S-v<y){c=requestAnimationFrame(C);return}v=S,A();let H=_;if(!H)try{H=a.is_dirty()}catch{p=!0;return}if(H){_=!1;let K=performance.now();try{if(a.render()>0){let Sr=a.get_command_buffer_ptr(),vr=a.get_command_buffer_len();n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,r.width,r.height),n.restore(),mt(n,Mr,Sr,vr)}}catch(Tt){if(Tt instanceof WebAssembly.RuntimeError){p=!0,console.error("[TickEngine] crashed:",Tt.message);return}_=!0}let nt=performance.now()-K;q=q*.85+nt*.15,nt>x?(z+=1,z>=8&&(j=Math.min(100,j+16),z=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${h+j}ms (EMA ${q.toFixed(1)}ms, last ${nt.toFixed(1)}ms)`))):(z=0,j>0&&q<x*.5&&(j=Math.max(0,j-8)))}c=requestAnimationFrame(C)}function A(){if(G&&Y>0){try{a.push_book(W,G,U,Y)}catch(S){if(S instanceof WebAssembly.RuntimeError){p=!0;return}}G=null,U=null,Y=0}if(N.length){let S=new Float64Array(N);N.length=0;try{a.push_trades_batch(S)}catch(y){if(y instanceof WebAssembly.RuntimeError){p=!0;return}}}}let T=()=>{_=!0,X()};function O(){typeof document>"u"||(document.hidden?c&&(cancelAnimationFrame(c),c=null):(N.length=0,G=null,U=null,Y=0,v=0,T()))}typeof document<"u"&&document.addEventListener("visibilitychange",O);function V(){if(!(b||p)&&(w=r.getBoundingClientRect(),!(w.width<1||w.height<1))){s=window.devicePixelRatio||1,r.width=w.width*s,r.height=w.height*s,n.setTransform(1,0,0,1,0,0),n.scale(s,s);try{a.resize(w.width,w.height)}catch(S){if(S instanceof WebAssembly.RuntimeError){p=!0;return}throw S}T()}}let P=0,yt=2,ct=3,Rt=P,Lt=!1,It=0,dt=0,D=new Map,k=0,ht=0;function ft(S,y){if(p)return P;try{let H=a.hit_zone?.(S,y);return Number.isFinite(H)?H:P}catch{return P}}function ie(){}r.style.touchAction="none";function Kt(S){if(p||u)return;S.stopImmediatePropagation(),S.preventDefault(),I=performance.now();let y=S.deltaY,H=S.deltaX,K=Math.abs(y)>=Math.abs(H)?y:H;if(K===0)return;let nt=K>0?1.1:.9,Tt=ft(S.offsetX,S.offsetY);try{S.ctrlKey?a.zoom_y(S.offsetY,nt):S.shiftKey||Tt===yt?a.zoom_x(S.offsetX,nt):Tt===ct?a.zoom_y(S.offsetY,nt):a.zoom(S.offsetX,S.offsetY,nt)}catch{}T()}function Xt(S){if(!(p||u)){if(S.stopImmediatePropagation(),I=performance.now(),D.set(S.pointerId,{x:S.offsetX,y:S.offsetY}),r.setPointerCapture(S.pointerId),D.size===1)Lt=!0,It=S.offsetX,dt=S.offsetY,Rt=ft(S.offsetX,S.offsetY);else if(D.size===2){Lt=!1;let y=[...D.values()];k=Math.abs(y[0].y-y[1].y),ht=(y[0].y+y[1].y)/2}}}function At(S){if(!(p||u))if(S.stopImmediatePropagation(),I=performance.now(),D.set(S.pointerId,{x:S.offsetX,y:S.offsetY}),D.size>=2){let y=[...D.values()],H=Math.abs(y[0].y-y[1].y),K=(y[0].y+y[1].y)/2;if(k>0){let Tt=k/Math.max(H,1);try{a.zoom_y(K,Tt)}catch{}}let nt=K-ht;if(Math.abs(nt)>.5)try{a.pan_y(nt)}catch{}k=H,ht=K,T()}else if(Lt){let y=S.offsetX-It,H=S.offsetY-dt;It=S.offsetX,dt=S.offsetY;try{if(Rt===yt){if(Math.abs(y)>.5){let K=Math.exp(y*.004);a.zoom_x(It,K)}}else if(Rt===ct){if(Math.abs(H)>.5){let K=Math.exp(H*.004);a.zoom_y(dt,K)}}else Math.abs(y)>.5&&a.pan_x(y),Math.abs(H)>.5&&a.pan_y(H)}catch{}T()}else{try{a.set_hover(S.offsetX,S.offsetY)}catch{}T()}}function Ft(S){if(!p){u||S.stopImmediatePropagation(),D.delete(S.pointerId);try{r.releasePointerCapture(S.pointerId)}catch{}if(D.size===0)Lt=!1,k=0;else if(D.size===1){Lt=!0;let y=[...D.values()][0];It=y.x,dt=y.y,k=0}}}function Qt(S){if(!p){u||S.stopImmediatePropagation();try{a.clear_hover()}catch{}T()}}function Ut(S){if(p||u)return;S.stopImmediatePropagation();let y=ft(S.offsetX,S.offsetY);try{y===ct?a.reset_y_auto?.():y===yt?a.set_follow_live?.(!0):a.reset_view?.()}catch{}T()}function ot(S){p||u||S.stopImmediatePropagation()}function Ht(S){p||u||S.stopImmediatePropagation()}function Wt(S){p||u||S.stopImmediatePropagation()}function M(S){p||u||(S.stopImmediatePropagation(),S.preventDefault())}let L={capture:!0},E={capture:!0,passive:!1};r.addEventListener("wheel",Kt,E),r.addEventListener("pointerdown",Xt,L),r.addEventListener("pointermove",At,L),r.addEventListener("pointerup",Ft,L),r.addEventListener("pointercancel",Ft,L),r.addEventListener("pointerleave",Qt,L),r.addEventListener("dblclick",Ut,L),r.addEventListener("mousedown",ot,L),r.addEventListener("mousemove",Ht,L),r.addEventListener("mouseup",Wt,L),r.addEventListener("contextmenu",M,L);function F(){r.removeEventListener("wheel",Kt,E),r.removeEventListener("pointerdown",Xt,L),r.removeEventListener("pointermove",At,L),r.removeEventListener("pointerup",Ft,L),r.removeEventListener("pointercancel",Ft,L),r.removeEventListener("pointerleave",Qt,L),r.removeEventListener("dblclick",Ut,L),r.removeEventListener("mousedown",ot,L),r.removeEventListener("mousemove",Ht,L),r.removeEventListener("mouseup",Wt,L),r.removeEventListener("contextmenu",M,L),typeof document<"u"&&document.removeEventListener("visibilitychange",O)}return{engine:a,isMobile:l,start(){m=!0,u=!1,_=!0,v=0,I=performance.now(),R=performance.now(),X()},pause(){u=!0,c&&(cancelAnimationFrame(c),c=null)},resume(){b||p||(u=!1,m=!0,_=!0,v=0,X())},stop(){m=!1,c&&(cancelAnimationFrame(c),c=null)},resize:V,pushBook(S,y,H,K){p||u||(R=performance.now(),W=S,G=y,U=H,Y=K,X())},pushTrade(S,y,H,K){p||u||(R=performance.now(),N.push(S,y,H,K),X())},pushTradesFlat(S){if(!(p||u)){R=performance.now();for(let y=0;y<S.length;y++)N.push(S[y]);X()}},setTheme(S){if(!p){try{a.set_theme(S==="light"||S===1?1:0)}catch{}T()}},setTickSize(S){if(!p){try{a.set_tick_size(S)}catch{}T()}},setPricePrecision(S){if(!p){try{a.set_price_precision(S)}catch{}T()}},setLookback(S,y){if(!p){try{a.set_lookback(S,y)}catch{}T()}},setShowTradeTape(S){p||(a.set_show_trade_tape(!!S),T())},setShowBookHeatmap(S){p||(a.set_show_book_heatmap(!!S),T())},setShowVwap(S){p||(a.set_show_vwap(!!S),T())},setShowGrid(S){p||(a.set_show_grid(!!S),T())},setHeatmapPalette(S){if(p)return;let y=Math.max(0,Math.min(4,S|0));try{a.set_heatmap_palette?.(y)}catch{}T()},setLargeTrade3d(S){if(!p){try{a.set_large_trade_3d?.(!!S)}catch{}T()}},setLargeTradeScale(S){if(p)return;let y=Number.isFinite(S)?+S:1;try{a.set_large_trade_scale?.(y)}catch{}T()},setShowVolume(S){if(!p){try{a.set_show_volume?.(!!S)}catch{}T()}},setHeatmapIntensity(S,y){if(p)return;let H=Number.isFinite(S)?Math.max(0,Math.min(.99,+S)):0,K=Number.isFinite(y)?Math.max(H+.01,Math.min(1,+y)):1;try{a.set_heatmap_intensity?.(H,K)}catch{}T()},setShowLatestProfile(S){if(!p){try{a.set_show_latest_profile?.(!!S)}catch{}T()}},setFollowLive(S){p||(a.set_follow_live(!!S),T())},setAutoScaleY(S){p||(a.set_auto_scale_y(!!S),T())},resetView(){p||(a.reset_view(),T())},getLastMid(){if(p)return 0;try{return a.get_last_mid()}catch{return 0}},clearData(){if(!p){try{a.clear()}catch{}N.length=0,G=null,U=null,Y=0,T()}},destroy(){if(!b){b=!0,m=!1,u=!0,c&&(cancelAnimationFrame(c),c=null),F();try{a.free?.()}catch{}}}}}export{eo as buildRange,to as buildRenko,ro as buildTick,kr as createChartBridge,he as createCustomIndicatorManager,no as createIcebergDetector,ao as createOrderbookBridge,fo as createTickBridge,mt as dispatchCommands,Jr as prefetchWasm,ce as setupEvents,oo as suggestDefaults,re as validateLicense};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kline-orderbook-chart",
3
- "version": "0.2.19",
3
+ "version": "1.0.0",
4
4
  "description": "Candlestick chart with built-in orderbook heatmap, footprint chart, and liquidation heatmap. Native high-performance engine. 60 fps, zero dependencies.",
5
5
  "type": "module",
6
6
  "main": "dist/mrd-chart-engine.mjs",
@@ -15,7 +15,8 @@
15
15
  "files": [
16
16
  "dist/",
17
17
  "LICENSE",
18
- "README.md"
18
+ "README.md",
19
+ "CHANGELOG.md"
19
20
  ],
20
21
  "keywords": [
21
22
  "orderbook-heatmap",