[{"data":1,"prerenderedAt":5056},["ShallowReactive",2],{"indicators:cookbook/hud-terminal":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"cookbook/hud-terminal","cookbook/hud-terminal.md",{"title":7,"description":8,"order":9,"section":10},"HUD terminal","A terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows (last close, the bar's change, a rolling 20-bar signed…",63,"cookbook","---\ntitle: \"HUD terminal\"\ndescription: \"A terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows (last close, the bar's change, a rolling 20-bar signed…\"\norder: 63\nsection: \"cookbook\"\n---\n\n\u003C!-- source: docs/indicators/cookbook/hud-terminal.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# HUD terminal\n\nA terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows (last close, the bar's change, a rolling 20-bar signed flow, a status line) pinned to the top-left corner of the pane and refreshed on the live bar. The kScript (legacy) precedent is the MMT-style terminal script, a `plotTable` under `isLastBar`; here the readout is the package's own handles, so every pixel, word and refresh is under your control.\n\nBoxes and labels are handles: objects the Indicator creates, moves, and re-words across bars by an integer id ([Drawing objects](../functions/drawing-objects.md)). Two declarations set the defaults every new handle starts from: `anchor: \"top_left\"` puts them in pane pixels measured from the pane's top-left corner instead of chart time and price, and `align: \"left\"` makes a label's text start at its x. One bounded string slot carries every label's text, one row at a time. The frame is drawn once and stays; the rows are rewritten only when `bar.isLast()` is true, so a closed bar costs nothing. This is also the `hud-terminal` template: `om wrun create` scaffolds it, and it compiles as written.\n\n## The Indicator\n\n```typescript\n// A terminal-style HUD the package draws itself: two anchored boxes and four left-aligned rows, refreshed on the live bar.\nimport { handles, input, none, ohlcv, output, param, string, trades } from \"./sdk/declare\"; // the declaring words\nimport { bar, draw, LabelHandle } from \"./gen/draw\"; // handle constructors, the label class, and the last-bar signal\nimport { in_buy, in_close, in_sell } from \"./gen/inputs\"; // generated: an in_ reader for each input declared below\nimport { emitRow, out_flow } from \"./gen/outputs\"; // generated: an out_ writer per output, plus emitRow\nimport { p_bars } from \"./gen/params\"; // generated: a p_ reader for the window param declared below\nimport { sb_clear, sb_f64, sb_text, str_text_sb } from \"./gen/strings\"; // the allocation-free line builder and the slot's sender\n\nparam(\"bars\", 20, { min: 2, max: 200 }); // the flow window in bars; a window param also sizes the daemon's fetch for reads\ninput(\"close\", ohlcv.close); // the primary input: the chart's own candles define the grid every other input lines up on\ninput(\"buy\", trades.volume, { side: \"BUY\", missing: \"zero\" }); // aggressive buy volume; a bar with no prints reads 0\ninput(\"sell\", trades.volume, { side: \"SELL\", missing: \"zero\" }); // aggressive sell volume, the other half of the tape\noutput(\"flow\", none); // data-only: the rolling signed flow is a metric on your machine; the HUD is the chart look\nstring(\"text\", { max_bytes: 40 }); // one bounded slot every label is written through, one row at a time\nhandles.box({ anchor: \"top_left\" }); // enable box handles, placed in pane pixels from the top-left corner\nhandles.label({ anchor: \"top_left\", align: \"left\", size: 11 }); // enable label handles whose text starts at x\n\nconst MAX_BARS = 200; // the ring is sized for the largest window; init() reads the one in use\nconst deltas = new StaticArray\u003Cf64>(MAX_BARS); // the last bars per-bar deltas, a ring the rolling sum reads\nconst titleBar = draw.box(0); const body = draw.box(1); const title = draw.label(2); // handle objects allocate once\nconst rows: LabelHandle[] = [draw.label(3), draw.label(4), draw.label(5), draw.label(6)]; // ids are one space across kinds\nlet bars = 20; let close: f64 = NaN; let prev: f64 = NaN; let flow: f64 = 0.0; let head = 0; let framed = false; // module state\n\nexport function init(): void { bars = i32(p_bars()); } // the window param sizes the ring (the ring itself never reallocates)\nexport function state(): i32 { // once per bar: read the bar, fold its delta into the rolling sum (the ring drops the oldest)\n  prev = close; close = in_close(); const delta = in_buy() - in_sell();\n  flow += delta - deltas[head]; deltas[head] = delta; head = (head + 1) % bars; return 1;\n}\n// finalize() runs after state(): write the output, frame the HUD once, refresh the rows on the live bar only.\n// A row is one line: build its text with sb_* (numbers through sb_f64, never a locale), then text(...) sends\n// the slot and draws the label at the last set(x, y); the slot is reused row by row, the host copies each draw.\nexport function finalize(): void {\n  out_flow(flow);\n  if (!framed) { // a handle set on one bar stays until delete(), so the frame and its title are drawn once\n    titleBar.set(14, 12, 394, 34).opacity(0.6); body.set(14, 34, 394, 132);\n    sb_clear(); sb_text(\"HUD terminal\"); title.set(24, 23).text(str_text_sb); framed = true;\n  }\n  if (bar.isLast()) { // the live rows: refreshed on the newest bar only, so closed bars draw nothing\n    sb_clear(); sb_text(\"close   \"); sb_f64(close, 2); rows[0].set(24, 52).text(str_text_sb);\n    sb_clear(); sb_text(\"change  \"); sb_f64(isNaN(prev) ? 0.0 : ((close - prev) / prev) * 100.0, 2); sb_text(\"%\"); rows[1].set(24, 72).text(str_text_sb);\n    sb_clear(); sb_text(\"flow    \"); sb_f64(flow, 1); sb_text(\" over \"); sb_f64(f64(bars), 0); sb_text(\" bars\"); rows[2].set(24, 92).text(str_text_sb);\n    sb_clear(); sb_text(flow > 0.0 ? \"status  buyers lead\" : flow \u003C 0.0 ? \"status  sellers lead\" : \"status  balanced\"); rows[3].set(24, 118).text(str_text_sb);\n  }\n  emitRow();\n}\n// reset() runs when the chart restarts the series: back to what init() built, the ring cleared, the frame redrawn.\nexport function reset(): void { for (let i = 0; i \u003C MAX_BARS; i += 1) deltas[i] = 0.0; close = NaN; prev = NaN; flow = 0.0; head = 0; framed = false; }\n```\n\n## How it works\n\n**Two declarations place everything.** `handles.box({ anchor: \"top_left\" })` and `handles.label({ anchor: \"top_left\", align: \"left\", size: 11 })` enable the two handle kinds and set the defaults every new box and label starts from. With the anchor word, `set(14, 12, 394, 34)` is a box from 14 px to 394 px across and 12 px to 34 px down from the pane's top-left corner, whatever the chart is scrolled or zoomed to; without it the same four numbers would be times and prices. With `align: \"left\"`, a label's text starts at its x (24 px) instead of being centred on it, which is what lines the rows up like a terminal. Both words are sheet defaults; a single handle can override them with `anchor(...)` and `align(...)` from `./gen/draw`. Declaring a handle kind, or calling `bar.isLast()`, is what derives the third ABI version (`wrun-3`) in the generated sheet.\n\n**One slot, five labels.** `string(\"text\", { max_bytes: 40 })` is the only text slot. Each row is built into the shared line buffer with `sb_clear()`, `sb_text(...)` and `sb_f64(value, decimals)`, then `text(str_text_sb)` sends the slot and draws the label at its last `set(x, y)`. The host copies the slot's bytes into the handle at the moment of the draw call, so writing the same slot five times on one bar yields five different labels. Nothing allocates per bar: the buffer is one static array sized to `max_bytes`, and `sb_f64` formats the double digit by digit (`124.00`, `0.81`, `330.0`), never through a locale.\n\n**The frame once, the rows on the live bar.** A handle set on one bar stays on the chart until `delete()`, so the two boxes and the title are drawn on the first bar and never touched again (`framed` remembers that). The four rows sit under `bar.isLast()`: true on the newest bar the host holds (the last row of a full run, the forming bar live), false on every earlier bar. On a closed bar `finalize()` writes the output and emits the row, with no string write and no draw call. On the live bar the rows are rewritten with the current close, the change against the previous close, the flow and its verdict.\n\n**The rolling flow.** `buy` and `sell` are the two halves of the tape, `trades.volume` with `side: \"BUY\"` and `side: \"SELL\"`, the [Aggregated CVD](aggregated-cvd.md) shape; `missing: \"zero\"` makes a bar with no prints contribute nothing instead of repeating the last value. `state()` folds each bar's delta into a 20-slot ring: add the new delta, subtract the one falling out, so `flow` is always the sum of the last 20 deltas without a loop. The same figure goes out through `out_flow`, so the package is also a metric on your machine even though its chart look is the HUD alone.\n\n## What changed in the port\n\n- The MMT-style terminal scripts, the kScript (legacy) precedent, drew their readout with `plotTable(...)` under `isLastBar`, one table declaration with its rows, position and colors. Here the readout is boxes and labels the package owns: it chooses the ids, the pixel coordinates, the text of each row and the bar it redraws on. The [Aggregated CVD](aggregated-cvd.md) recipe's venue table is the same construct in kScript form.\n- `isLastBar` is `bar.isLast()`, a call answered in `state()` and `finalize()`. The kScript engine evaluated the table on the last bar only; here the split is explicit, the frame once and the rows on the live bar, and the closed bars pay nothing.\n- `position=\"top_right\"` on a table became `anchor: \"top_left\"` on the handle declarations, one word that turns the coordinates into pane pixels. Every placement word (`top_right`, `bottom_left`, `middle_center`, the single-axis `top`, `right`, and the rest) is in [Drawing objects](../functions/drawing-objects.md).\n- `\"\".concat(...)` and `math.round(...)` became the string builder: `sb_text`, `sb_f64` with a decimal count, `sb_int`. There is no string concatenation per bar and no locale.\n- The table's implicit text alignment became the `align` word, declared once as a default or set per label with `align(ALIGN_RIGHT)`.\n- The venue-count row of the table became a metric: the flow figure is a data-only output, readable by `om metric series`, a watch or a screen, while the HUD stays the only thing drawn on the chart.\n\n## Customize it\n\n- **Right-align a column.** Import `ALIGN_RIGHT` from `./gen/draw` and call `rows[i].align(ALIGN_RIGHT)` after the row's first draw (or `style.align(rows[i], ALIGN_RIGHT)`), then place its x at the right edge of the body box; `ALIGN_DEFAULT` clears the word and restores centred text.\n- **Move the HUD.** Change the anchor word on both declarations to `top_right` or `bottom_left`; the pixel offsets are then measured from that corner. A single-axis word such as `top` keeps x on chart time and pins only y.\n- **Add a row.** Reserve one more id (`draw.label(7)`), give it a y 20 px below the last row, extend the body box's bottom, and write it under `bar.isLast()` like the others. Ids are one space across boxes, labels, lines and polylines.\n- **Change the window.** The `bars` param (2..200) sizes the ring in `init()` and, because it is a declared window param, sets how many bars the daemon fetches for a metric read; a larger ring only needs a larger `MAX_BARS`.\n- **Plot the flow too.** `output(\"flow\", line, lower)` draws the rolling sum in its own pane beside the HUD; the `none` plot keeps it data-only.\n- **Colors.** The box declaration takes `color`, `borderColor`, `opacity` and `borderWidth`, the label declaration `color` and `size`; per handle, `fill(rgba(...))`, `color(rgb(...))` and `opacity(...)` restyle one object.\n\nScaffold, build, install, and read the flow figure on your machine:\n\n```bash\nom wrun create @you/hud-terminal ./hud-terminal --template hud-terminal\nom wrun build ./hud-terminal\nom wrun install ./hud-terminal --replace\nom metric series --metric wrun/@you/hud-terminal/flow --symbol BTCUSDT --exchange BINANCE_FUTURES --bars 20\n```\n\n## Concepts used\n\n- [Drawing objects](../functions/drawing-objects.md) for handles, the anchor and align words, and `bar.isLast()`\n- [String functions](../functions/string-functions.md) for the `sb_*` builder and the slot senders\n- [Data sources](../core-concepts/data-sources.md) for `trades.volume` with a `side` and the `missing` policies\n- [Execution model](../core-concepts/execution-model.md) for the module-level ring and where the live bar is evaluated\n- [Aggregated CVD](aggregated-cvd.md) for the side-split tape this recipe folds into a rolling sum\n",{"type":13,"children":14,"data":5050,"position":5052},"root",[15,25,28,29,87,88,228,229,248,249,2613,2614,2631,2632,2840,2841,3085,3086,3195,3196,3423,3424,3440,3441,3971,3972,3987,3988,4622,4623,4637,4638,4788,4789,4805,4806],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/cookbook/hud-terminal.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":19,"end":22},{"line":20,"column":20,"offset":21},1,0,{"line":20,"column":23,"offset":24},128,127,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":84},"element","p",{},[34,43,57,64,77],{"type":26,"value":35,"position":36},"A terminal-style readout the package draws itself: a title bar, a body box, and four left-aligned rows (last close, the bar's change, a rolling 20-bar signed flow, a status line) pinned to the top-left corner of the pane and refreshed on the live bar. The kScript (legacy) precedent is the MMT-style terminal script, a ",{"start":37,"end":40},{"line":38,"column":20,"offset":39},5,145,{"line":38,"column":41,"offset":42},320,464,{"type":30,"tagName":44,"properties":45,"children":46,"position":54},"code",{},[47],{"type":26,"value":48,"position":49},"plotTable",{"start":50,"end":51},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},331,475,{"start":55,"end":56},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},{"type":26,"value":58,"position":59}," under ",{"start":60,"end":61},{"line":38,"column":52,"offset":53},{"line":38,"column":62,"offset":63},338,482,{"type":30,"tagName":44,"properties":65,"children":66,"position":74},{},[67],{"type":26,"value":68,"position":69},"isLastBar",{"start":70,"end":71},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},349,493,{"start":75,"end":76},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},{"type":26,"value":78,"position":79},"; here the readout is the package's own handles, so every pixel, word and refresh is under your control.",{"start":80,"end":81},{"line":38,"column":72,"offset":73},{"line":38,"column":82,"offset":83},453,597,{"start":85,"end":86},{"line":38,"column":20,"offset":39},{"line":38,"column":82,"offset":83},{"type":26,"value":27},{"type":30,"tagName":31,"properties":89,"children":90,"position":225},{},[91,100,118,125,138,145,158,165,178,185,198,205,218],{"type":26,"value":92,"position":93},"Boxes and labels are handles: objects the Indicator creates, moves, and re-words across bars by an integer id (",{"start":94,"end":97},{"line":95,"column":20,"offset":96},7,599,{"line":95,"column":98,"offset":99},112,710,{"type":30,"tagName":101,"properties":102,"children":104,"position":113},"a",{"href":103},"../functions/drawing-objects.md",[105],{"type":26,"value":106,"position":107},"Drawing objects",{"start":108,"end":111},{"line":95,"column":109,"offset":110},113,711,{"line":95,"column":23,"offset":112},726,{"start":114,"end":115},{"line":95,"column":98,"offset":99},{"line":95,"column":116,"offset":117},162,760,{"type":26,"value":119,"position":120},"). Two declarations set the defaults every new handle starts from: ",{"start":121,"end":122},{"line":95,"column":116,"offset":117},{"line":95,"column":123,"offset":124},229,827,{"type":30,"tagName":44,"properties":126,"children":127,"position":135},{},[128],{"type":26,"value":129,"position":130},"anchor: \"top_left\"",{"start":131,"end":132},{"line":95,"column":123,"offset":124},{"line":95,"column":133,"offset":134},249,847,{"start":136,"end":137},{"line":95,"column":123,"offset":124},{"line":95,"column":133,"offset":134},{"type":26,"value":139,"position":140}," puts them in pane pixels measured from the pane's top-left corner instead of chart time and price, and ",{"start":141,"end":142},{"line":95,"column":133,"offset":134},{"line":95,"column":143,"offset":144},353,951,{"type":30,"tagName":44,"properties":146,"children":147,"position":155},{},[148],{"type":26,"value":149,"position":150},"align: \"left\"",{"start":151,"end":152},{"line":95,"column":143,"offset":144},{"line":95,"column":153,"offset":154},368,966,{"start":156,"end":157},{"line":95,"column":143,"offset":144},{"line":95,"column":153,"offset":154},{"type":26,"value":159,"position":160}," makes a label's text start at its x. One bounded string slot carries every label's text, one row at a time. The frame is drawn once and stays; the rows are rewritten only when ",{"start":161,"end":162},{"line":95,"column":153,"offset":154},{"line":95,"column":163,"offset":164},545,1143,{"type":30,"tagName":44,"properties":166,"children":167,"position":175},{},[168],{"type":26,"value":169,"position":170},"bar.isLast()",{"start":171,"end":172},{"line":95,"column":163,"offset":164},{"line":95,"column":173,"offset":174},559,1157,{"start":176,"end":177},{"line":95,"column":163,"offset":164},{"line":95,"column":173,"offset":174},{"type":26,"value":179,"position":180}," is true, so a closed bar costs nothing. This is also the ",{"start":181,"end":182},{"line":95,"column":173,"offset":174},{"line":95,"column":183,"offset":184},617,1215,{"type":30,"tagName":44,"properties":186,"children":187,"position":195},{},[188],{"type":26,"value":189,"position":190},"hud-terminal",{"start":191,"end":192},{"line":95,"column":183,"offset":184},{"line":95,"column":193,"offset":194},631,1229,{"start":196,"end":197},{"line":95,"column":183,"offset":184},{"line":95,"column":193,"offset":194},{"type":26,"value":199,"position":200}," template: ",{"start":201,"end":202},{"line":95,"column":193,"offset":194},{"line":95,"column":203,"offset":204},642,1240,{"type":30,"tagName":44,"properties":206,"children":207,"position":215},{},[208],{"type":26,"value":209,"position":210},"om wrun create",{"start":211,"end":212},{"line":95,"column":203,"offset":204},{"line":95,"column":213,"offset":214},658,1256,{"start":216,"end":217},{"line":95,"column":203,"offset":204},{"line":95,"column":213,"offset":214},{"type":26,"value":219,"position":220}," scaffolds it, and it compiles as written.",{"start":221,"end":222},{"line":95,"column":213,"offset":214},{"line":95,"column":223,"offset":224},700,1298,{"start":226,"end":227},{"line":95,"column":20,"offset":96},{"line":95,"column":223,"offset":224},{"type":26,"value":27},{"type":30,"tagName":230,"properties":231,"children":233,"position":244},"h2",{"id":232},"the-indicator",[234],{"type":26,"value":235,"position":236},"The Indicator",{"start":237,"end":241},{"line":238,"column":239,"offset":240},9,4,1303,{"line":238,"column":242,"offset":243},17,1316,{"start":245,"end":247},{"line":238,"column":20,"offset":246},1300,{"line":238,"column":242,"offset":243},{"type":26,"value":27},{"type":13,"children":250},[251],{"type":30,"tagName":252,"properties":253,"children":257,"data":-1},"pre",{"class":254,"style":255,"tabindex":256},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[258],{"type":30,"tagName":44,"properties":259,"children":260},{},[261,272,273,309,310,340,341,371,372,402,403,433,434,464,465,468,469,529,530,557,558,603,604,646,647,674,675,711,712,744,745,794,795,798,799,831,832,888,889,998,999,1111,1112,1277,1278,1281,1282,1347,1348,1386,1387,1456,1457,1541,1542,1550,1551,1559,1560,1568,1569,1577,1578,1611,1612,1625,1626,1654,1655,1770,1771,1850,1851,1859,1860,1887,1888,1978,1979,2142,2143,2288,2289,2408,2409,2416,2417,2429,2430,2437,2438,2446,2447],{"type":30,"tagName":262,"properties":263,"children":265},"span",{"class":264},"line",[266],{"type":30,"tagName":262,"properties":267,"children":269},{"style":268},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[270],{"type":26,"value":271},"// A terminal-style HUD the package draws itself: two anchored boxes and four left-aligned rows, refreshed on the live bar.",{"type":26,"value":27},{"type":30,"tagName":262,"properties":274,"children":275},{"class":264},[276,282,288,293,299,304],{"type":30,"tagName":262,"properties":277,"children":279},{"style":278},"--shiki-dark:#F97583;--shiki-light:#D73A49",[280],{"type":26,"value":281},"import",{"type":30,"tagName":262,"properties":283,"children":285},{"style":284},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[286],{"type":26,"value":287}," { handles, input, none, ohlcv, output, param, string, trades } ",{"type":30,"tagName":262,"properties":289,"children":290},{"style":278},[291],{"type":26,"value":292},"from",{"type":30,"tagName":262,"properties":294,"children":296},{"style":295},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[297],{"type":26,"value":298}," \"./sdk/declare\"",{"type":30,"tagName":262,"properties":300,"children":301},{"style":284},[302],{"type":26,"value":303},"; ",{"type":30,"tagName":262,"properties":305,"children":306},{"style":268},[307],{"type":26,"value":308},"// the declaring words",{"type":26,"value":27},{"type":30,"tagName":262,"properties":311,"children":312},{"class":264},[313,317,322,326,331,335],{"type":30,"tagName":262,"properties":314,"children":315},{"style":278},[316],{"type":26,"value":281},{"type":30,"tagName":262,"properties":318,"children":319},{"style":284},[320],{"type":26,"value":321}," { bar, draw, LabelHandle } ",{"type":30,"tagName":262,"properties":323,"children":324},{"style":278},[325],{"type":26,"value":292},{"type":30,"tagName":262,"properties":327,"children":328},{"style":295},[329],{"type":26,"value":330}," \"./gen/draw\"",{"type":30,"tagName":262,"properties":332,"children":333},{"style":284},[334],{"type":26,"value":303},{"type":30,"tagName":262,"properties":336,"children":337},{"style":268},[338],{"type":26,"value":339},"// handle constructors, the label class, and the last-bar signal",{"type":26,"value":27},{"type":30,"tagName":262,"properties":342,"children":343},{"class":264},[344,348,353,357,362,366],{"type":30,"tagName":262,"properties":345,"children":346},{"style":278},[347],{"type":26,"value":281},{"type":30,"tagName":262,"properties":349,"children":350},{"style":284},[351],{"type":26,"value":352}," { in_buy, in_close, in_sell } ",{"type":30,"tagName":262,"properties":354,"children":355},{"style":278},[356],{"type":26,"value":292},{"type":30,"tagName":262,"properties":358,"children":359},{"style":295},[360],{"type":26,"value":361}," \"./gen/inputs\"",{"type":30,"tagName":262,"properties":363,"children":364},{"style":284},[365],{"type":26,"value":303},{"type":30,"tagName":262,"properties":367,"children":368},{"style":268},[369],{"type":26,"value":370},"// generated: an in_ reader for each input declared below",{"type":26,"value":27},{"type":30,"tagName":262,"properties":373,"children":374},{"class":264},[375,379,384,388,393,397],{"type":30,"tagName":262,"properties":376,"children":377},{"style":278},[378],{"type":26,"value":281},{"type":30,"tagName":262,"properties":380,"children":381},{"style":284},[382],{"type":26,"value":383}," { emitRow, out_flow } ",{"type":30,"tagName":262,"properties":385,"children":386},{"style":278},[387],{"type":26,"value":292},{"type":30,"tagName":262,"properties":389,"children":390},{"style":295},[391],{"type":26,"value":392}," \"./gen/outputs\"",{"type":30,"tagName":262,"properties":394,"children":395},{"style":284},[396],{"type":26,"value":303},{"type":30,"tagName":262,"properties":398,"children":399},{"style":268},[400],{"type":26,"value":401},"// generated: an out_ writer per output, plus emitRow",{"type":26,"value":27},{"type":30,"tagName":262,"properties":404,"children":405},{"class":264},[406,410,415,419,424,428],{"type":30,"tagName":262,"properties":407,"children":408},{"style":278},[409],{"type":26,"value":281},{"type":30,"tagName":262,"properties":411,"children":412},{"style":284},[413],{"type":26,"value":414}," { p_bars } ",{"type":30,"tagName":262,"properties":416,"children":417},{"style":278},[418],{"type":26,"value":292},{"type":30,"tagName":262,"properties":420,"children":421},{"style":295},[422],{"type":26,"value":423}," \"./gen/params\"",{"type":30,"tagName":262,"properties":425,"children":426},{"style":284},[427],{"type":26,"value":303},{"type":30,"tagName":262,"properties":429,"children":430},{"style":268},[431],{"type":26,"value":432},"// generated: a p_ reader for the window param declared below",{"type":26,"value":27},{"type":30,"tagName":262,"properties":435,"children":436},{"class":264},[437,441,446,450,455,459],{"type":30,"tagName":262,"properties":438,"children":439},{"style":278},[440],{"type":26,"value":281},{"type":30,"tagName":262,"properties":442,"children":443},{"style":284},[444],{"type":26,"value":445}," { sb_clear, sb_f64, sb_text, str_text_sb } ",{"type":30,"tagName":262,"properties":447,"children":448},{"style":278},[449],{"type":26,"value":292},{"type":30,"tagName":262,"properties":451,"children":452},{"style":295},[453],{"type":26,"value":454}," \"./gen/strings\"",{"type":30,"tagName":262,"properties":456,"children":457},{"style":284},[458],{"type":26,"value":303},{"type":30,"tagName":262,"properties":460,"children":461},{"style":268},[462],{"type":26,"value":463},"// the allocation-free line builder and the slot's sender",{"type":26,"value":27},{"type":30,"tagName":262,"properties":466,"children":467},{"class":264},[],{"type":26,"value":27},{"type":30,"tagName":262,"properties":470,"children":471},{"class":264},[472,478,483,488,493,499,504,509,514,519,524],{"type":30,"tagName":262,"properties":473,"children":475},{"style":474},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[476],{"type":26,"value":477},"param",{"type":30,"tagName":262,"properties":479,"children":480},{"style":284},[481],{"type":26,"value":482},"(",{"type":30,"tagName":262,"properties":484,"children":485},{"style":295},[486],{"type":26,"value":487},"\"bars\"",{"type":30,"tagName":262,"properties":489,"children":490},{"style":284},[491],{"type":26,"value":492},", ",{"type":30,"tagName":262,"properties":494,"children":496},{"style":495},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[497],{"type":26,"value":498},"20",{"type":30,"tagName":262,"properties":500,"children":501},{"style":284},[502],{"type":26,"value":503},", { min: ",{"type":30,"tagName":262,"properties":505,"children":506},{"style":495},[507],{"type":26,"value":508},"2",{"type":30,"tagName":262,"properties":510,"children":511},{"style":284},[512],{"type":26,"value":513},", max: ",{"type":30,"tagName":262,"properties":515,"children":516},{"style":495},[517],{"type":26,"value":518},"200",{"type":30,"tagName":262,"properties":520,"children":521},{"style":284},[522],{"type":26,"value":523}," }); ",{"type":30,"tagName":262,"properties":525,"children":526},{"style":268},[527],{"type":26,"value":528},"// the flow window in bars; a window param also sizes the daemon's fetch for reads",{"type":26,"value":27},{"type":30,"tagName":262,"properties":531,"children":532},{"class":264},[533,538,542,547,552],{"type":30,"tagName":262,"properties":534,"children":535},{"style":474},[536],{"type":26,"value":537},"input",{"type":30,"tagName":262,"properties":539,"children":540},{"style":284},[541],{"type":26,"value":482},{"type":30,"tagName":262,"properties":543,"children":544},{"style":295},[545],{"type":26,"value":546},"\"close\"",{"type":30,"tagName":262,"properties":548,"children":549},{"style":284},[550],{"type":26,"value":551},", ohlcv.close); ",{"type":30,"tagName":262,"properties":553,"children":554},{"style":268},[555],{"type":26,"value":556},"// the primary input: the chart's own candles define the grid every other input lines up on",{"type":26,"value":27},{"type":30,"tagName":262,"properties":559,"children":560},{"class":264},[561,565,569,574,579,584,589,594,598],{"type":30,"tagName":262,"properties":562,"children":563},{"style":474},[564],{"type":26,"value":537},{"type":30,"tagName":262,"properties":566,"children":567},{"style":284},[568],{"type":26,"value":482},{"type":30,"tagName":262,"properties":570,"children":571},{"style":295},[572],{"type":26,"value":573},"\"buy\"",{"type":30,"tagName":262,"properties":575,"children":576},{"style":284},[577],{"type":26,"value":578},", trades.volume, { side: ",{"type":30,"tagName":262,"properties":580,"children":581},{"style":295},[582],{"type":26,"value":583},"\"BUY\"",{"type":30,"tagName":262,"properties":585,"children":586},{"style":284},[587],{"type":26,"value":588},", missing: ",{"type":30,"tagName":262,"properties":590,"children":591},{"style":295},[592],{"type":26,"value":593},"\"zero\"",{"type":30,"tagName":262,"properties":595,"children":596},{"style":284},[597],{"type":26,"value":523},{"type":30,"tagName":262,"properties":599,"children":600},{"style":268},[601],{"type":26,"value":602},"// aggressive buy volume; a bar with no prints reads 0",{"type":26,"value":27},{"type":30,"tagName":262,"properties":605,"children":606},{"class":264},[607,611,615,620,624,629,633,637,641],{"type":30,"tagName":262,"properties":608,"children":609},{"style":474},[610],{"type":26,"value":537},{"type":30,"tagName":262,"properties":612,"children":613},{"style":284},[614],{"type":26,"value":482},{"type":30,"tagName":262,"properties":616,"children":617},{"style":295},[618],{"type":26,"value":619},"\"sell\"",{"type":30,"tagName":262,"properties":621,"children":622},{"style":284},[623],{"type":26,"value":578},{"type":30,"tagName":262,"properties":625,"children":626},{"style":295},[627],{"type":26,"value":628},"\"SELL\"",{"type":30,"tagName":262,"properties":630,"children":631},{"style":284},[632],{"type":26,"value":588},{"type":30,"tagName":262,"properties":634,"children":635},{"style":295},[636],{"type":26,"value":593},{"type":30,"tagName":262,"properties":638,"children":639},{"style":284},[640],{"type":26,"value":523},{"type":30,"tagName":262,"properties":642,"children":643},{"style":268},[644],{"type":26,"value":645},"// aggressive sell volume, the other half of the tape",{"type":26,"value":27},{"type":30,"tagName":262,"properties":648,"children":649},{"class":264},[650,655,659,664,669],{"type":30,"tagName":262,"properties":651,"children":652},{"style":474},[653],{"type":26,"value":654},"output",{"type":30,"tagName":262,"properties":656,"children":657},{"style":284},[658],{"type":26,"value":482},{"type":30,"tagName":262,"properties":660,"children":661},{"style":295},[662],{"type":26,"value":663},"\"flow\"",{"type":30,"tagName":262,"properties":665,"children":666},{"style":284},[667],{"type":26,"value":668},", none); ",{"type":30,"tagName":262,"properties":670,"children":671},{"style":268},[672],{"type":26,"value":673},"// data-only: the rolling signed flow is a metric on your machine; the HUD is the chart look",{"type":26,"value":27},{"type":30,"tagName":262,"properties":676,"children":677},{"class":264},[678,683,687,692,697,702,706],{"type":30,"tagName":262,"properties":679,"children":680},{"style":474},[681],{"type":26,"value":682},"string",{"type":30,"tagName":262,"properties":684,"children":685},{"style":284},[686],{"type":26,"value":482},{"type":30,"tagName":262,"properties":688,"children":689},{"style":295},[690],{"type":26,"value":691},"\"text\"",{"type":30,"tagName":262,"properties":693,"children":694},{"style":284},[695],{"type":26,"value":696},", { max_bytes: ",{"type":30,"tagName":262,"properties":698,"children":699},{"style":495},[700],{"type":26,"value":701},"40",{"type":30,"tagName":262,"properties":703,"children":704},{"style":284},[705],{"type":26,"value":523},{"type":30,"tagName":262,"properties":707,"children":708},{"style":268},[709],{"type":26,"value":710},"// one bounded slot every label is written through, one row at a time",{"type":26,"value":27},{"type":30,"tagName":262,"properties":713,"children":714},{"class":264},[715,720,725,730,735,739],{"type":30,"tagName":262,"properties":716,"children":717},{"style":284},[718],{"type":26,"value":719},"handles.",{"type":30,"tagName":262,"properties":721,"children":722},{"style":474},[723],{"type":26,"value":724},"box",{"type":30,"tagName":262,"properties":726,"children":727},{"style":284},[728],{"type":26,"value":729},"({ anchor: ",{"type":30,"tagName":262,"properties":731,"children":732},{"style":295},[733],{"type":26,"value":734},"\"top_left\"",{"type":30,"tagName":262,"properties":736,"children":737},{"style":284},[738],{"type":26,"value":523},{"type":30,"tagName":262,"properties":740,"children":741},{"style":268},[742],{"type":26,"value":743},"// enable box handles, placed in pane pixels from the top-left corner",{"type":26,"value":27},{"type":30,"tagName":262,"properties":746,"children":747},{"class":264},[748,752,757,761,765,770,775,780,785,789],{"type":30,"tagName":262,"properties":749,"children":750},{"style":284},[751],{"type":26,"value":719},{"type":30,"tagName":262,"properties":753,"children":754},{"style":474},[755],{"type":26,"value":756},"label",{"type":30,"tagName":262,"properties":758,"children":759},{"style":284},[760],{"type":26,"value":729},{"type":30,"tagName":262,"properties":762,"children":763},{"style":295},[764],{"type":26,"value":734},{"type":30,"tagName":262,"properties":766,"children":767},{"style":284},[768],{"type":26,"value":769},", align: ",{"type":30,"tagName":262,"properties":771,"children":772},{"style":295},[773],{"type":26,"value":774},"\"left\"",{"type":30,"tagName":262,"properties":776,"children":777},{"style":284},[778],{"type":26,"value":779},", size: ",{"type":30,"tagName":262,"properties":781,"children":782},{"style":495},[783],{"type":26,"value":784},"11",{"type":30,"tagName":262,"properties":786,"children":787},{"style":284},[788],{"type":26,"value":523},{"type":30,"tagName":262,"properties":790,"children":791},{"style":268},[792],{"type":26,"value":793},"// enable label handles whose text starts at x",{"type":26,"value":27},{"type":30,"tagName":262,"properties":796,"children":797},{"class":264},[],{"type":26,"value":27},{"type":30,"tagName":262,"properties":800,"children":801},{"class":264},[802,807,812,817,822,826],{"type":30,"tagName":262,"properties":803,"children":804},{"style":278},[805],{"type":26,"value":806},"const",{"type":30,"tagName":262,"properties":808,"children":809},{"style":495},[810],{"type":26,"value":811}," MAX_BARS",{"type":30,"tagName":262,"properties":813,"children":814},{"style":278},[815],{"type":26,"value":816}," =",{"type":30,"tagName":262,"properties":818,"children":819},{"style":495},[820],{"type":26,"value":821}," 200",{"type":30,"tagName":262,"properties":823,"children":824},{"style":284},[825],{"type":26,"value":303},{"type":30,"tagName":262,"properties":827,"children":828},{"style":268},[829],{"type":26,"value":830},"// the ring is sized for the largest window; init() reads the one in use",{"type":26,"value":27},{"type":30,"tagName":262,"properties":833,"children":834},{"class":264},[835,839,844,848,853,858,863,868,873,878,883],{"type":30,"tagName":262,"properties":836,"children":837},{"style":278},[838],{"type":26,"value":806},{"type":30,"tagName":262,"properties":840,"children":841},{"style":495},[842],{"type":26,"value":843}," deltas",{"type":30,"tagName":262,"properties":845,"children":846},{"style":278},[847],{"type":26,"value":816},{"type":30,"tagName":262,"properties":849,"children":850},{"style":278},[851],{"type":26,"value":852}," new",{"type":30,"tagName":262,"properties":854,"children":855},{"style":474},[856],{"type":26,"value":857}," StaticArray",{"type":30,"tagName":262,"properties":859,"children":860},{"style":284},[861],{"type":26,"value":862},"\u003C",{"type":30,"tagName":262,"properties":864,"children":865},{"style":474},[866],{"type":26,"value":867},"f64",{"type":30,"tagName":262,"properties":869,"children":870},{"style":284},[871],{"type":26,"value":872},">(",{"type":30,"tagName":262,"properties":874,"children":875},{"style":495},[876],{"type":26,"value":877},"MAX_BARS",{"type":30,"tagName":262,"properties":879,"children":880},{"style":284},[881],{"type":26,"value":882},"); ",{"type":30,"tagName":262,"properties":884,"children":885},{"style":268},[886],{"type":26,"value":887},"// the last bars per-bar deltas, a ring the rolling sum reads",{"type":26,"value":27},{"type":30,"tagName":262,"properties":890,"children":891},{"class":264},[892,896,901,905,910,914,918,922,926,930,935,939,943,947,951,956,960,964,969,973,977,981,985,989,993],{"type":30,"tagName":262,"properties":893,"children":894},{"style":278},[895],{"type":26,"value":806},{"type":30,"tagName":262,"properties":897,"children":898},{"style":495},[899],{"type":26,"value":900}," titleBar",{"type":30,"tagName":262,"properties":902,"children":903},{"style":278},[904],{"type":26,"value":816},{"type":30,"tagName":262,"properties":906,"children":907},{"style":284},[908],{"type":26,"value":909}," draw.",{"type":30,"tagName":262,"properties":911,"children":912},{"style":474},[913],{"type":26,"value":724},{"type":30,"tagName":262,"properties":915,"children":916},{"style":284},[917],{"type":26,"value":482},{"type":30,"tagName":262,"properties":919,"children":920},{"style":495},[921],{"type":26,"value":256},{"type":30,"tagName":262,"properties":923,"children":924},{"style":284},[925],{"type":26,"value":882},{"type":30,"tagName":262,"properties":927,"children":928},{"style":278},[929],{"type":26,"value":806},{"type":30,"tagName":262,"properties":931,"children":932},{"style":495},[933],{"type":26,"value":934}," body",{"type":30,"tagName":262,"properties":936,"children":937},{"style":278},[938],{"type":26,"value":816},{"type":30,"tagName":262,"properties":940,"children":941},{"style":284},[942],{"type":26,"value":909},{"type":30,"tagName":262,"properties":944,"children":945},{"style":474},[946],{"type":26,"value":724},{"type":30,"tagName":262,"properties":948,"children":949},{"style":284},[950],{"type":26,"value":482},{"type":30,"tagName":262,"properties":952,"children":953},{"style":495},[954],{"type":26,"value":955},"1",{"type":30,"tagName":262,"properties":957,"children":958},{"style":284},[959],{"type":26,"value":882},{"type":30,"tagName":262,"properties":961,"children":962},{"style":278},[963],{"type":26,"value":806},{"type":30,"tagName":262,"properties":965,"children":966},{"style":495},[967],{"type":26,"value":968}," title",{"type":30,"tagName":262,"properties":970,"children":971},{"style":278},[972],{"type":26,"value":816},{"type":30,"tagName":262,"properties":974,"children":975},{"style":284},[976],{"type":26,"value":909},{"type":30,"tagName":262,"properties":978,"children":979},{"style":474},[980],{"type":26,"value":756},{"type":30,"tagName":262,"properties":982,"children":983},{"style":284},[984],{"type":26,"value":482},{"type":30,"tagName":262,"properties":986,"children":987},{"style":495},[988],{"type":26,"value":508},{"type":30,"tagName":262,"properties":990,"children":991},{"style":284},[992],{"type":26,"value":882},{"type":30,"tagName":262,"properties":994,"children":995},{"style":268},[996],{"type":26,"value":997},"// handle objects allocate once",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1000,"children":1001},{"class":264},[1002,1006,1011,1016,1021,1026,1031,1036,1040,1044,1049,1054,1058,1062,1067,1071,1075,1079,1084,1088,1092,1096,1101,1106],{"type":30,"tagName":262,"properties":1003,"children":1004},{"style":278},[1005],{"type":26,"value":806},{"type":30,"tagName":262,"properties":1007,"children":1008},{"style":495},[1009],{"type":26,"value":1010}," rows",{"type":30,"tagName":262,"properties":1012,"children":1013},{"style":278},[1014],{"type":26,"value":1015},":",{"type":30,"tagName":262,"properties":1017,"children":1018},{"style":474},[1019],{"type":26,"value":1020}," LabelHandle",{"type":30,"tagName":262,"properties":1022,"children":1023},{"style":284},[1024],{"type":26,"value":1025},"[] ",{"type":30,"tagName":262,"properties":1027,"children":1028},{"style":278},[1029],{"type":26,"value":1030},"=",{"type":30,"tagName":262,"properties":1032,"children":1033},{"style":284},[1034],{"type":26,"value":1035}," [draw.",{"type":30,"tagName":262,"properties":1037,"children":1038},{"style":474},[1039],{"type":26,"value":756},{"type":30,"tagName":262,"properties":1041,"children":1042},{"style":284},[1043],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1045,"children":1046},{"style":495},[1047],{"type":26,"value":1048},"3",{"type":30,"tagName":262,"properties":1050,"children":1051},{"style":284},[1052],{"type":26,"value":1053},"), draw.",{"type":30,"tagName":262,"properties":1055,"children":1056},{"style":474},[1057],{"type":26,"value":756},{"type":30,"tagName":262,"properties":1059,"children":1060},{"style":284},[1061],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1063,"children":1064},{"style":495},[1065],{"type":26,"value":1066},"4",{"type":30,"tagName":262,"properties":1068,"children":1069},{"style":284},[1070],{"type":26,"value":1053},{"type":30,"tagName":262,"properties":1072,"children":1073},{"style":474},[1074],{"type":26,"value":756},{"type":30,"tagName":262,"properties":1076,"children":1077},{"style":284},[1078],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1080,"children":1081},{"style":495},[1082],{"type":26,"value":1083},"5",{"type":30,"tagName":262,"properties":1085,"children":1086},{"style":284},[1087],{"type":26,"value":1053},{"type":30,"tagName":262,"properties":1089,"children":1090},{"style":474},[1091],{"type":26,"value":756},{"type":30,"tagName":262,"properties":1093,"children":1094},{"style":284},[1095],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1097,"children":1098},{"style":495},[1099],{"type":26,"value":1100},"6",{"type":30,"tagName":262,"properties":1102,"children":1103},{"style":284},[1104],{"type":26,"value":1105},")]; ",{"type":30,"tagName":262,"properties":1107,"children":1108},{"style":268},[1109],{"type":26,"value":1110},"// ids are one space across kinds",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1113,"children":1114},{"class":264},[1115,1120,1125,1129,1134,1138,1142,1147,1151,1156,1160,1165,1169,1173,1178,1182,1186,1190,1194,1198,1202,1207,1211,1215,1219,1224,1228,1232,1237,1241,1246,1250,1254,1259,1263,1268,1272],{"type":30,"tagName":262,"properties":1116,"children":1117},{"style":278},[1118],{"type":26,"value":1119},"let",{"type":30,"tagName":262,"properties":1121,"children":1122},{"style":284},[1123],{"type":26,"value":1124}," bars ",{"type":30,"tagName":262,"properties":1126,"children":1127},{"style":278},[1128],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1130,"children":1131},{"style":495},[1132],{"type":26,"value":1133}," 20",{"type":30,"tagName":262,"properties":1135,"children":1136},{"style":284},[1137],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1139,"children":1140},{"style":278},[1141],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":1143,"children":1144},{"style":284},[1145],{"type":26,"value":1146}," close",{"type":30,"tagName":262,"properties":1148,"children":1149},{"style":278},[1150],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1152,"children":1153},{"style":474},[1154],{"type":26,"value":1155}," f64",{"type":30,"tagName":262,"properties":1157,"children":1158},{"style":278},[1159],{"type":26,"value":816},{"type":30,"tagName":262,"properties":1161,"children":1162},{"style":495},[1163],{"type":26,"value":1164}," NaN",{"type":30,"tagName":262,"properties":1166,"children":1167},{"style":284},[1168],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1170,"children":1171},{"style":278},[1172],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":1174,"children":1175},{"style":284},[1176],{"type":26,"value":1177}," prev",{"type":30,"tagName":262,"properties":1179,"children":1180},{"style":278},[1181],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1183,"children":1184},{"style":474},[1185],{"type":26,"value":1155},{"type":30,"tagName":262,"properties":1187,"children":1188},{"style":278},[1189],{"type":26,"value":816},{"type":30,"tagName":262,"properties":1191,"children":1192},{"style":495},[1193],{"type":26,"value":1164},{"type":30,"tagName":262,"properties":1195,"children":1196},{"style":284},[1197],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1199,"children":1200},{"style":278},[1201],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":1203,"children":1204},{"style":284},[1205],{"type":26,"value":1206}," flow",{"type":30,"tagName":262,"properties":1208,"children":1209},{"style":278},[1210],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1212,"children":1213},{"style":474},[1214],{"type":26,"value":1155},{"type":30,"tagName":262,"properties":1216,"children":1217},{"style":278},[1218],{"type":26,"value":816},{"type":30,"tagName":262,"properties":1220,"children":1221},{"style":495},[1222],{"type":26,"value":1223}," 0.0",{"type":30,"tagName":262,"properties":1225,"children":1226},{"style":284},[1227],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1229,"children":1230},{"style":278},[1231],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":1233,"children":1234},{"style":284},[1235],{"type":26,"value":1236}," head ",{"type":30,"tagName":262,"properties":1238,"children":1239},{"style":278},[1240],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1242,"children":1243},{"style":495},[1244],{"type":26,"value":1245}," 0",{"type":30,"tagName":262,"properties":1247,"children":1248},{"style":284},[1249],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1251,"children":1252},{"style":278},[1253],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":1255,"children":1256},{"style":284},[1257],{"type":26,"value":1258}," framed ",{"type":30,"tagName":262,"properties":1260,"children":1261},{"style":278},[1262],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1264,"children":1265},{"style":495},[1266],{"type":26,"value":1267}," false",{"type":30,"tagName":262,"properties":1269,"children":1270},{"style":284},[1271],{"type":26,"value":303},{"type":30,"tagName":262,"properties":1273,"children":1274},{"style":268},[1275],{"type":26,"value":1276},"// module state",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1279,"children":1280},{"class":264},[],{"type":26,"value":27},{"type":30,"tagName":262,"properties":1283,"children":1284},{"class":264},[1285,1290,1295,1300,1305,1309,1314,1319,1323,1328,1332,1337,1342],{"type":30,"tagName":262,"properties":1286,"children":1287},{"style":278},[1288],{"type":26,"value":1289},"export",{"type":30,"tagName":262,"properties":1291,"children":1292},{"style":278},[1293],{"type":26,"value":1294}," function",{"type":30,"tagName":262,"properties":1296,"children":1297},{"style":474},[1298],{"type":26,"value":1299}," init",{"type":30,"tagName":262,"properties":1301,"children":1302},{"style":284},[1303],{"type":26,"value":1304},"()",{"type":30,"tagName":262,"properties":1306,"children":1307},{"style":278},[1308],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1310,"children":1311},{"style":495},[1312],{"type":26,"value":1313}," void",{"type":30,"tagName":262,"properties":1315,"children":1316},{"style":284},[1317],{"type":26,"value":1318}," { bars ",{"type":30,"tagName":262,"properties":1320,"children":1321},{"style":278},[1322],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1324,"children":1325},{"style":474},[1326],{"type":26,"value":1327}," i32",{"type":30,"tagName":262,"properties":1329,"children":1330},{"style":284},[1331],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1333,"children":1334},{"style":474},[1335],{"type":26,"value":1336},"p_bars",{"type":30,"tagName":262,"properties":1338,"children":1339},{"style":284},[1340],{"type":26,"value":1341},"()); } ",{"type":30,"tagName":262,"properties":1343,"children":1344},{"style":268},[1345],{"type":26,"value":1346},"// the window param sizes the ring (the ring itself never reallocates)",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1349,"children":1350},{"class":264},[1351,1355,1359,1364,1368,1372,1376,1381],{"type":30,"tagName":262,"properties":1352,"children":1353},{"style":278},[1354],{"type":26,"value":1289},{"type":30,"tagName":262,"properties":1356,"children":1357},{"style":278},[1358],{"type":26,"value":1294},{"type":30,"tagName":262,"properties":1360,"children":1361},{"style":474},[1362],{"type":26,"value":1363}," state",{"type":30,"tagName":262,"properties":1365,"children":1366},{"style":284},[1367],{"type":26,"value":1304},{"type":30,"tagName":262,"properties":1369,"children":1370},{"style":278},[1371],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1373,"children":1374},{"style":474},[1375],{"type":26,"value":1327},{"type":30,"tagName":262,"properties":1377,"children":1378},{"style":284},[1379],{"type":26,"value":1380}," { ",{"type":30,"tagName":262,"properties":1382,"children":1383},{"style":268},[1384],{"type":26,"value":1385},"// once per bar: read the bar, fold its delta into the rolling sum (the ring drops the oldest)",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1388,"children":1389},{"class":264},[1390,1395,1399,1404,1408,1413,1418,1422,1427,1431,1436,1441,1446,1451],{"type":30,"tagName":262,"properties":1391,"children":1392},{"style":284},[1393],{"type":26,"value":1394},"  prev ",{"type":30,"tagName":262,"properties":1396,"children":1397},{"style":278},[1398],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1400,"children":1401},{"style":284},[1402],{"type":26,"value":1403}," close; close ",{"type":30,"tagName":262,"properties":1405,"children":1406},{"style":278},[1407],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1409,"children":1410},{"style":474},[1411],{"type":26,"value":1412}," in_close",{"type":30,"tagName":262,"properties":1414,"children":1415},{"style":284},[1416],{"type":26,"value":1417},"(); ",{"type":30,"tagName":262,"properties":1419,"children":1420},{"style":278},[1421],{"type":26,"value":806},{"type":30,"tagName":262,"properties":1423,"children":1424},{"style":495},[1425],{"type":26,"value":1426}," delta",{"type":30,"tagName":262,"properties":1428,"children":1429},{"style":278},[1430],{"type":26,"value":816},{"type":30,"tagName":262,"properties":1432,"children":1433},{"style":474},[1434],{"type":26,"value":1435}," in_buy",{"type":30,"tagName":262,"properties":1437,"children":1438},{"style":284},[1439],{"type":26,"value":1440},"() ",{"type":30,"tagName":262,"properties":1442,"children":1443},{"style":278},[1444],{"type":26,"value":1445},"-",{"type":30,"tagName":262,"properties":1447,"children":1448},{"style":474},[1449],{"type":26,"value":1450}," in_sell",{"type":30,"tagName":262,"properties":1452,"children":1453},{"style":284},[1454],{"type":26,"value":1455},"();",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1458,"children":1459},{"class":264},[1460,1465,1470,1475,1479,1484,1488,1493,1497,1502,1507,1512,1517,1522,1527,1532,1536],{"type":30,"tagName":262,"properties":1461,"children":1462},{"style":284},[1463],{"type":26,"value":1464},"  flow ",{"type":30,"tagName":262,"properties":1466,"children":1467},{"style":278},[1468],{"type":26,"value":1469},"+=",{"type":30,"tagName":262,"properties":1471,"children":1472},{"style":284},[1473],{"type":26,"value":1474}," delta ",{"type":30,"tagName":262,"properties":1476,"children":1477},{"style":278},[1478],{"type":26,"value":1445},{"type":30,"tagName":262,"properties":1480,"children":1481},{"style":284},[1482],{"type":26,"value":1483}," deltas[head]; deltas[head] ",{"type":30,"tagName":262,"properties":1485,"children":1486},{"style":278},[1487],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1489,"children":1490},{"style":284},[1491],{"type":26,"value":1492}," delta; head ",{"type":30,"tagName":262,"properties":1494,"children":1495},{"style":278},[1496],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1498,"children":1499},{"style":284},[1500],{"type":26,"value":1501}," (head ",{"type":30,"tagName":262,"properties":1503,"children":1504},{"style":278},[1505],{"type":26,"value":1506},"+",{"type":30,"tagName":262,"properties":1508,"children":1509},{"style":495},[1510],{"type":26,"value":1511}," 1",{"type":30,"tagName":262,"properties":1513,"children":1514},{"style":284},[1515],{"type":26,"value":1516},") ",{"type":30,"tagName":262,"properties":1518,"children":1519},{"style":278},[1520],{"type":26,"value":1521},"%",{"type":30,"tagName":262,"properties":1523,"children":1524},{"style":284},[1525],{"type":26,"value":1526}," bars; ",{"type":30,"tagName":262,"properties":1528,"children":1529},{"style":278},[1530],{"type":26,"value":1531},"return",{"type":30,"tagName":262,"properties":1533,"children":1534},{"style":495},[1535],{"type":26,"value":1511},{"type":30,"tagName":262,"properties":1537,"children":1538},{"style":284},[1539],{"type":26,"value":1540},";",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1543,"children":1544},{"class":264},[1545],{"type":30,"tagName":262,"properties":1546,"children":1547},{"style":284},[1548],{"type":26,"value":1549},"}",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1552,"children":1553},{"class":264},[1554],{"type":30,"tagName":262,"properties":1555,"children":1556},{"style":268},[1557],{"type":26,"value":1558},"// finalize() runs after state(): write the output, frame the HUD once, refresh the rows on the live bar only.",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1561,"children":1562},{"class":264},[1563],{"type":30,"tagName":262,"properties":1564,"children":1565},{"style":268},[1566],{"type":26,"value":1567},"// A row is one line: build its text with sb_* (numbers through sb_f64, never a locale), then text(...) sends",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1570,"children":1571},{"class":264},[1572],{"type":30,"tagName":262,"properties":1573,"children":1574},{"style":268},[1575],{"type":26,"value":1576},"// the slot and draws the label at the last set(x, y); the slot is reused row by row, the host copies each draw.",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1579,"children":1580},{"class":264},[1581,1585,1589,1594,1598,1602,1606],{"type":30,"tagName":262,"properties":1582,"children":1583},{"style":278},[1584],{"type":26,"value":1289},{"type":30,"tagName":262,"properties":1586,"children":1587},{"style":278},[1588],{"type":26,"value":1294},{"type":30,"tagName":262,"properties":1590,"children":1591},{"style":474},[1592],{"type":26,"value":1593}," finalize",{"type":30,"tagName":262,"properties":1595,"children":1596},{"style":284},[1597],{"type":26,"value":1304},{"type":30,"tagName":262,"properties":1599,"children":1600},{"style":278},[1601],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":1603,"children":1604},{"style":495},[1605],{"type":26,"value":1313},{"type":30,"tagName":262,"properties":1607,"children":1608},{"style":284},[1609],{"type":26,"value":1610}," {",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1613,"children":1614},{"class":264},[1615,1620],{"type":30,"tagName":262,"properties":1616,"children":1617},{"style":474},[1618],{"type":26,"value":1619},"  out_flow",{"type":30,"tagName":262,"properties":1621,"children":1622},{"style":284},[1623],{"type":26,"value":1624},"(flow);",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1627,"children":1628},{"class":264},[1629,1634,1639,1644,1649],{"type":30,"tagName":262,"properties":1630,"children":1631},{"style":278},[1632],{"type":26,"value":1633},"  if",{"type":30,"tagName":262,"properties":1635,"children":1636},{"style":284},[1637],{"type":26,"value":1638}," (",{"type":30,"tagName":262,"properties":1640,"children":1641},{"style":278},[1642],{"type":26,"value":1643},"!",{"type":30,"tagName":262,"properties":1645,"children":1646},{"style":284},[1647],{"type":26,"value":1648},"framed) { ",{"type":30,"tagName":262,"properties":1650,"children":1651},{"style":268},[1652],{"type":26,"value":1653},"// a handle set on one bar stays until delete(), so the frame and its title are drawn once",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1656,"children":1657},{"class":264},[1658,1663,1668,1672,1677,1681,1686,1690,1695,1699,1704,1709,1714,1718,1723,1728,1732,1736,1740,1744,1748,1752,1756,1760,1765],{"type":30,"tagName":262,"properties":1659,"children":1660},{"style":284},[1661],{"type":26,"value":1662},"    titleBar.",{"type":30,"tagName":262,"properties":1664,"children":1665},{"style":474},[1666],{"type":26,"value":1667},"set",{"type":30,"tagName":262,"properties":1669,"children":1670},{"style":284},[1671],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1673,"children":1674},{"style":495},[1675],{"type":26,"value":1676},"14",{"type":30,"tagName":262,"properties":1678,"children":1679},{"style":284},[1680],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1682,"children":1683},{"style":495},[1684],{"type":26,"value":1685},"12",{"type":30,"tagName":262,"properties":1687,"children":1688},{"style":284},[1689],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1691,"children":1692},{"style":495},[1693],{"type":26,"value":1694},"394",{"type":30,"tagName":262,"properties":1696,"children":1697},{"style":284},[1698],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1700,"children":1701},{"style":495},[1702],{"type":26,"value":1703},"34",{"type":30,"tagName":262,"properties":1705,"children":1706},{"style":284},[1707],{"type":26,"value":1708},").",{"type":30,"tagName":262,"properties":1710,"children":1711},{"style":474},[1712],{"type":26,"value":1713},"opacity",{"type":30,"tagName":262,"properties":1715,"children":1716},{"style":284},[1717],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1719,"children":1720},{"style":495},[1721],{"type":26,"value":1722},"0.6",{"type":30,"tagName":262,"properties":1724,"children":1725},{"style":284},[1726],{"type":26,"value":1727},"); body.",{"type":30,"tagName":262,"properties":1729,"children":1730},{"style":474},[1731],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":1733,"children":1734},{"style":284},[1735],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1737,"children":1738},{"style":495},[1739],{"type":26,"value":1676},{"type":30,"tagName":262,"properties":1741,"children":1742},{"style":284},[1743],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1745,"children":1746},{"style":495},[1747],{"type":26,"value":1703},{"type":30,"tagName":262,"properties":1749,"children":1750},{"style":284},[1751],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1753,"children":1754},{"style":495},[1755],{"type":26,"value":1694},{"type":30,"tagName":262,"properties":1757,"children":1758},{"style":284},[1759],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1761,"children":1762},{"style":495},[1763],{"type":26,"value":1764},"132",{"type":30,"tagName":262,"properties":1766,"children":1767},{"style":284},[1768],{"type":26,"value":1769},");",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1772,"children":1773},{"class":264},[1774,1779,1783,1788,1792,1797,1802,1806,1810,1815,1819,1824,1828,1832,1837,1841,1846],{"type":30,"tagName":262,"properties":1775,"children":1776},{"style":474},[1777],{"type":26,"value":1778},"    sb_clear",{"type":30,"tagName":262,"properties":1780,"children":1781},{"style":284},[1782],{"type":26,"value":1417},{"type":30,"tagName":262,"properties":1784,"children":1785},{"style":474},[1786],{"type":26,"value":1787},"sb_text",{"type":30,"tagName":262,"properties":1789,"children":1790},{"style":284},[1791],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1793,"children":1794},{"style":295},[1795],{"type":26,"value":1796},"\"HUD terminal\"",{"type":30,"tagName":262,"properties":1798,"children":1799},{"style":284},[1800],{"type":26,"value":1801},"); title.",{"type":30,"tagName":262,"properties":1803,"children":1804},{"style":474},[1805],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":1807,"children":1808},{"style":284},[1809],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1811,"children":1812},{"style":495},[1813],{"type":26,"value":1814},"24",{"type":30,"tagName":262,"properties":1816,"children":1817},{"style":284},[1818],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1820,"children":1821},{"style":495},[1822],{"type":26,"value":1823},"23",{"type":30,"tagName":262,"properties":1825,"children":1826},{"style":284},[1827],{"type":26,"value":1708},{"type":30,"tagName":262,"properties":1829,"children":1830},{"style":474},[1831],{"type":26,"value":26},{"type":30,"tagName":262,"properties":1833,"children":1834},{"style":284},[1835],{"type":26,"value":1836},"(str_text_sb); framed ",{"type":30,"tagName":262,"properties":1838,"children":1839},{"style":278},[1840],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":1842,"children":1843},{"style":495},[1844],{"type":26,"value":1845}," true",{"type":30,"tagName":262,"properties":1847,"children":1848},{"style":284},[1849],{"type":26,"value":1540},{"type":26,"value":27},{"type":30,"tagName":262,"properties":1852,"children":1853},{"class":264},[1854],{"type":30,"tagName":262,"properties":1855,"children":1856},{"style":284},[1857],{"type":26,"value":1858},"  }",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1861,"children":1862},{"class":264},[1863,1867,1872,1877,1882],{"type":30,"tagName":262,"properties":1864,"children":1865},{"style":278},[1866],{"type":26,"value":1633},{"type":30,"tagName":262,"properties":1868,"children":1869},{"style":284},[1870],{"type":26,"value":1871}," (bar.",{"type":30,"tagName":262,"properties":1873,"children":1874},{"style":474},[1875],{"type":26,"value":1876},"isLast",{"type":30,"tagName":262,"properties":1878,"children":1879},{"style":284},[1880],{"type":26,"value":1881},"()) { ",{"type":30,"tagName":262,"properties":1883,"children":1884},{"style":268},[1885],{"type":26,"value":1886},"// the live rows: refreshed on the newest bar only, so closed bars draw nothing",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1889,"children":1890},{"class":264},[1891,1895,1899,1903,1907,1912,1916,1921,1926,1930,1935,1939,1944,1948,1952,1956,1960,1965,1969,1973],{"type":30,"tagName":262,"properties":1892,"children":1893},{"style":474},[1894],{"type":26,"value":1778},{"type":30,"tagName":262,"properties":1896,"children":1897},{"style":284},[1898],{"type":26,"value":1417},{"type":30,"tagName":262,"properties":1900,"children":1901},{"style":474},[1902],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":1904,"children":1905},{"style":284},[1906],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1908,"children":1909},{"style":295},[1910],{"type":26,"value":1911},"\"close   \"",{"type":30,"tagName":262,"properties":1913,"children":1914},{"style":284},[1915],{"type":26,"value":882},{"type":30,"tagName":262,"properties":1917,"children":1918},{"style":474},[1919],{"type":26,"value":1920},"sb_f64",{"type":30,"tagName":262,"properties":1922,"children":1923},{"style":284},[1924],{"type":26,"value":1925},"(close, ",{"type":30,"tagName":262,"properties":1927,"children":1928},{"style":495},[1929],{"type":26,"value":508},{"type":30,"tagName":262,"properties":1931,"children":1932},{"style":284},[1933],{"type":26,"value":1934},"); rows[",{"type":30,"tagName":262,"properties":1936,"children":1937},{"style":495},[1938],{"type":26,"value":256},{"type":30,"tagName":262,"properties":1940,"children":1941},{"style":284},[1942],{"type":26,"value":1943},"].",{"type":30,"tagName":262,"properties":1945,"children":1946},{"style":474},[1947],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":1949,"children":1950},{"style":284},[1951],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1953,"children":1954},{"style":495},[1955],{"type":26,"value":1814},{"type":30,"tagName":262,"properties":1957,"children":1958},{"style":284},[1959],{"type":26,"value":492},{"type":30,"tagName":262,"properties":1961,"children":1962},{"style":495},[1963],{"type":26,"value":1964},"52",{"type":30,"tagName":262,"properties":1966,"children":1967},{"style":284},[1968],{"type":26,"value":1708},{"type":30,"tagName":262,"properties":1970,"children":1971},{"style":474},[1972],{"type":26,"value":26},{"type":30,"tagName":262,"properties":1974,"children":1975},{"style":284},[1976],{"type":26,"value":1977},"(str_text_sb);",{"type":26,"value":27},{"type":30,"tagName":262,"properties":1980,"children":1981},{"class":264},[1982,1986,1990,1994,1998,2003,2007,2011,2015,2020,2025,2030,2034,2039,2044,2048,2053,2058,2062,2067,2072,2076,2080,2084,2088,2092,2097,2101,2105,2109,2113,2117,2121,2125,2130,2134,2138],{"type":30,"tagName":262,"properties":1983,"children":1984},{"style":474},[1985],{"type":26,"value":1778},{"type":30,"tagName":262,"properties":1987,"children":1988},{"style":284},[1989],{"type":26,"value":1417},{"type":30,"tagName":262,"properties":1991,"children":1992},{"style":474},[1993],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":1995,"children":1996},{"style":284},[1997],{"type":26,"value":482},{"type":30,"tagName":262,"properties":1999,"children":2000},{"style":295},[2001],{"type":26,"value":2002},"\"change  \"",{"type":30,"tagName":262,"properties":2004,"children":2005},{"style":284},[2006],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2008,"children":2009},{"style":474},[2010],{"type":26,"value":1920},{"type":30,"tagName":262,"properties":2012,"children":2013},{"style":284},[2014],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2016,"children":2017},{"style":474},[2018],{"type":26,"value":2019},"isNaN",{"type":30,"tagName":262,"properties":2021,"children":2022},{"style":284},[2023],{"type":26,"value":2024},"(prev) ",{"type":30,"tagName":262,"properties":2026,"children":2027},{"style":278},[2028],{"type":26,"value":2029},"?",{"type":30,"tagName":262,"properties":2031,"children":2032},{"style":495},[2033],{"type":26,"value":1223},{"type":30,"tagName":262,"properties":2035,"children":2036},{"style":278},[2037],{"type":26,"value":2038}," :",{"type":30,"tagName":262,"properties":2040,"children":2041},{"style":284},[2042],{"type":26,"value":2043}," ((close ",{"type":30,"tagName":262,"properties":2045,"children":2046},{"style":278},[2047],{"type":26,"value":1445},{"type":30,"tagName":262,"properties":2049,"children":2050},{"style":284},[2051],{"type":26,"value":2052}," prev) ",{"type":30,"tagName":262,"properties":2054,"children":2055},{"style":278},[2056],{"type":26,"value":2057},"/",{"type":30,"tagName":262,"properties":2059,"children":2060},{"style":284},[2061],{"type":26,"value":2052},{"type":30,"tagName":262,"properties":2063,"children":2064},{"style":278},[2065],{"type":26,"value":2066},"*",{"type":30,"tagName":262,"properties":2068,"children":2069},{"style":495},[2070],{"type":26,"value":2071}," 100.0",{"type":30,"tagName":262,"properties":2073,"children":2074},{"style":284},[2075],{"type":26,"value":492},{"type":30,"tagName":262,"properties":2077,"children":2078},{"style":495},[2079],{"type":26,"value":508},{"type":30,"tagName":262,"properties":2081,"children":2082},{"style":284},[2083],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2085,"children":2086},{"style":474},[2087],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":2089,"children":2090},{"style":284},[2091],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2093,"children":2094},{"style":295},[2095],{"type":26,"value":2096},"\"%\"",{"type":30,"tagName":262,"properties":2098,"children":2099},{"style":284},[2100],{"type":26,"value":1934},{"type":30,"tagName":262,"properties":2102,"children":2103},{"style":495},[2104],{"type":26,"value":955},{"type":30,"tagName":262,"properties":2106,"children":2107},{"style":284},[2108],{"type":26,"value":1943},{"type":30,"tagName":262,"properties":2110,"children":2111},{"style":474},[2112],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":2114,"children":2115},{"style":284},[2116],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2118,"children":2119},{"style":495},[2120],{"type":26,"value":1814},{"type":30,"tagName":262,"properties":2122,"children":2123},{"style":284},[2124],{"type":26,"value":492},{"type":30,"tagName":262,"properties":2126,"children":2127},{"style":495},[2128],{"type":26,"value":2129},"72",{"type":30,"tagName":262,"properties":2131,"children":2132},{"style":284},[2133],{"type":26,"value":1708},{"type":30,"tagName":262,"properties":2135,"children":2136},{"style":474},[2137],{"type":26,"value":26},{"type":30,"tagName":262,"properties":2139,"children":2140},{"style":284},[2141],{"type":26,"value":1977},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2144,"children":2145},{"class":264},[2146,2150,2154,2158,2162,2167,2171,2175,2180,2184,2188,2192,2196,2201,2205,2209,2213,2217,2222,2226,2230,2234,2238,2243,2247,2251,2255,2259,2263,2267,2271,2276,2280,2284],{"type":30,"tagName":262,"properties":2147,"children":2148},{"style":474},[2149],{"type":26,"value":1778},{"type":30,"tagName":262,"properties":2151,"children":2152},{"style":284},[2153],{"type":26,"value":1417},{"type":30,"tagName":262,"properties":2155,"children":2156},{"style":474},[2157],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":2159,"children":2160},{"style":284},[2161],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2163,"children":2164},{"style":295},[2165],{"type":26,"value":2166},"\"flow    \"",{"type":30,"tagName":262,"properties":2168,"children":2169},{"style":284},[2170],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2172,"children":2173},{"style":474},[2174],{"type":26,"value":1920},{"type":30,"tagName":262,"properties":2176,"children":2177},{"style":284},[2178],{"type":26,"value":2179},"(flow, ",{"type":30,"tagName":262,"properties":2181,"children":2182},{"style":495},[2183],{"type":26,"value":955},{"type":30,"tagName":262,"properties":2185,"children":2186},{"style":284},[2187],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2189,"children":2190},{"style":474},[2191],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":2193,"children":2194},{"style":284},[2195],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2197,"children":2198},{"style":295},[2199],{"type":26,"value":2200},"\" over \"",{"type":30,"tagName":262,"properties":2202,"children":2203},{"style":284},[2204],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2206,"children":2207},{"style":474},[2208],{"type":26,"value":1920},{"type":30,"tagName":262,"properties":2210,"children":2211},{"style":284},[2212],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2214,"children":2215},{"style":474},[2216],{"type":26,"value":867},{"type":30,"tagName":262,"properties":2218,"children":2219},{"style":284},[2220],{"type":26,"value":2221},"(bars), ",{"type":30,"tagName":262,"properties":2223,"children":2224},{"style":495},[2225],{"type":26,"value":256},{"type":30,"tagName":262,"properties":2227,"children":2228},{"style":284},[2229],{"type":26,"value":882},{"type":30,"tagName":262,"properties":2231,"children":2232},{"style":474},[2233],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":2235,"children":2236},{"style":284},[2237],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2239,"children":2240},{"style":295},[2241],{"type":26,"value":2242},"\" bars\"",{"type":30,"tagName":262,"properties":2244,"children":2245},{"style":284},[2246],{"type":26,"value":1934},{"type":30,"tagName":262,"properties":2248,"children":2249},{"style":495},[2250],{"type":26,"value":508},{"type":30,"tagName":262,"properties":2252,"children":2253},{"style":284},[2254],{"type":26,"value":1943},{"type":30,"tagName":262,"properties":2256,"children":2257},{"style":474},[2258],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":2260,"children":2261},{"style":284},[2262],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2264,"children":2265},{"style":495},[2266],{"type":26,"value":1814},{"type":30,"tagName":262,"properties":2268,"children":2269},{"style":284},[2270],{"type":26,"value":492},{"type":30,"tagName":262,"properties":2272,"children":2273},{"style":495},[2274],{"type":26,"value":2275},"92",{"type":30,"tagName":262,"properties":2277,"children":2278},{"style":284},[2279],{"type":26,"value":1708},{"type":30,"tagName":262,"properties":2281,"children":2282},{"style":474},[2283],{"type":26,"value":26},{"type":30,"tagName":262,"properties":2285,"children":2286},{"style":284},[2287],{"type":26,"value":1977},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2290,"children":2291},{"class":264},[2292,2296,2300,2304,2309,2314,2318,2323,2328,2332,2337,2341,2345,2349,2354,2358,2363,2367,2371,2375,2379,2383,2387,2391,2396,2400,2404],{"type":30,"tagName":262,"properties":2293,"children":2294},{"style":474},[2295],{"type":26,"value":1778},{"type":30,"tagName":262,"properties":2297,"children":2298},{"style":284},[2299],{"type":26,"value":1417},{"type":30,"tagName":262,"properties":2301,"children":2302},{"style":474},[2303],{"type":26,"value":1787},{"type":30,"tagName":262,"properties":2305,"children":2306},{"style":284},[2307],{"type":26,"value":2308},"(flow ",{"type":30,"tagName":262,"properties":2310,"children":2311},{"style":278},[2312],{"type":26,"value":2313},">",{"type":30,"tagName":262,"properties":2315,"children":2316},{"style":495},[2317],{"type":26,"value":1223},{"type":30,"tagName":262,"properties":2319,"children":2320},{"style":278},[2321],{"type":26,"value":2322}," ?",{"type":30,"tagName":262,"properties":2324,"children":2325},{"style":295},[2326],{"type":26,"value":2327}," \"status  buyers lead\"",{"type":30,"tagName":262,"properties":2329,"children":2330},{"style":278},[2331],{"type":26,"value":2038},{"type":30,"tagName":262,"properties":2333,"children":2334},{"style":284},[2335],{"type":26,"value":2336}," flow ",{"type":30,"tagName":262,"properties":2338,"children":2339},{"style":278},[2340],{"type":26,"value":862},{"type":30,"tagName":262,"properties":2342,"children":2343},{"style":495},[2344],{"type":26,"value":1223},{"type":30,"tagName":262,"properties":2346,"children":2347},{"style":278},[2348],{"type":26,"value":2322},{"type":30,"tagName":262,"properties":2350,"children":2351},{"style":295},[2352],{"type":26,"value":2353}," \"status  sellers lead\"",{"type":30,"tagName":262,"properties":2355,"children":2356},{"style":278},[2357],{"type":26,"value":2038},{"type":30,"tagName":262,"properties":2359,"children":2360},{"style":295},[2361],{"type":26,"value":2362}," \"status  balanced\"",{"type":30,"tagName":262,"properties":2364,"children":2365},{"style":284},[2366],{"type":26,"value":1934},{"type":30,"tagName":262,"properties":2368,"children":2369},{"style":495},[2370],{"type":26,"value":1048},{"type":30,"tagName":262,"properties":2372,"children":2373},{"style":284},[2374],{"type":26,"value":1943},{"type":30,"tagName":262,"properties":2376,"children":2377},{"style":474},[2378],{"type":26,"value":1667},{"type":30,"tagName":262,"properties":2380,"children":2381},{"style":284},[2382],{"type":26,"value":482},{"type":30,"tagName":262,"properties":2384,"children":2385},{"style":495},[2386],{"type":26,"value":1814},{"type":30,"tagName":262,"properties":2388,"children":2389},{"style":284},[2390],{"type":26,"value":492},{"type":30,"tagName":262,"properties":2392,"children":2393},{"style":495},[2394],{"type":26,"value":2395},"118",{"type":30,"tagName":262,"properties":2397,"children":2398},{"style":284},[2399],{"type":26,"value":1708},{"type":30,"tagName":262,"properties":2401,"children":2402},{"style":474},[2403],{"type":26,"value":26},{"type":30,"tagName":262,"properties":2405,"children":2406},{"style":284},[2407],{"type":26,"value":1977},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2410,"children":2411},{"class":264},[2412],{"type":30,"tagName":262,"properties":2413,"children":2414},{"style":284},[2415],{"type":26,"value":1858},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2418,"children":2419},{"class":264},[2420,2425],{"type":30,"tagName":262,"properties":2421,"children":2422},{"style":474},[2423],{"type":26,"value":2424},"  emitRow",{"type":30,"tagName":262,"properties":2426,"children":2427},{"style":284},[2428],{"type":26,"value":1455},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2431,"children":2432},{"class":264},[2433],{"type":30,"tagName":262,"properties":2434,"children":2435},{"style":284},[2436],{"type":26,"value":1549},{"type":26,"value":27},{"type":30,"tagName":262,"properties":2439,"children":2440},{"class":264},[2441],{"type":30,"tagName":262,"properties":2442,"children":2443},{"style":268},[2444],{"type":26,"value":2445},"// reset() runs when the chart restarts the series: back to what init() built, the ring cleared, the frame redrawn.",{"type":26,"value":27},{"type":30,"tagName":262,"properties":2448,"children":2449},{"class":264},[2450,2454,2458,2463,2467,2471,2475,2479,2484,2488,2492,2497,2501,2505,2510,2514,2518,2522,2526,2530,2535,2539,2543,2548,2552,2556,2561,2565,2569,2574,2578,2582,2587,2591,2595,2600,2604,2608],{"type":30,"tagName":262,"properties":2451,"children":2452},{"style":278},[2453],{"type":26,"value":1289},{"type":30,"tagName":262,"properties":2455,"children":2456},{"style":278},[2457],{"type":26,"value":1294},{"type":30,"tagName":262,"properties":2459,"children":2460},{"style":474},[2461],{"type":26,"value":2462}," reset",{"type":30,"tagName":262,"properties":2464,"children":2465},{"style":284},[2466],{"type":26,"value":1304},{"type":30,"tagName":262,"properties":2468,"children":2469},{"style":278},[2470],{"type":26,"value":1015},{"type":30,"tagName":262,"properties":2472,"children":2473},{"style":495},[2474],{"type":26,"value":1313},{"type":30,"tagName":262,"properties":2476,"children":2477},{"style":284},[2478],{"type":26,"value":1380},{"type":30,"tagName":262,"properties":2480,"children":2481},{"style":278},[2482],{"type":26,"value":2483},"for",{"type":30,"tagName":262,"properties":2485,"children":2486},{"style":284},[2487],{"type":26,"value":1638},{"type":30,"tagName":262,"properties":2489,"children":2490},{"style":278},[2491],{"type":26,"value":1119},{"type":30,"tagName":262,"properties":2493,"children":2494},{"style":284},[2495],{"type":26,"value":2496}," i ",{"type":30,"tagName":262,"properties":2498,"children":2499},{"style":278},[2500],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2502,"children":2503},{"style":495},[2504],{"type":26,"value":1245},{"type":30,"tagName":262,"properties":2506,"children":2507},{"style":284},[2508],{"type":26,"value":2509},"; i ",{"type":30,"tagName":262,"properties":2511,"children":2512},{"style":278},[2513],{"type":26,"value":862},{"type":30,"tagName":262,"properties":2515,"children":2516},{"style":495},[2517],{"type":26,"value":811},{"type":30,"tagName":262,"properties":2519,"children":2520},{"style":284},[2521],{"type":26,"value":2509},{"type":30,"tagName":262,"properties":2523,"children":2524},{"style":278},[2525],{"type":26,"value":1469},{"type":30,"tagName":262,"properties":2527,"children":2528},{"style":495},[2529],{"type":26,"value":1511},{"type":30,"tagName":262,"properties":2531,"children":2532},{"style":284},[2533],{"type":26,"value":2534},") deltas[i] ",{"type":30,"tagName":262,"properties":2536,"children":2537},{"style":278},[2538],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2540,"children":2541},{"style":495},[2542],{"type":26,"value":1223},{"type":30,"tagName":262,"properties":2544,"children":2545},{"style":284},[2546],{"type":26,"value":2547},"; close ",{"type":30,"tagName":262,"properties":2549,"children":2550},{"style":278},[2551],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2553,"children":2554},{"style":495},[2555],{"type":26,"value":1164},{"type":30,"tagName":262,"properties":2557,"children":2558},{"style":284},[2559],{"type":26,"value":2560},"; prev ",{"type":30,"tagName":262,"properties":2562,"children":2563},{"style":278},[2564],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2566,"children":2567},{"style":495},[2568],{"type":26,"value":1164},{"type":30,"tagName":262,"properties":2570,"children":2571},{"style":284},[2572],{"type":26,"value":2573},"; flow ",{"type":30,"tagName":262,"properties":2575,"children":2576},{"style":278},[2577],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2579,"children":2580},{"style":495},[2581],{"type":26,"value":1223},{"type":30,"tagName":262,"properties":2583,"children":2584},{"style":284},[2585],{"type":26,"value":2586},"; head ",{"type":30,"tagName":262,"properties":2588,"children":2589},{"style":278},[2590],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2592,"children":2593},{"style":495},[2594],{"type":26,"value":1245},{"type":30,"tagName":262,"properties":2596,"children":2597},{"style":284},[2598],{"type":26,"value":2599},"; framed ",{"type":30,"tagName":262,"properties":2601,"children":2602},{"style":278},[2603],{"type":26,"value":1030},{"type":30,"tagName":262,"properties":2605,"children":2606},{"style":495},[2607],{"type":26,"value":1267},{"type":30,"tagName":262,"properties":2609,"children":2610},{"style":284},[2611],{"type":26,"value":2612},"; }",{"type":26,"value":27},{"type":30,"tagName":230,"properties":2615,"children":2617,"position":2627},{"id":2616},"how-it-works",[2618],{"type":26,"value":2619,"position":2620},"How it works",{"start":2621,"end":2624},{"line":2622,"column":239,"offset":2623},61,5679,{"line":2622,"column":2625,"offset":2626},16,5691,{"start":2628,"end":2630},{"line":2622,"column":20,"offset":2629},5676,{"line":2622,"column":2625,"offset":2626},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2633,"children":2634,"position":2837},{},[2635,2654,2661,2674,2681,2694,2701,2714,2720,2732,2739,2752,2758,2771,2778,2791,2798,2810,2817,2830],{"type":30,"tagName":2636,"properties":2637,"children":2638,"position":2648},"strong",{},[2639],{"type":26,"value":2640,"position":2641},"Two declarations place everything.",{"start":2642,"end":2645},{"line":9,"column":2643,"offset":2644},3,5695,{"line":9,"column":2646,"offset":2647},37,5729,{"start":2649,"end":2651},{"line":9,"column":20,"offset":2650},5693,{"line":9,"column":2652,"offset":2653},39,5731,{"type":26,"value":2655,"position":2656}," ",{"start":2657,"end":2658},{"line":9,"column":2652,"offset":2653},{"line":9,"column":2659,"offset":2660},40,5732,{"type":30,"tagName":44,"properties":2662,"children":2663,"position":2671},{},[2664],{"type":26,"value":2665,"position":2666},"handles.box({ anchor: \"top_left\" })",{"start":2667,"end":2668},{"line":9,"column":2659,"offset":2660},{"line":9,"column":2669,"offset":2670},77,5769,{"start":2672,"end":2673},{"line":9,"column":2659,"offset":2660},{"line":9,"column":2669,"offset":2670},{"type":26,"value":2675,"position":2676}," and ",{"start":2677,"end":2678},{"line":9,"column":2669,"offset":2670},{"line":9,"column":2679,"offset":2680},82,5774,{"type":30,"tagName":44,"properties":2682,"children":2683,"position":2691},{},[2684],{"type":26,"value":2685,"position":2686},"handles.label({ anchor: \"top_left\", align: \"left\", size: 11 })",{"start":2687,"end":2688},{"line":9,"column":2679,"offset":2680},{"line":9,"column":2689,"offset":2690},146,5838,{"start":2692,"end":2693},{"line":9,"column":2679,"offset":2680},{"line":9,"column":2689,"offset":2690},{"type":26,"value":2695,"position":2696}," enable the two handle kinds and set the defaults every new box and label starts from. With the anchor word, ",{"start":2697,"end":2698},{"line":9,"column":2689,"offset":2690},{"line":9,"column":2699,"offset":2700},255,5947,{"type":30,"tagName":44,"properties":2702,"children":2703,"position":2711},{},[2704],{"type":26,"value":2705,"position":2706},"set(14, 12, 394, 34)",{"start":2707,"end":2708},{"line":9,"column":2699,"offset":2700},{"line":9,"column":2709,"offset":2710},277,5969,{"start":2712,"end":2713},{"line":9,"column":2699,"offset":2700},{"line":9,"column":2709,"offset":2710},{"type":26,"value":2715,"position":2716}," is a box from 14 px to 394 px across and 12 px to 34 px down from the pane's top-left corner, whatever the chart is scrolled or zoomed to; without it the same four numbers would be times and prices. With ",{"start":2717,"end":2718},{"line":9,"column":2709,"offset":2710},{"line":9,"column":63,"offset":2719},6174,{"type":30,"tagName":44,"properties":2721,"children":2722,"position":2729},{},[2723],{"type":26,"value":149,"position":2724},{"start":2725,"end":2726},{"line":9,"column":63,"offset":2719},{"line":9,"column":2727,"offset":2728},497,6189,{"start":2730,"end":2731},{"line":9,"column":63,"offset":2719},{"line":9,"column":2727,"offset":2728},{"type":26,"value":2733,"position":2734},", a label's text starts at its x (24 px) instead of being centred on it, which is what lines the rows up like a terminal. Both words are sheet defaults; a single handle can override them with ",{"start":2735,"end":2736},{"line":9,"column":2727,"offset":2728},{"line":9,"column":2737,"offset":2738},689,6381,{"type":30,"tagName":44,"properties":2740,"children":2741,"position":2749},{},[2742],{"type":26,"value":2743,"position":2744},"anchor(...)",{"start":2745,"end":2746},{"line":9,"column":2737,"offset":2738},{"line":9,"column":2747,"offset":2748},702,6394,{"start":2750,"end":2751},{"line":9,"column":2737,"offset":2738},{"line":9,"column":2747,"offset":2748},{"type":26,"value":2675,"position":2753},{"start":2754,"end":2755},{"line":9,"column":2747,"offset":2748},{"line":9,"column":2756,"offset":2757},707,6399,{"type":30,"tagName":44,"properties":2759,"children":2760,"position":2768},{},[2761],{"type":26,"value":2762,"position":2763},"align(...)",{"start":2764,"end":2765},{"line":9,"column":2756,"offset":2757},{"line":9,"column":2766,"offset":2767},719,6411,{"start":2769,"end":2770},{"line":9,"column":2756,"offset":2757},{"line":9,"column":2766,"offset":2767},{"type":26,"value":2772,"position":2773}," from ",{"start":2774,"end":2775},{"line":9,"column":2766,"offset":2767},{"line":9,"column":2776,"offset":2777},725,6417,{"type":30,"tagName":44,"properties":2779,"children":2780,"position":2788},{},[2781],{"type":26,"value":2782,"position":2783},"./gen/draw",{"start":2784,"end":2785},{"line":9,"column":2776,"offset":2777},{"line":9,"column":2786,"offset":2787},737,6429,{"start":2789,"end":2790},{"line":9,"column":2776,"offset":2777},{"line":9,"column":2786,"offset":2787},{"type":26,"value":2792,"position":2793},". Declaring a handle kind, or calling ",{"start":2794,"end":2795},{"line":9,"column":2786,"offset":2787},{"line":9,"column":2796,"offset":2797},775,6467,{"type":30,"tagName":44,"properties":2799,"children":2800,"position":2807},{},[2801],{"type":26,"value":169,"position":2802},{"start":2803,"end":2804},{"line":9,"column":2796,"offset":2797},{"line":9,"column":2805,"offset":2806},789,6481,{"start":2808,"end":2809},{"line":9,"column":2796,"offset":2797},{"line":9,"column":2805,"offset":2806},{"type":26,"value":2811,"position":2812},", is what derives the third ABI version (",{"start":2813,"end":2814},{"line":9,"column":2805,"offset":2806},{"line":9,"column":2815,"offset":2816},830,6522,{"type":30,"tagName":44,"properties":2818,"children":2819,"position":2827},{},[2820],{"type":26,"value":2821,"position":2822},"wrun-3",{"start":2823,"end":2824},{"line":9,"column":2815,"offset":2816},{"line":9,"column":2825,"offset":2826},838,6530,{"start":2828,"end":2829},{"line":9,"column":2815,"offset":2816},{"line":9,"column":2825,"offset":2826},{"type":26,"value":2831,"position":2832},") in the generated sheet.",{"start":2833,"end":2834},{"line":9,"column":2825,"offset":2826},{"line":9,"column":2835,"offset":2836},863,6555,{"start":2838,"end":2839},{"line":9,"column":20,"offset":2650},{"line":9,"column":2835,"offset":2836},{"type":26,"value":27},{"type":30,"tagName":31,"properties":2842,"children":2843,"position":3082},{},[2844,2862,2868,2880,2887,2900,2906,2919,2925,2938,2945,2958,2965,2978,2985,2998,3005,3017,3024,3037,3043,3056,3062,3075],{"type":30,"tagName":2636,"properties":2845,"children":2846,"position":2856},{},[2847],{"type":26,"value":2848,"position":2849},"One slot, five labels.",{"start":2850,"end":2853},{"line":2851,"column":2643,"offset":2852},65,6559,{"line":2851,"column":2854,"offset":2855},25,6581,{"start":2857,"end":2859},{"line":2851,"column":20,"offset":2858},6557,{"line":2851,"column":2860,"offset":2861},27,6583,{"type":26,"value":2655,"position":2863},{"start":2864,"end":2865},{"line":2851,"column":2860,"offset":2861},{"line":2851,"column":2866,"offset":2867},28,6584,{"type":30,"tagName":44,"properties":2869,"children":2870,"position":2877},{},[2871],{"type":26,"value":2872,"position":2873},"string(\"text\", { max_bytes: 40 })",{"start":2874,"end":2875},{"line":2851,"column":2866,"offset":2867},{"line":2851,"column":9,"offset":2876},6619,{"start":2878,"end":2879},{"line":2851,"column":2866,"offset":2867},{"line":2851,"column":9,"offset":2876},{"type":26,"value":2881,"position":2882}," is the only text slot. Each row is built into the shared line buffer with ",{"start":2883,"end":2884},{"line":2851,"column":9,"offset":2876},{"line":2851,"column":2885,"offset":2886},138,6694,{"type":30,"tagName":44,"properties":2888,"children":2889,"position":2897},{},[2890],{"type":26,"value":2891,"position":2892},"sb_clear()",{"start":2893,"end":2894},{"line":2851,"column":2885,"offset":2886},{"line":2851,"column":2895,"offset":2896},150,6706,{"start":2898,"end":2899},{"line":2851,"column":2885,"offset":2886},{"line":2851,"column":2895,"offset":2896},{"type":26,"value":492,"position":2901},{"start":2902,"end":2903},{"line":2851,"column":2895,"offset":2896},{"line":2851,"column":2904,"offset":2905},152,6708,{"type":30,"tagName":44,"properties":2907,"children":2908,"position":2916},{},[2909],{"type":26,"value":2910,"position":2911},"sb_text(...)",{"start":2912,"end":2913},{"line":2851,"column":2904,"offset":2905},{"line":2851,"column":2914,"offset":2915},166,6722,{"start":2917,"end":2918},{"line":2851,"column":2904,"offset":2905},{"line":2851,"column":2914,"offset":2915},{"type":26,"value":2675,"position":2920},{"start":2921,"end":2922},{"line":2851,"column":2914,"offset":2915},{"line":2851,"column":2923,"offset":2924},171,6727,{"type":30,"tagName":44,"properties":2926,"children":2927,"position":2935},{},[2928],{"type":26,"value":2929,"position":2930},"sb_f64(value, decimals)",{"start":2931,"end":2932},{"line":2851,"column":2923,"offset":2924},{"line":2851,"column":2933,"offset":2934},196,6752,{"start":2936,"end":2937},{"line":2851,"column":2923,"offset":2924},{"line":2851,"column":2933,"offset":2934},{"type":26,"value":2939,"position":2940},", then ",{"start":2941,"end":2942},{"line":2851,"column":2933,"offset":2934},{"line":2851,"column":2943,"offset":2944},203,6759,{"type":30,"tagName":44,"properties":2946,"children":2947,"position":2955},{},[2948],{"type":26,"value":2949,"position":2950},"text(str_text_sb)",{"start":2951,"end":2952},{"line":2851,"column":2943,"offset":2944},{"line":2851,"column":2953,"offset":2954},222,6778,{"start":2956,"end":2957},{"line":2851,"column":2943,"offset":2944},{"line":2851,"column":2953,"offset":2954},{"type":26,"value":2959,"position":2960}," sends the slot and draws the label at its last ",{"start":2961,"end":2962},{"line":2851,"column":2953,"offset":2954},{"line":2851,"column":2963,"offset":2964},270,6826,{"type":30,"tagName":44,"properties":2966,"children":2967,"position":2975},{},[2968],{"type":26,"value":2969,"position":2970},"set(x, y)",{"start":2971,"end":2972},{"line":2851,"column":2963,"offset":2964},{"line":2851,"column":2973,"offset":2974},281,6837,{"start":2976,"end":2977},{"line":2851,"column":2963,"offset":2964},{"line":2851,"column":2973,"offset":2974},{"type":26,"value":2979,"position":2980},". The host copies the slot's bytes into the handle at the moment of the draw call, so writing the same slot five times on one bar yields five different labels. Nothing allocates per bar: the buffer is one static array sized to ",{"start":2981,"end":2982},{"line":2851,"column":2973,"offset":2974},{"line":2851,"column":2983,"offset":2984},508,7064,{"type":30,"tagName":44,"properties":2986,"children":2987,"position":2995},{},[2988],{"type":26,"value":2989,"position":2990},"max_bytes",{"start":2991,"end":2992},{"line":2851,"column":2983,"offset":2984},{"line":2851,"column":2993,"offset":2994},519,7075,{"start":2996,"end":2997},{"line":2851,"column":2983,"offset":2984},{"line":2851,"column":2993,"offset":2994},{"type":26,"value":2999,"position":3000},", and ",{"start":3001,"end":3002},{"line":2851,"column":2993,"offset":2994},{"line":2851,"column":3003,"offset":3004},525,7081,{"type":30,"tagName":44,"properties":3006,"children":3007,"position":3014},{},[3008],{"type":26,"value":1920,"position":3009},{"start":3010,"end":3011},{"line":2851,"column":3003,"offset":3004},{"line":2851,"column":3012,"offset":3013},533,7089,{"start":3015,"end":3016},{"line":2851,"column":3003,"offset":3004},{"line":2851,"column":3012,"offset":3013},{"type":26,"value":3018,"position":3019}," formats the double digit by digit (",{"start":3020,"end":3021},{"line":2851,"column":3012,"offset":3013},{"line":2851,"column":3022,"offset":3023},569,7125,{"type":30,"tagName":44,"properties":3025,"children":3026,"position":3034},{},[3027],{"type":26,"value":3028,"position":3029},"124.00",{"start":3030,"end":3031},{"line":2851,"column":3022,"offset":3023},{"line":2851,"column":3032,"offset":3033},577,7133,{"start":3035,"end":3036},{"line":2851,"column":3022,"offset":3023},{"line":2851,"column":3032,"offset":3033},{"type":26,"value":492,"position":3038},{"start":3039,"end":3040},{"line":2851,"column":3032,"offset":3033},{"line":2851,"column":3041,"offset":3042},579,7135,{"type":30,"tagName":44,"properties":3044,"children":3045,"position":3053},{},[3046],{"type":26,"value":3047,"position":3048},"0.81",{"start":3049,"end":3050},{"line":2851,"column":3041,"offset":3042},{"line":2851,"column":3051,"offset":3052},585,7141,{"start":3054,"end":3055},{"line":2851,"column":3041,"offset":3042},{"line":2851,"column":3051,"offset":3052},{"type":26,"value":492,"position":3057},{"start":3058,"end":3059},{"line":2851,"column":3051,"offset":3052},{"line":2851,"column":3060,"offset":3061},587,7143,{"type":30,"tagName":44,"properties":3063,"children":3064,"position":3072},{},[3065],{"type":26,"value":3066,"position":3067},"330.0",{"start":3068,"end":3069},{"line":2851,"column":3060,"offset":3061},{"line":2851,"column":3070,"offset":3071},594,7150,{"start":3073,"end":3074},{"line":2851,"column":3060,"offset":3061},{"line":2851,"column":3070,"offset":3071},{"type":26,"value":3076,"position":3077},"), never through a locale.",{"start":3078,"end":3079},{"line":2851,"column":3070,"offset":3071},{"line":2851,"column":3080,"offset":3081},620,7176,{"start":3083,"end":3084},{"line":2851,"column":20,"offset":2858},{"line":2851,"column":3080,"offset":3081},{"type":26,"value":27},{"type":30,"tagName":31,"properties":3087,"children":3088,"position":3192},{},[3089,3107,3114,3127,3134,3147,3154,3165,3172,3185],{"type":30,"tagName":2636,"properties":3090,"children":3091,"position":3101},{},[3092],{"type":26,"value":3093,"position":3094},"The frame once, the rows on the live bar.",{"start":3095,"end":3098},{"line":3096,"column":2643,"offset":3097},67,7180,{"line":3096,"column":3099,"offset":3100},44,7221,{"start":3102,"end":3104},{"line":3096,"column":20,"offset":3103},7178,{"line":3096,"column":3105,"offset":3106},46,7223,{"type":26,"value":3108,"position":3109}," A handle set on one bar stays on the chart until ",{"start":3110,"end":3111},{"line":3096,"column":3105,"offset":3106},{"line":3096,"column":3112,"offset":3113},96,7273,{"type":30,"tagName":44,"properties":3115,"children":3116,"position":3124},{},[3117],{"type":26,"value":3118,"position":3119},"delete()",{"start":3120,"end":3121},{"line":3096,"column":3112,"offset":3113},{"line":3096,"column":3122,"offset":3123},106,7283,{"start":3125,"end":3126},{"line":3096,"column":3112,"offset":3113},{"line":3096,"column":3122,"offset":3123},{"type":26,"value":3128,"position":3129},", so the two boxes and the title are drawn on the first bar and never touched again (",{"start":3130,"end":3131},{"line":3096,"column":3122,"offset":3123},{"line":3096,"column":3132,"offset":3133},191,7368,{"type":30,"tagName":44,"properties":3135,"children":3136,"position":3144},{},[3137],{"type":26,"value":3138,"position":3139},"framed",{"start":3140,"end":3141},{"line":3096,"column":3132,"offset":3133},{"line":3096,"column":3142,"offset":3143},199,7376,{"start":3145,"end":3146},{"line":3096,"column":3132,"offset":3133},{"line":3096,"column":3142,"offset":3143},{"type":26,"value":3148,"position":3149}," remembers that). The four rows sit under ",{"start":3150,"end":3151},{"line":3096,"column":3142,"offset":3143},{"line":3096,"column":3152,"offset":3153},241,7418,{"type":30,"tagName":44,"properties":3155,"children":3156,"position":3162},{},[3157],{"type":26,"value":169,"position":3158},{"start":3159,"end":3160},{"line":3096,"column":3152,"offset":3153},{"line":3096,"column":2699,"offset":3161},7432,{"start":3163,"end":3164},{"line":3096,"column":3152,"offset":3153},{"line":3096,"column":2699,"offset":3161},{"type":26,"value":3166,"position":3167},": true on the newest bar the host holds (the last row of a full run, the forming bar live), false on every earlier bar. On a closed bar ",{"start":3168,"end":3169},{"line":3096,"column":2699,"offset":3161},{"line":3096,"column":3170,"offset":3171},391,7568,{"type":30,"tagName":44,"properties":3173,"children":3174,"position":3182},{},[3175],{"type":26,"value":3176,"position":3177},"finalize()",{"start":3178,"end":3179},{"line":3096,"column":3170,"offset":3171},{"line":3096,"column":3180,"offset":3181},403,7580,{"start":3183,"end":3184},{"line":3096,"column":3170,"offset":3171},{"line":3096,"column":3180,"offset":3181},{"type":26,"value":3186,"position":3187}," writes the output and emits the row, with no string write and no draw call. On the live bar the rows are rewritten with the current close, the change against the previous close, the flow and its verdict.",{"start":3188,"end":3189},{"line":3096,"column":3180,"offset":3181},{"line":3096,"column":3190,"offset":3191},607,7784,{"start":3193,"end":3194},{"line":3096,"column":20,"offset":3103},{"line":3096,"column":3190,"offset":3191},{"type":26,"value":27},{"type":30,"tagName":31,"properties":3197,"children":3198,"position":3420},{},[3199,3217,3223,3235,3241,3253,3260,3273,3280,3292,3298,3311,3318,3334,3341,3353,3360,3373,3380,3393,3400,3413],{"type":30,"tagName":2636,"properties":3200,"children":3201,"position":3211},{},[3202],{"type":26,"value":3203,"position":3204},"The rolling flow.",{"start":3205,"end":3208},{"line":3206,"column":2643,"offset":3207},69,7788,{"line":3206,"column":3209,"offset":3210},20,7805,{"start":3212,"end":3214},{"line":3206,"column":20,"offset":3213},7786,{"line":3206,"column":3215,"offset":3216},22,7807,{"type":26,"value":2655,"position":3218},{"start":3219,"end":3220},{"line":3206,"column":3215,"offset":3216},{"line":3206,"column":3221,"offset":3222},23,7808,{"type":30,"tagName":44,"properties":3224,"children":3225,"position":3232},{},[3226],{"type":26,"value":3227,"position":3228},"buy",{"start":3229,"end":3230},{"line":3206,"column":3221,"offset":3222},{"line":3206,"column":2866,"offset":3231},7813,{"start":3233,"end":3234},{"line":3206,"column":3221,"offset":3222},{"line":3206,"column":2866,"offset":3231},{"type":26,"value":2675,"position":3236},{"start":3237,"end":3238},{"line":3206,"column":2866,"offset":3231},{"line":3206,"column":3239,"offset":3240},33,7818,{"type":30,"tagName":44,"properties":3242,"children":3243,"position":3250},{},[3244],{"type":26,"value":3245,"position":3246},"sell",{"start":3247,"end":3248},{"line":3206,"column":3239,"offset":3240},{"line":3206,"column":2652,"offset":3249},7824,{"start":3251,"end":3252},{"line":3206,"column":3239,"offset":3240},{"line":3206,"column":2652,"offset":3249},{"type":26,"value":3254,"position":3255}," are the two halves of the tape, ",{"start":3256,"end":3257},{"line":3206,"column":2652,"offset":3249},{"line":3206,"column":3258,"offset":3259},72,7857,{"type":30,"tagName":44,"properties":3261,"children":3262,"position":3270},{},[3263],{"type":26,"value":3264,"position":3265},"trades.volume",{"start":3266,"end":3267},{"line":3206,"column":3258,"offset":3259},{"line":3206,"column":3268,"offset":3269},87,7872,{"start":3271,"end":3272},{"line":3206,"column":3258,"offset":3259},{"line":3206,"column":3268,"offset":3269},{"type":26,"value":3274,"position":3275}," with ",{"start":3276,"end":3277},{"line":3206,"column":3268,"offset":3269},{"line":3206,"column":3278,"offset":3279},93,7878,{"type":30,"tagName":44,"properties":3281,"children":3282,"position":3289},{},[3283],{"type":26,"value":3284,"position":3285},"side: \"BUY\"",{"start":3286,"end":3287},{"line":3206,"column":3278,"offset":3279},{"line":3206,"column":3122,"offset":3288},7891,{"start":3290,"end":3291},{"line":3206,"column":3278,"offset":3279},{"line":3206,"column":3122,"offset":3288},{"type":26,"value":2675,"position":3293},{"start":3294,"end":3295},{"line":3206,"column":3122,"offset":3288},{"line":3206,"column":3296,"offset":3297},111,7896,{"type":30,"tagName":44,"properties":3299,"children":3300,"position":3308},{},[3301],{"type":26,"value":3302,"position":3303},"side: \"SELL\"",{"start":3304,"end":3305},{"line":3206,"column":3296,"offset":3297},{"line":3206,"column":3306,"offset":3307},125,7910,{"start":3309,"end":3310},{"line":3206,"column":3296,"offset":3297},{"line":3206,"column":3306,"offset":3307},{"type":26,"value":3312,"position":3313},", the ",{"start":3314,"end":3315},{"line":3206,"column":3306,"offset":3307},{"line":3206,"column":3316,"offset":3317},131,7916,{"type":30,"tagName":101,"properties":3319,"children":3321,"position":3330},{"href":3320},"aggregated-cvd.md",[3322],{"type":26,"value":3323,"position":3324},"Aggregated CVD",{"start":3325,"end":3328},{"line":3206,"column":3326,"offset":3327},132,7917,{"line":3206,"column":2689,"offset":3329},7931,{"start":3331,"end":3332},{"line":3206,"column":3316,"offset":3317},{"line":3206,"column":2914,"offset":3333},7951,{"type":26,"value":3335,"position":3336}," shape; ",{"start":3337,"end":3338},{"line":3206,"column":2914,"offset":3333},{"line":3206,"column":3339,"offset":3340},174,7959,{"type":30,"tagName":44,"properties":3342,"children":3343,"position":3350},{},[3344],{"type":26,"value":3345,"position":3346},"missing: \"zero\"",{"start":3347,"end":3348},{"line":3206,"column":3339,"offset":3340},{"line":3206,"column":3132,"offset":3349},7976,{"start":3351,"end":3352},{"line":3206,"column":3339,"offset":3340},{"line":3206,"column":3132,"offset":3349},{"type":26,"value":3354,"position":3355}," makes a bar with no prints contribute nothing instead of repeating the last value. ",{"start":3356,"end":3357},{"line":3206,"column":3132,"offset":3349},{"line":3206,"column":3358,"offset":3359},275,8060,{"type":30,"tagName":44,"properties":3361,"children":3362,"position":3370},{},[3363],{"type":26,"value":3364,"position":3365},"state()",{"start":3366,"end":3367},{"line":3206,"column":3358,"offset":3359},{"line":3206,"column":3368,"offset":3369},284,8069,{"start":3371,"end":3372},{"line":3206,"column":3358,"offset":3359},{"line":3206,"column":3368,"offset":3369},{"type":26,"value":3374,"position":3375}," folds each bar's delta into a 20-slot ring: add the new delta, subtract the one falling out, so ",{"start":3376,"end":3377},{"line":3206,"column":3368,"offset":3369},{"line":3206,"column":3378,"offset":3379},381,8166,{"type":30,"tagName":44,"properties":3381,"children":3382,"position":3390},{},[3383],{"type":26,"value":3384,"position":3385},"flow",{"start":3386,"end":3387},{"line":3206,"column":3378,"offset":3379},{"line":3206,"column":3388,"offset":3389},387,8172,{"start":3391,"end":3392},{"line":3206,"column":3378,"offset":3379},{"line":3206,"column":3388,"offset":3389},{"type":26,"value":3394,"position":3395}," is always the sum of the last 20 deltas without a loop. The same figure goes out through ",{"start":3396,"end":3397},{"line":3206,"column":3388,"offset":3389},{"line":3206,"column":3398,"offset":3399},477,8262,{"type":30,"tagName":44,"properties":3401,"children":3402,"position":3410},{},[3403],{"type":26,"value":3404,"position":3405},"out_flow",{"start":3406,"end":3407},{"line":3206,"column":3398,"offset":3399},{"line":3206,"column":3408,"offset":3409},487,8272,{"start":3411,"end":3412},{"line":3206,"column":3398,"offset":3399},{"line":3206,"column":3408,"offset":3409},{"type":26,"value":3414,"position":3415},", so the package is also a metric on your machine even though its chart look is the HUD alone.",{"start":3416,"end":3417},{"line":3206,"column":3408,"offset":3409},{"line":3206,"column":3418,"offset":3419},581,8366,{"start":3421,"end":3422},{"line":3206,"column":20,"offset":3213},{"line":3206,"column":3418,"offset":3419},{"type":26,"value":27},{"type":30,"tagName":230,"properties":3425,"children":3427,"position":3436},{"id":3426},"what-changed-in-the-port",[3428],{"type":26,"value":3429,"position":3430},"What changed in the port",{"start":3431,"end":3434},{"line":3432,"column":239,"offset":3433},71,8371,{"line":3432,"column":2866,"offset":3435},8395,{"start":3437,"end":3439},{"line":3432,"column":20,"offset":3438},8368,{"line":3432,"column":2866,"offset":3435},{"type":26,"value":27},{"type":30,"tagName":3442,"properties":3443,"children":3444,"position":3968},"ul",{},[3445,3446,3523,3524,3607,3608,3774,3775,3878,3879,3932,3933,3967],{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3448,"children":3449,"position":3519},"li",{},[3450,3459,3472,3478,3489,3496,3512],{"type":26,"value":3451,"position":3452},"The MMT-style terminal scripts, the kScript (legacy) precedent, drew their readout with ",{"start":3453,"end":3456},{"line":3454,"column":2643,"offset":3455},73,8399,{"line":3454,"column":3457,"offset":3458},91,8487,{"type":30,"tagName":44,"properties":3460,"children":3461,"position":3469},{},[3462],{"type":26,"value":3463,"position":3464},"plotTable(...)",{"start":3465,"end":3466},{"line":3454,"column":3457,"offset":3458},{"line":3454,"column":3467,"offset":3468},107,8503,{"start":3470,"end":3471},{"line":3454,"column":3457,"offset":3458},{"line":3454,"column":3467,"offset":3468},{"type":26,"value":58,"position":3473},{"start":3474,"end":3475},{"line":3454,"column":3467,"offset":3468},{"line":3454,"column":3476,"offset":3477},114,8510,{"type":30,"tagName":44,"properties":3479,"children":3480,"position":3486},{},[3481],{"type":26,"value":68,"position":3482},{"start":3483,"end":3484},{"line":3454,"column":3476,"offset":3477},{"line":3454,"column":3306,"offset":3485},8521,{"start":3487,"end":3488},{"line":3454,"column":3476,"offset":3477},{"line":3454,"column":3306,"offset":3485},{"type":26,"value":3490,"position":3491},", one table declaration with its rows, position and colors. Here the readout is boxes and labels the package owns: it chooses the ids, the pixel coordinates, the text of each row and the bar it redraws on. The ",{"start":3492,"end":3493},{"line":3454,"column":3306,"offset":3485},{"line":3454,"column":3494,"offset":3495},335,8731,{"type":30,"tagName":101,"properties":3497,"children":3498,"position":3507},{"href":3320},[3499],{"type":26,"value":3323,"position":3500},{"start":3501,"end":3504},{"line":3454,"column":3502,"offset":3503},336,8732,{"line":3454,"column":3505,"offset":3506},350,8746,{"start":3508,"end":3509},{"line":3454,"column":3494,"offset":3495},{"line":3454,"column":3510,"offset":3511},370,8766,{"type":26,"value":3513,"position":3514}," recipe's venue table is the same construct in kScript form.",{"start":3515,"end":3516},{"line":3454,"column":3510,"offset":3511},{"line":3454,"column":3517,"offset":3518},430,8826,{"start":3520,"end":3522},{"line":3454,"column":20,"offset":3521},8397,{"line":3454,"column":3517,"offset":3518},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3525,"children":3526,"position":3603},{},[3527,3541,3548,3560,3567,3579,3584,3596],{"type":30,"tagName":44,"properties":3528,"children":3529,"position":3538},{},[3530],{"type":26,"value":68,"position":3531},{"start":3532,"end":3535},{"line":3533,"column":2643,"offset":3534},74,8829,{"line":3533,"column":3536,"offset":3537},14,8840,{"start":3539,"end":3540},{"line":3533,"column":2643,"offset":3534},{"line":3533,"column":3536,"offset":3537},{"type":26,"value":3542,"position":3543}," is ",{"start":3544,"end":3545},{"line":3533,"column":3536,"offset":3537},{"line":3533,"column":3546,"offset":3547},18,8844,{"type":30,"tagName":44,"properties":3549,"children":3550,"position":3557},{},[3551],{"type":26,"value":169,"position":3552},{"start":3553,"end":3554},{"line":3533,"column":3546,"offset":3547},{"line":3533,"column":3555,"offset":3556},32,8858,{"start":3558,"end":3559},{"line":3533,"column":3546,"offset":3547},{"line":3533,"column":3555,"offset":3556},{"type":26,"value":3561,"position":3562},", a call answered in ",{"start":3563,"end":3564},{"line":3533,"column":3555,"offset":3556},{"line":3533,"column":3565,"offset":3566},53,8879,{"type":30,"tagName":44,"properties":3568,"children":3569,"position":3576},{},[3570],{"type":26,"value":3364,"position":3571},{"start":3572,"end":3573},{"line":3533,"column":3565,"offset":3566},{"line":3533,"column":3574,"offset":3575},62,8888,{"start":3577,"end":3578},{"line":3533,"column":3565,"offset":3566},{"line":3533,"column":3574,"offset":3575},{"type":26,"value":2675,"position":3580},{"start":3581,"end":3582},{"line":3533,"column":3574,"offset":3575},{"line":3533,"column":3096,"offset":3583},8893,{"type":30,"tagName":44,"properties":3585,"children":3586,"position":3593},{},[3587],{"type":26,"value":3176,"position":3588},{"start":3589,"end":3590},{"line":3533,"column":3096,"offset":3583},{"line":3533,"column":3591,"offset":3592},79,8905,{"start":3594,"end":3595},{"line":3533,"column":3096,"offset":3583},{"line":3533,"column":3591,"offset":3592},{"type":26,"value":3597,"position":3598},". The kScript engine evaluated the table on the last bar only; here the split is explicit, the frame once and the rows on the live bar, and the closed bars pay nothing.",{"start":3599,"end":3600},{"line":3533,"column":3591,"offset":3592},{"line":3533,"column":3601,"offset":3602},247,9073,{"start":3604,"end":3606},{"line":3533,"column":20,"offset":3605},8827,{"line":3533,"column":3601,"offset":3602},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3609,"children":3610,"position":3770},{},[3611,3625,3631,3643,3650,3663,3669,3682,3688,3701,3708,3721,3727,3740,3747,3763],{"type":30,"tagName":44,"properties":3612,"children":3613,"position":3622},{},[3614],{"type":26,"value":3615,"position":3616},"position=\"top_right\"",{"start":3617,"end":3620},{"line":3618,"column":2643,"offset":3619},75,9076,{"line":3618,"column":2854,"offset":3621},9098,{"start":3623,"end":3624},{"line":3618,"column":2643,"offset":3619},{"line":3618,"column":2854,"offset":3621},{"type":26,"value":3626,"position":3627}," on a table became ",{"start":3628,"end":3629},{"line":3618,"column":2854,"offset":3621},{"line":3618,"column":3099,"offset":3630},9117,{"type":30,"tagName":44,"properties":3632,"children":3633,"position":3640},{},[3634],{"type":26,"value":129,"position":3635},{"start":3636,"end":3637},{"line":3618,"column":3099,"offset":3630},{"line":3618,"column":3638,"offset":3639},64,9137,{"start":3641,"end":3642},{"line":3618,"column":3099,"offset":3630},{"line":3618,"column":3638,"offset":3639},{"type":26,"value":3644,"position":3645}," on the handle declarations, one word that turns the coordinates into pane pixels. Every placement word (",{"start":3646,"end":3647},{"line":3618,"column":3638,"offset":3639},{"line":3618,"column":3648,"offset":3649},169,9242,{"type":30,"tagName":44,"properties":3651,"children":3652,"position":3660},{},[3653],{"type":26,"value":3654,"position":3655},"top_right",{"start":3656,"end":3657},{"line":3618,"column":3648,"offset":3649},{"line":3618,"column":3658,"offset":3659},180,9253,{"start":3661,"end":3662},{"line":3618,"column":3648,"offset":3649},{"line":3618,"column":3658,"offset":3659},{"type":26,"value":492,"position":3664},{"start":3665,"end":3666},{"line":3618,"column":3658,"offset":3659},{"line":3618,"column":3667,"offset":3668},182,9255,{"type":30,"tagName":44,"properties":3670,"children":3671,"position":3679},{},[3672],{"type":26,"value":3673,"position":3674},"bottom_left",{"start":3675,"end":3676},{"line":3618,"column":3667,"offset":3668},{"line":3618,"column":3677,"offset":3678},195,9268,{"start":3680,"end":3681},{"line":3618,"column":3667,"offset":3668},{"line":3618,"column":3677,"offset":3678},{"type":26,"value":492,"position":3683},{"start":3684,"end":3685},{"line":3618,"column":3677,"offset":3678},{"line":3618,"column":3686,"offset":3687},197,9270,{"type":30,"tagName":44,"properties":3689,"children":3690,"position":3698},{},[3691],{"type":26,"value":3692,"position":3693},"middle_center",{"start":3694,"end":3695},{"line":3618,"column":3686,"offset":3687},{"line":3618,"column":3696,"offset":3697},212,9285,{"start":3699,"end":3700},{"line":3618,"column":3686,"offset":3687},{"line":3618,"column":3696,"offset":3697},{"type":26,"value":3702,"position":3703},", the single-axis ",{"start":3704,"end":3705},{"line":3618,"column":3696,"offset":3697},{"line":3618,"column":3706,"offset":3707},230,9303,{"type":30,"tagName":44,"properties":3709,"children":3710,"position":3718},{},[3711],{"type":26,"value":3712,"position":3713},"top",{"start":3714,"end":3715},{"line":3618,"column":3706,"offset":3707},{"line":3618,"column":3716,"offset":3717},235,9308,{"start":3719,"end":3720},{"line":3618,"column":3706,"offset":3707},{"line":3618,"column":3716,"offset":3717},{"type":26,"value":492,"position":3722},{"start":3723,"end":3724},{"line":3618,"column":3716,"offset":3717},{"line":3618,"column":3725,"offset":3726},237,9310,{"type":30,"tagName":44,"properties":3728,"children":3729,"position":3737},{},[3730],{"type":26,"value":3731,"position":3732},"right",{"start":3733,"end":3734},{"line":3618,"column":3725,"offset":3726},{"line":3618,"column":3735,"offset":3736},244,9317,{"start":3738,"end":3739},{"line":3618,"column":3725,"offset":3726},{"line":3618,"column":3735,"offset":3736},{"type":26,"value":3741,"position":3742},", and the rest) is in ",{"start":3743,"end":3744},{"line":3618,"column":3735,"offset":3736},{"line":3618,"column":3745,"offset":3746},266,9339,{"type":30,"tagName":101,"properties":3748,"children":3749,"position":3758},{"href":103},[3750],{"type":26,"value":106,"position":3751},{"start":3752,"end":3755},{"line":3618,"column":3753,"offset":3754},267,9340,{"line":3618,"column":3756,"offset":3757},282,9355,{"start":3759,"end":3760},{"line":3618,"column":3745,"offset":3746},{"line":3618,"column":3761,"offset":3762},316,9389,{"type":26,"value":3764,"position":3765},".",{"start":3766,"end":3767},{"line":3618,"column":3761,"offset":3762},{"line":3618,"column":3768,"offset":3769},317,9390,{"start":3771,"end":3773},{"line":3618,"column":20,"offset":3772},9074,{"line":3618,"column":3768,"offset":3769},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3776,"children":3777,"position":3874},{},[3778,3793,3799,3812,3818,3830,3836,3848,3854,3867],{"type":30,"tagName":44,"properties":3779,"children":3780,"position":3790},{},[3781],{"type":26,"value":3782,"position":3783},"\"\".concat(...)",{"start":3784,"end":3787},{"line":3785,"column":2643,"offset":3786},76,9393,{"line":3785,"column":3788,"offset":3789},19,9409,{"start":3791,"end":3792},{"line":3785,"column":2643,"offset":3786},{"line":3785,"column":3788,"offset":3789},{"type":26,"value":2675,"position":3794},{"start":3795,"end":3796},{"line":3785,"column":3788,"offset":3789},{"line":3785,"column":3797,"offset":3798},24,9414,{"type":30,"tagName":44,"properties":3800,"children":3801,"position":3809},{},[3802],{"type":26,"value":3803,"position":3804},"math.round(...)",{"start":3805,"end":3806},{"line":3785,"column":3797,"offset":3798},{"line":3785,"column":3807,"offset":3808},41,9431,{"start":3810,"end":3811},{"line":3785,"column":3797,"offset":3798},{"line":3785,"column":3807,"offset":3808},{"type":26,"value":3813,"position":3814}," became the string builder: ",{"start":3815,"end":3816},{"line":3785,"column":3807,"offset":3808},{"line":3785,"column":3206,"offset":3817},9459,{"type":30,"tagName":44,"properties":3819,"children":3820,"position":3827},{},[3821],{"type":26,"value":1787,"position":3822},{"start":3823,"end":3824},{"line":3785,"column":3206,"offset":3817},{"line":3785,"column":3825,"offset":3826},78,9468,{"start":3828,"end":3829},{"line":3785,"column":3206,"offset":3817},{"line":3785,"column":3825,"offset":3826},{"type":26,"value":492,"position":3831},{"start":3832,"end":3833},{"line":3785,"column":3825,"offset":3826},{"line":3785,"column":3834,"offset":3835},80,9470,{"type":30,"tagName":44,"properties":3837,"children":3838,"position":3845},{},[3839],{"type":26,"value":1920,"position":3840},{"start":3841,"end":3842},{"line":3785,"column":3834,"offset":3835},{"line":3785,"column":3843,"offset":3844},88,9478,{"start":3846,"end":3847},{"line":3785,"column":3834,"offset":3835},{"line":3785,"column":3843,"offset":3844},{"type":26,"value":3849,"position":3850}," with a decimal count, ",{"start":3851,"end":3852},{"line":3785,"column":3843,"offset":3844},{"line":3785,"column":3296,"offset":3853},9501,{"type":30,"tagName":44,"properties":3855,"children":3856,"position":3864},{},[3857],{"type":26,"value":3858,"position":3859},"sb_int",{"start":3860,"end":3861},{"line":3785,"column":3296,"offset":3853},{"line":3785,"column":3862,"offset":3863},119,9509,{"start":3865,"end":3866},{"line":3785,"column":3296,"offset":3853},{"line":3785,"column":3862,"offset":3863},{"type":26,"value":3868,"position":3869},". There is no string concatenation per bar and no locale.",{"start":3870,"end":3871},{"line":3785,"column":3862,"offset":3863},{"line":3785,"column":3872,"offset":3873},176,9566,{"start":3875,"end":3877},{"line":3785,"column":20,"offset":3876},9391,{"line":3785,"column":3872,"offset":3873},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3880,"children":3881,"position":3928},{},[3882,3890,3903,3909,3922],{"type":26,"value":3883,"position":3884},"The table's implicit text alignment became the ",{"start":3885,"end":3887},{"line":2669,"column":2643,"offset":3886},9569,{"line":2669,"column":3888,"offset":3889},50,9616,{"type":30,"tagName":44,"properties":3891,"children":3892,"position":3900},{},[3893],{"type":26,"value":3894,"position":3895},"align",{"start":3896,"end":3897},{"line":2669,"column":3888,"offset":3889},{"line":2669,"column":3898,"offset":3899},57,9623,{"start":3901,"end":3902},{"line":2669,"column":3888,"offset":3889},{"line":2669,"column":3898,"offset":3899},{"type":26,"value":3904,"position":3905}," word, declared once as a default or set per label with ",{"start":3906,"end":3907},{"line":2669,"column":3898,"offset":3899},{"line":2669,"column":109,"offset":3908},9679,{"type":30,"tagName":44,"properties":3910,"children":3911,"position":3919},{},[3912],{"type":26,"value":3913,"position":3914},"align(ALIGN_RIGHT)",{"start":3915,"end":3916},{"line":2669,"column":109,"offset":3908},{"line":2669,"column":3917,"offset":3918},133,9699,{"start":3920,"end":3921},{"line":2669,"column":109,"offset":3908},{"line":2669,"column":3917,"offset":3918},{"type":26,"value":3764,"position":3923},{"start":3924,"end":3925},{"line":2669,"column":3917,"offset":3918},{"line":2669,"column":3926,"offset":3927},134,9700,{"start":3929,"end":3931},{"line":2669,"column":20,"offset":3930},9567,{"line":2669,"column":3926,"offset":3927},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3934,"children":3935,"position":3963},{},[3936,3944,3957],{"type":26,"value":3937,"position":3938},"The venue-count row of the table became a metric: the flow figure is a data-only output, readable by ",{"start":3939,"end":3941},{"line":3825,"column":2643,"offset":3940},9703,{"line":3825,"column":3942,"offset":3943},104,9804,{"type":30,"tagName":44,"properties":3945,"children":3946,"position":3954},{},[3947],{"type":26,"value":3948,"position":3949},"om metric series",{"start":3950,"end":3951},{"line":3825,"column":3942,"offset":3943},{"line":3825,"column":3952,"offset":3953},122,9822,{"start":3955,"end":3956},{"line":3825,"column":3942,"offset":3943},{"line":3825,"column":3952,"offset":3953},{"type":26,"value":3958,"position":3959},", a watch or a screen, while the HUD stays the only thing drawn on the chart.",{"start":3960,"end":3961},{"line":3825,"column":3952,"offset":3953},{"line":3825,"column":3142,"offset":3962},9899,{"start":3964,"end":3966},{"line":3825,"column":20,"offset":3965},9701,{"line":3825,"column":3142,"offset":3962},{"type":26,"value":27},{"start":3969,"end":3970},{"line":3454,"column":20,"offset":3521},{"line":3825,"column":3142,"offset":3962},{"type":26,"value":27},{"type":30,"tagName":230,"properties":3973,"children":3975,"position":3983},{"id":3974},"customize-it",[3976],{"type":26,"value":3977,"position":3978},"Customize it",{"start":3979,"end":3981},{"line":3834,"column":239,"offset":3980},9904,{"line":3834,"column":2625,"offset":3982},9916,{"start":3984,"end":3986},{"line":3834,"column":20,"offset":3985},9901,{"line":3834,"column":2625,"offset":3982},{"type":26,"value":27},{"type":30,"tagName":3442,"properties":3989,"children":3990,"position":4619},{},[3991,3992,4118,4119,4203,4204,4273,4274,4360,4361,4426,4427,4618],{"type":26,"value":27},{"type":30,"tagName":3447,"properties":3993,"children":3994,"position":4114},{},[3995,4011,4018,4031,4037,4048,4054,4067,4074,4087,4094,4107],{"type":30,"tagName":2636,"properties":3996,"children":3997,"position":4006},{},[3998],{"type":26,"value":3999,"position":4000},"Right-align a column.",{"start":4001,"end":4003},{"line":2679,"column":38,"offset":4002},9922,{"line":2679,"column":4004,"offset":4005},26,9943,{"start":4007,"end":4009},{"line":2679,"column":2643,"offset":4008},9920,{"line":2679,"column":2866,"offset":4010},9945,{"type":26,"value":4012,"position":4013}," Import ",{"start":4014,"end":4015},{"line":2679,"column":2866,"offset":4010},{"line":2679,"column":4016,"offset":4017},36,9953,{"type":30,"tagName":44,"properties":4019,"children":4020,"position":4028},{},[4021],{"type":26,"value":4022,"position":4023},"ALIGN_RIGHT",{"start":4024,"end":4025},{"line":2679,"column":4016,"offset":4017},{"line":2679,"column":4026,"offset":4027},49,9966,{"start":4029,"end":4030},{"line":2679,"column":4016,"offset":4017},{"line":2679,"column":4026,"offset":4027},{"type":26,"value":2772,"position":4032},{"start":4033,"end":4034},{"line":2679,"column":4026,"offset":4027},{"line":2679,"column":4035,"offset":4036},55,9972,{"type":30,"tagName":44,"properties":4038,"children":4039,"position":4045},{},[4040],{"type":26,"value":2782,"position":4041},{"start":4042,"end":4043},{"line":2679,"column":4035,"offset":4036},{"line":2679,"column":3096,"offset":4044},9984,{"start":4046,"end":4047},{"line":2679,"column":4035,"offset":4036},{"line":2679,"column":3096,"offset":4044},{"type":26,"value":4049,"position":4050}," and call ",{"start":4051,"end":4052},{"line":2679,"column":3096,"offset":4044},{"line":2679,"column":2669,"offset":4053},9994,{"type":30,"tagName":44,"properties":4055,"children":4056,"position":4064},{},[4057],{"type":26,"value":4058,"position":4059},"rows[i].align(ALIGN_RIGHT)",{"start":4060,"end":4061},{"line":2679,"column":2669,"offset":4053},{"line":2679,"column":4062,"offset":4063},105,10022,{"start":4065,"end":4066},{"line":2679,"column":2669,"offset":4053},{"line":2679,"column":4062,"offset":4063},{"type":26,"value":4068,"position":4069}," after the row's first draw (or ",{"start":4070,"end":4071},{"line":2679,"column":4062,"offset":4063},{"line":2679,"column":4072,"offset":4073},137,10054,{"type":30,"tagName":44,"properties":4075,"children":4076,"position":4084},{},[4077],{"type":26,"value":4078,"position":4079},"style.align(rows[i], ALIGN_RIGHT)",{"start":4080,"end":4081},{"line":2679,"column":4072,"offset":4073},{"line":2679,"column":4082,"offset":4083},172,10089,{"start":4085,"end":4086},{"line":2679,"column":4072,"offset":4073},{"line":2679,"column":4082,"offset":4083},{"type":26,"value":4088,"position":4089},"), then place its x at the right edge of the body box; ",{"start":4090,"end":4091},{"line":2679,"column":4082,"offset":4083},{"line":2679,"column":4092,"offset":4093},227,10144,{"type":30,"tagName":44,"properties":4095,"children":4096,"position":4104},{},[4097],{"type":26,"value":4098,"position":4099},"ALIGN_DEFAULT",{"start":4100,"end":4101},{"line":2679,"column":4092,"offset":4093},{"line":2679,"column":4102,"offset":4103},242,10159,{"start":4105,"end":4106},{"line":2679,"column":4092,"offset":4093},{"line":2679,"column":4102,"offset":4103},{"type":26,"value":4108,"position":4109}," clears the word and restores centred text.",{"start":4110,"end":4111},{"line":2679,"column":4102,"offset":4103},{"line":2679,"column":4112,"offset":4113},285,10202,{"start":4115,"end":4117},{"line":2679,"column":20,"offset":4116},9918,{"line":2679,"column":4112,"offset":4113},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4120,"children":4121,"position":4199},{},[4122,4138,4145,4156,4162,4173,4180,4192],{"type":30,"tagName":2636,"properties":4123,"children":4124,"position":4133},{},[4125],{"type":26,"value":4126,"position":4127},"Move the HUD.",{"start":4128,"end":4131},{"line":4129,"column":38,"offset":4130},83,10207,{"line":4129,"column":3546,"offset":4132},10220,{"start":4134,"end":4136},{"line":4129,"column":2643,"offset":4135},10205,{"line":4129,"column":3209,"offset":4137},10222,{"type":26,"value":4139,"position":4140}," Change the anchor word on both declarations to ",{"start":4141,"end":4142},{"line":4129,"column":3209,"offset":4137},{"line":4129,"column":4143,"offset":4144},68,10270,{"type":30,"tagName":44,"properties":4146,"children":4147,"position":4153},{},[4148],{"type":26,"value":3654,"position":4149},{"start":4150,"end":4151},{"line":4129,"column":4143,"offset":4144},{"line":4129,"column":3591,"offset":4152},10281,{"start":4154,"end":4155},{"line":4129,"column":4143,"offset":4144},{"line":4129,"column":3591,"offset":4152},{"type":26,"value":4157,"position":4158}," or ",{"start":4159,"end":4160},{"line":4129,"column":3591,"offset":4152},{"line":4129,"column":4129,"offset":4161},10285,{"type":30,"tagName":44,"properties":4163,"children":4164,"position":4170},{},[4165],{"type":26,"value":3673,"position":4166},{"start":4167,"end":4168},{"line":4129,"column":4129,"offset":4161},{"line":4129,"column":3112,"offset":4169},10298,{"start":4171,"end":4172},{"line":4129,"column":4129,"offset":4161},{"line":4129,"column":3112,"offset":4169},{"type":26,"value":4174,"position":4175},"; the pixel offsets are then measured from that corner. A single-axis word such as ",{"start":4176,"end":4177},{"line":4129,"column":3112,"offset":4169},{"line":4129,"column":4178,"offset":4179},179,10381,{"type":30,"tagName":44,"properties":4181,"children":4182,"position":4189},{},[4183],{"type":26,"value":3712,"position":4184},{"start":4185,"end":4186},{"line":4129,"column":4178,"offset":4179},{"line":4129,"column":4187,"offset":4188},184,10386,{"start":4190,"end":4191},{"line":4129,"column":4178,"offset":4179},{"line":4129,"column":4187,"offset":4188},{"type":26,"value":4193,"position":4194}," keeps x on chart time and pins only y.",{"start":4195,"end":4196},{"line":4129,"column":4187,"offset":4188},{"line":4129,"column":4197,"offset":4198},223,10425,{"start":4200,"end":4202},{"line":4129,"column":20,"offset":4201},10203,{"line":4129,"column":4197,"offset":4198},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4205,"children":4206,"position":4269},{},[4207,4224,4230,4243,4250,4262],{"type":30,"tagName":2636,"properties":4208,"children":4209,"position":4219},{},[4210],{"type":26,"value":4211,"position":4212},"Add a row.",{"start":4213,"end":4216},{"line":4214,"column":38,"offset":4215},84,10430,{"line":4214,"column":4217,"offset":4218},15,10440,{"start":4220,"end":4222},{"line":4214,"column":2643,"offset":4221},10428,{"line":4214,"column":242,"offset":4223},10442,{"type":26,"value":4225,"position":4226}," Reserve one more id (",{"start":4227,"end":4228},{"line":4214,"column":242,"offset":4223},{"line":4214,"column":2652,"offset":4229},10464,{"type":30,"tagName":44,"properties":4231,"children":4232,"position":4240},{},[4233],{"type":26,"value":4234,"position":4235},"draw.label(7)",{"start":4236,"end":4237},{"line":4214,"column":2652,"offset":4229},{"line":4214,"column":4238,"offset":4239},54,10479,{"start":4241,"end":4242},{"line":4214,"column":2652,"offset":4229},{"line":4214,"column":4238,"offset":4239},{"type":26,"value":4244,"position":4245},"), give it a y 20 px below the last row, extend the body box's bottom, and write it under ",{"start":4246,"end":4247},{"line":4214,"column":4238,"offset":4239},{"line":4214,"column":4248,"offset":4249},144,10569,{"type":30,"tagName":44,"properties":4251,"children":4252,"position":4259},{},[4253],{"type":26,"value":169,"position":4254},{"start":4255,"end":4256},{"line":4214,"column":4248,"offset":4249},{"line":4214,"column":4257,"offset":4258},158,10583,{"start":4260,"end":4261},{"line":4214,"column":4248,"offset":4249},{"line":4214,"column":4257,"offset":4258},{"type":26,"value":4263,"position":4264}," like the others. Ids are one space across boxes, labels, lines and polylines.",{"start":4265,"end":4266},{"line":4214,"column":4257,"offset":4258},{"line":4214,"column":4267,"offset":4268},236,10661,{"start":4270,"end":4272},{"line":4214,"column":20,"offset":4271},10426,{"line":4214,"column":4267,"offset":4268},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4275,"children":4276,"position":4356},{},[4277,4293,4300,4312,4319,4331,4338,4350],{"type":30,"tagName":2636,"properties":4278,"children":4279,"position":4288},{},[4280],{"type":26,"value":4281,"position":4282},"Change the window.",{"start":4283,"end":4286},{"line":4284,"column":38,"offset":4285},85,10666,{"line":4284,"column":3221,"offset":4287},10684,{"start":4289,"end":4291},{"line":4284,"column":2643,"offset":4290},10664,{"line":4284,"column":2854,"offset":4292},10686,{"type":26,"value":4294,"position":4295}," The ",{"start":4296,"end":4297},{"line":4284,"column":2854,"offset":4292},{"line":4284,"column":4298,"offset":4299},30,10691,{"type":30,"tagName":44,"properties":4301,"children":4302,"position":4309},{},[4303],{"type":26,"value":4304,"position":4305},"bars",{"start":4306,"end":4307},{"line":4284,"column":4298,"offset":4299},{"line":4284,"column":4016,"offset":4308},10697,{"start":4310,"end":4311},{"line":4284,"column":4298,"offset":4299},{"line":4284,"column":4016,"offset":4308},{"type":26,"value":4313,"position":4314}," param (2..200) sizes the ring in ",{"start":4315,"end":4316},{"line":4284,"column":4016,"offset":4308},{"line":4284,"column":4317,"offset":4318},70,10731,{"type":30,"tagName":44,"properties":4320,"children":4321,"position":4328},{},[4322],{"type":26,"value":4323,"position":4324},"init()",{"start":4325,"end":4326},{"line":4284,"column":4317,"offset":4318},{"line":4284,"column":3825,"offset":4327},10739,{"start":4329,"end":4330},{"line":4284,"column":4317,"offset":4318},{"line":4284,"column":3825,"offset":4327},{"type":26,"value":4332,"position":4333}," and, because it is a declared window param, sets how many bars the daemon fetches for a metric read; a larger ring only needs a larger ",{"start":4334,"end":4335},{"line":4284,"column":3825,"offset":4327},{"line":4284,"column":4336,"offset":4337},214,10875,{"type":30,"tagName":44,"properties":4339,"children":4340,"position":4347},{},[4341],{"type":26,"value":877,"position":4342},{"start":4343,"end":4344},{"line":4284,"column":4336,"offset":4337},{"line":4284,"column":4345,"offset":4346},224,10885,{"start":4348,"end":4349},{"line":4284,"column":4336,"offset":4337},{"line":4284,"column":4345,"offset":4346},{"type":26,"value":3764,"position":4351},{"start":4352,"end":4353},{"line":4284,"column":4345,"offset":4346},{"line":4284,"column":4354,"offset":4355},225,10886,{"start":4357,"end":4359},{"line":4284,"column":20,"offset":4358},10662,{"line":4284,"column":4354,"offset":4355},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4362,"children":4363,"position":4422},{},[4364,4380,4385,4397,4403,4416],{"type":30,"tagName":2636,"properties":4365,"children":4366,"position":4375},{},[4367],{"type":26,"value":4368,"position":4369},"Plot the flow too.",{"start":4370,"end":4373},{"line":4371,"column":38,"offset":4372},86,10891,{"line":4371,"column":3221,"offset":4374},10909,{"start":4376,"end":4378},{"line":4371,"column":2643,"offset":4377},10889,{"line":4371,"column":2854,"offset":4379},10911,{"type":26,"value":2655,"position":4381},{"start":4382,"end":4383},{"line":4371,"column":2854,"offset":4379},{"line":4371,"column":4004,"offset":4384},10912,{"type":30,"tagName":44,"properties":4386,"children":4387,"position":4394},{},[4388],{"type":26,"value":4389,"position":4390},"output(\"flow\", line, lower)",{"start":4391,"end":4392},{"line":4371,"column":4004,"offset":4384},{"line":4371,"column":4035,"offset":4393},10941,{"start":4395,"end":4396},{"line":4371,"column":4004,"offset":4384},{"line":4371,"column":4035,"offset":4393},{"type":26,"value":4398,"position":4399}," draws the rolling sum in its own pane beside the HUD; the ",{"start":4400,"end":4401},{"line":4371,"column":4035,"offset":4393},{"line":4371,"column":3476,"offset":4402},11000,{"type":30,"tagName":44,"properties":4404,"children":4405,"position":4413},{},[4406],{"type":26,"value":4407,"position":4408},"none",{"start":4409,"end":4410},{"line":4371,"column":3476,"offset":4402},{"line":4371,"column":4411,"offset":4412},120,11006,{"start":4414,"end":4415},{"line":4371,"column":3476,"offset":4402},{"line":4371,"column":4411,"offset":4412},{"type":26,"value":4417,"position":4418}," plot keeps it data-only.",{"start":4419,"end":4420},{"line":4371,"column":4411,"offset":4412},{"line":4371,"column":39,"offset":4421},11031,{"start":4423,"end":4425},{"line":4371,"column":20,"offset":4424},10887,{"line":4371,"column":39,"offset":4421},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4428,"children":4429,"position":4614},{},[4430,4446,4452,4465,4470,4482,4487,4498,4503,4516,4523,4535,4540,4552,4559,4572,4578,4590,4596,4608],{"type":30,"tagName":2636,"properties":4431,"children":4432,"position":4441},{},[4433],{"type":26,"value":4434,"position":4435},"Colors.",{"start":4436,"end":4438},{"line":3268,"column":38,"offset":4437},11036,{"line":3268,"column":4439,"offset":4440},12,11043,{"start":4442,"end":4444},{"line":3268,"column":2643,"offset":4443},11034,{"line":3268,"column":3536,"offset":4445},11045,{"type":26,"value":4447,"position":4448}," The box declaration takes ",{"start":4449,"end":4450},{"line":3268,"column":3536,"offset":4445},{"line":3268,"column":3807,"offset":4451},11072,{"type":30,"tagName":44,"properties":4453,"children":4454,"position":4462},{},[4455],{"type":26,"value":4456,"position":4457},"color",{"start":4458,"end":4459},{"line":3268,"column":3807,"offset":4451},{"line":3268,"column":4460,"offset":4461},48,11079,{"start":4463,"end":4464},{"line":3268,"column":3807,"offset":4451},{"line":3268,"column":4460,"offset":4461},{"type":26,"value":492,"position":4466},{"start":4467,"end":4468},{"line":3268,"column":4460,"offset":4461},{"line":3268,"column":3888,"offset":4469},11081,{"type":30,"tagName":44,"properties":4471,"children":4472,"position":4479},{},[4473],{"type":26,"value":4474,"position":4475},"borderColor",{"start":4476,"end":4477},{"line":3268,"column":3888,"offset":4469},{"line":3268,"column":9,"offset":4478},11094,{"start":4480,"end":4481},{"line":3268,"column":3888,"offset":4469},{"line":3268,"column":9,"offset":4478},{"type":26,"value":492,"position":4483},{"start":4484,"end":4485},{"line":3268,"column":9,"offset":4478},{"line":3268,"column":2851,"offset":4486},11096,{"type":30,"tagName":44,"properties":4488,"children":4489,"position":4495},{},[4490],{"type":26,"value":1713,"position":4491},{"start":4492,"end":4493},{"line":3268,"column":2851,"offset":4486},{"line":3268,"column":3533,"offset":4494},11105,{"start":4496,"end":4497},{"line":3268,"column":2851,"offset":4486},{"line":3268,"column":3533,"offset":4494},{"type":26,"value":2675,"position":4499},{"start":4500,"end":4501},{"line":3268,"column":3533,"offset":4494},{"line":3268,"column":3591,"offset":4502},11110,{"type":30,"tagName":44,"properties":4504,"children":4505,"position":4513},{},[4506],{"type":26,"value":4507,"position":4508},"borderWidth",{"start":4509,"end":4510},{"line":3268,"column":3591,"offset":4502},{"line":3268,"column":4511,"offset":4512},92,11123,{"start":4514,"end":4515},{"line":3268,"column":3591,"offset":4502},{"line":3268,"column":4511,"offset":4512},{"type":26,"value":4517,"position":4518},", the label declaration ",{"start":4519,"end":4520},{"line":3268,"column":4511,"offset":4512},{"line":3268,"column":4521,"offset":4522},116,11147,{"type":30,"tagName":44,"properties":4524,"children":4525,"position":4532},{},[4526],{"type":26,"value":4456,"position":4527},{"start":4528,"end":4529},{"line":3268,"column":4521,"offset":4522},{"line":3268,"column":4530,"offset":4531},123,11154,{"start":4533,"end":4534},{"line":3268,"column":4521,"offset":4522},{"line":3268,"column":4530,"offset":4531},{"type":26,"value":2675,"position":4536},{"start":4537,"end":4538},{"line":3268,"column":4530,"offset":4531},{"line":3268,"column":23,"offset":4539},11159,{"type":30,"tagName":44,"properties":4541,"children":4542,"position":4549},{},[4543],{"type":26,"value":4544,"position":4545},"size",{"start":4546,"end":4547},{"line":3268,"column":23,"offset":4539},{"line":3268,"column":3926,"offset":4548},11165,{"start":4550,"end":4551},{"line":3268,"column":23,"offset":4539},{"line":3268,"column":3926,"offset":4548},{"type":26,"value":4553,"position":4554},"; per handle, ",{"start":4555,"end":4556},{"line":3268,"column":3926,"offset":4548},{"line":3268,"column":4557,"offset":4558},148,11179,{"type":30,"tagName":44,"properties":4560,"children":4561,"position":4569},{},[4562],{"type":26,"value":4563,"position":4564},"fill(rgba(...))",{"start":4565,"end":4566},{"line":3268,"column":4557,"offset":4558},{"line":3268,"column":4567,"offset":4568},165,11196,{"start":4570,"end":4571},{"line":3268,"column":4557,"offset":4558},{"line":3268,"column":4567,"offset":4568},{"type":26,"value":492,"position":4573},{"start":4574,"end":4575},{"line":3268,"column":4567,"offset":4568},{"line":3268,"column":4576,"offset":4577},167,11198,{"type":30,"tagName":44,"properties":4579,"children":4580,"position":4587},{},[4581],{"type":26,"value":4582,"position":4583},"color(rgb(...))",{"start":4584,"end":4585},{"line":3268,"column":4576,"offset":4577},{"line":3268,"column":4187,"offset":4586},11215,{"start":4588,"end":4589},{"line":3268,"column":4576,"offset":4577},{"line":3268,"column":4187,"offset":4586},{"type":26,"value":2675,"position":4591},{"start":4592,"end":4593},{"line":3268,"column":4187,"offset":4586},{"line":3268,"column":4594,"offset":4595},189,11220,{"type":30,"tagName":44,"properties":4597,"children":4598,"position":4605},{},[4599],{"type":26,"value":4600,"position":4601},"opacity(...)",{"start":4602,"end":4603},{"line":3268,"column":4594,"offset":4595},{"line":3268,"column":2943,"offset":4604},11234,{"start":4606,"end":4607},{"line":3268,"column":4594,"offset":4595},{"line":3268,"column":2943,"offset":4604},{"type":26,"value":4609,"position":4610}," restyle one object.",{"start":4611,"end":4612},{"line":3268,"column":2943,"offset":4604},{"line":3268,"column":4197,"offset":4613},11254,{"start":4615,"end":4617},{"line":3268,"column":20,"offset":4616},11032,{"line":3268,"column":4197,"offset":4613},{"type":26,"value":27},{"start":4620,"end":4621},{"line":2679,"column":20,"offset":4116},{"line":3268,"column":4197,"offset":4613},{"type":26,"value":27},{"type":30,"tagName":31,"properties":4624,"children":4625,"position":4634},{},[4626],{"type":26,"value":4627,"position":4628},"Scaffold, build, install, and read the flow figure on your machine:",{"start":4629,"end":4632},{"line":4630,"column":20,"offset":4631},89,11256,{"line":4630,"column":4143,"offset":4633},11323,{"start":4635,"end":4636},{"line":4630,"column":20,"offset":4631},{"line":4630,"column":4143,"offset":4633},{"type":26,"value":27},{"type":13,"children":4639},[4640],{"type":30,"tagName":252,"properties":4641,"children":4642,"data":-1},{"class":254,"style":255,"tabindex":256},[4643],{"type":30,"tagName":44,"properties":4644,"children":4645},{},[4646,4684,4685,4705,4706,4731,4732],{"type":30,"tagName":262,"properties":4647,"children":4648},{"class":264},[4649,4654,4659,4664,4669,4674,4679],{"type":30,"tagName":262,"properties":4650,"children":4651},{"style":474},[4652],{"type":26,"value":4653},"om",{"type":30,"tagName":262,"properties":4655,"children":4656},{"style":295},[4657],{"type":26,"value":4658}," wrun",{"type":30,"tagName":262,"properties":4660,"children":4661},{"style":295},[4662],{"type":26,"value":4663}," create",{"type":30,"tagName":262,"properties":4665,"children":4666},{"style":295},[4667],{"type":26,"value":4668}," @you/hud-terminal",{"type":30,"tagName":262,"properties":4670,"children":4671},{"style":295},[4672],{"type":26,"value":4673}," ./hud-terminal",{"type":30,"tagName":262,"properties":4675,"children":4676},{"style":495},[4677],{"type":26,"value":4678}," --template",{"type":30,"tagName":262,"properties":4680,"children":4681},{"style":295},[4682],{"type":26,"value":4683}," hud-terminal",{"type":26,"value":27},{"type":30,"tagName":262,"properties":4686,"children":4687},{"class":264},[4688,4692,4696,4701],{"type":30,"tagName":262,"properties":4689,"children":4690},{"style":474},[4691],{"type":26,"value":4653},{"type":30,"tagName":262,"properties":4693,"children":4694},{"style":295},[4695],{"type":26,"value":4658},{"type":30,"tagName":262,"properties":4697,"children":4698},{"style":295},[4699],{"type":26,"value":4700}," build",{"type":30,"tagName":262,"properties":4702,"children":4703},{"style":295},[4704],{"type":26,"value":4673},{"type":26,"value":27},{"type":30,"tagName":262,"properties":4707,"children":4708},{"class":264},[4709,4713,4717,4722,4726],{"type":30,"tagName":262,"properties":4710,"children":4711},{"style":474},[4712],{"type":26,"value":4653},{"type":30,"tagName":262,"properties":4714,"children":4715},{"style":295},[4716],{"type":26,"value":4658},{"type":30,"tagName":262,"properties":4718,"children":4719},{"style":295},[4720],{"type":26,"value":4721}," install",{"type":30,"tagName":262,"properties":4723,"children":4724},{"style":295},[4725],{"type":26,"value":4673},{"type":30,"tagName":262,"properties":4727,"children":4728},{"style":495},[4729],{"type":26,"value":4730}," --replace",{"type":26,"value":27},{"type":30,"tagName":262,"properties":4733,"children":4734},{"class":264},[4735,4739,4744,4749,4754,4759,4764,4769,4774,4779,4784],{"type":30,"tagName":262,"properties":4736,"children":4737},{"style":474},[4738],{"type":26,"value":4653},{"type":30,"tagName":262,"properties":4740,"children":4741},{"style":295},[4742],{"type":26,"value":4743}," metric",{"type":30,"tagName":262,"properties":4745,"children":4746},{"style":295},[4747],{"type":26,"value":4748}," series",{"type":30,"tagName":262,"properties":4750,"children":4751},{"style":495},[4752],{"type":26,"value":4753}," --metric",{"type":30,"tagName":262,"properties":4755,"children":4756},{"style":295},[4757],{"type":26,"value":4758}," wrun/@you/hud-terminal/flow",{"type":30,"tagName":262,"properties":4760,"children":4761},{"style":495},[4762],{"type":26,"value":4763}," --symbol",{"type":30,"tagName":262,"properties":4765,"children":4766},{"style":295},[4767],{"type":26,"value":4768}," BTCUSDT",{"type":30,"tagName":262,"properties":4770,"children":4771},{"style":495},[4772],{"type":26,"value":4773}," --exchange",{"type":30,"tagName":262,"properties":4775,"children":4776},{"style":295},[4777],{"type":26,"value":4778}," BINANCE_FUTURES",{"type":30,"tagName":262,"properties":4780,"children":4781},{"style":495},[4782],{"type":26,"value":4783}," --bars",{"type":30,"tagName":262,"properties":4785,"children":4786},{"style":495},[4787],{"type":26,"value":1133},{"type":26,"value":27},{"type":30,"tagName":230,"properties":4790,"children":4792,"position":4801},{"id":4791},"concepts-used",[4793],{"type":26,"value":4794,"position":4795},"Concepts used",{"start":4796,"end":4799},{"line":4797,"column":239,"offset":4798},98,11591,{"line":4797,"column":242,"offset":4800},11604,{"start":4802,"end":4804},{"line":4797,"column":20,"offset":4803},11588,{"line":4797,"column":242,"offset":4800},{"type":26,"value":27},{"type":30,"tagName":3442,"properties":4807,"children":4808,"position":5047},{},[4809,4810,4850,4851,4899,4900,4987,4988,5017,5018,5046],{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4811,"children":4812,"position":4846},{},[4813,4828,4835],{"type":30,"tagName":101,"properties":4814,"children":4815,"position":4823},{"href":103},[4816],{"type":26,"value":106,"position":4817},{"start":4818,"end":4821},{"line":4819,"column":239,"offset":4820},100,11609,{"line":4819,"column":3788,"offset":4822},11624,{"start":4824,"end":4826},{"line":4819,"column":2643,"offset":4825},11608,{"line":4819,"column":3565,"offset":4827},11658,{"type":26,"value":4829,"position":4830}," for handles, the anchor and align words, and ",{"start":4831,"end":4832},{"line":4819,"column":3565,"offset":4827},{"line":4819,"column":4833,"offset":4834},99,11704,{"type":30,"tagName":44,"properties":4836,"children":4837,"position":4843},{},[4838],{"type":26,"value":169,"position":4839},{"start":4840,"end":4841},{"line":4819,"column":4833,"offset":4834},{"line":4819,"column":109,"offset":4842},11718,{"start":4844,"end":4845},{"line":4819,"column":4833,"offset":4834},{"line":4819,"column":109,"offset":4842},{"start":4847,"end":4849},{"line":4819,"column":20,"offset":4848},11606,{"line":4819,"column":109,"offset":4842},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4852,"children":4853,"position":4895},{},[4854,4871,4877,4889],{"type":30,"tagName":101,"properties":4855,"children":4857,"position":4866},{"href":4856},"../functions/string-functions.md",[4858],{"type":26,"value":4859,"position":4860},"String functions",{"start":4861,"end":4864},{"line":4862,"column":239,"offset":4863},101,11722,{"line":4862,"column":3209,"offset":4865},11738,{"start":4867,"end":4869},{"line":4862,"column":2643,"offset":4868},11721,{"line":4862,"column":4035,"offset":4870},11773,{"type":26,"value":4872,"position":4873}," for the ",{"start":4874,"end":4875},{"line":4862,"column":4035,"offset":4870},{"line":4862,"column":3638,"offset":4876},11782,{"type":30,"tagName":44,"properties":4878,"children":4879,"position":4886},{},[4880],{"type":26,"value":4881,"position":4882},"sb_*",{"start":4883,"end":4884},{"line":4862,"column":3638,"offset":4876},{"line":4862,"column":4317,"offset":4885},11788,{"start":4887,"end":4888},{"line":4862,"column":3638,"offset":4876},{"line":4862,"column":4317,"offset":4885},{"type":26,"value":4890,"position":4891}," builder and the slot senders",{"start":4892,"end":4893},{"line":4862,"column":4317,"offset":4885},{"line":4862,"column":4833,"offset":4894},11817,{"start":4896,"end":4898},{"line":4862,"column":20,"offset":4897},11719,{"line":4862,"column":4833,"offset":4894},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4901,"children":4902,"position":4983},{},[4903,4921,4928,4939,4945,4957,4964,4977],{"type":30,"tagName":101,"properties":4904,"children":4906,"position":4915},{"href":4905},"../core-concepts/data-sources.md",[4907],{"type":26,"value":4908,"position":4909},"Data sources",{"start":4910,"end":4913},{"line":4911,"column":239,"offset":4912},102,11821,{"line":4911,"column":2625,"offset":4914},11833,{"start":4916,"end":4918},{"line":4911,"column":2643,"offset":4917},11820,{"line":4911,"column":4919,"offset":4920},51,11868,{"type":26,"value":4922,"position":4923}," for ",{"start":4924,"end":4925},{"line":4911,"column":4919,"offset":4920},{"line":4911,"column":4926,"offset":4927},56,11873,{"type":30,"tagName":44,"properties":4929,"children":4930,"position":4936},{},[4931],{"type":26,"value":3264,"position":4932},{"start":4933,"end":4934},{"line":4911,"column":4926,"offset":4927},{"line":4911,"column":3432,"offset":4935},11888,{"start":4937,"end":4938},{"line":4911,"column":4926,"offset":4927},{"line":4911,"column":3432,"offset":4935},{"type":26,"value":4940,"position":4941}," with a ",{"start":4942,"end":4943},{"line":4911,"column":3432,"offset":4935},{"line":4911,"column":3591,"offset":4944},11896,{"type":30,"tagName":44,"properties":4946,"children":4947,"position":4954},{},[4948],{"type":26,"value":4949,"position":4950},"side",{"start":4951,"end":4952},{"line":4911,"column":3591,"offset":4944},{"line":4911,"column":4284,"offset":4953},11902,{"start":4955,"end":4956},{"line":4911,"column":3591,"offset":4944},{"line":4911,"column":4284,"offset":4953},{"type":26,"value":4958,"position":4959}," and the ",{"start":4960,"end":4961},{"line":4911,"column":4284,"offset":4953},{"line":4911,"column":4962,"offset":4963},94,11911,{"type":30,"tagName":44,"properties":4965,"children":4966,"position":4974},{},[4967],{"type":26,"value":4968,"position":4969},"missing",{"start":4970,"end":4971},{"line":4911,"column":4962,"offset":4963},{"line":4911,"column":4972,"offset":4973},103,11920,{"start":4975,"end":4976},{"line":4911,"column":4962,"offset":4963},{"line":4911,"column":4972,"offset":4973},{"type":26,"value":4978,"position":4979}," policies",{"start":4980,"end":4981},{"line":4911,"column":4972,"offset":4973},{"line":4911,"column":98,"offset":4982},11929,{"start":4984,"end":4986},{"line":4911,"column":20,"offset":4985},11818,{"line":4911,"column":98,"offset":4982},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":4989,"children":4990,"position":5013},{},[4991,5007],{"type":30,"tagName":101,"properties":4992,"children":4994,"position":5002},{"href":4993},"../core-concepts/execution-model.md",[4995],{"type":26,"value":4996,"position":4997},"Execution model",{"start":4998,"end":5000},{"line":4972,"column":239,"offset":4999},11933,{"line":4972,"column":3788,"offset":5001},11948,{"start":5003,"end":5005},{"line":4972,"column":2643,"offset":5004},11932,{"line":4972,"column":3898,"offset":5006},11986,{"type":26,"value":5008,"position":5009}," for the module-level ring and where the live bar is evaluated",{"start":5010,"end":5011},{"line":4972,"column":3898,"offset":5006},{"line":4972,"column":3862,"offset":5012},12048,{"start":5014,"end":5016},{"line":4972,"column":20,"offset":5015},11930,{"line":4972,"column":3862,"offset":5012},{"type":26,"value":27},{"type":30,"tagName":3447,"properties":5019,"children":5020,"position":5042},{},[5021,5036],{"type":30,"tagName":101,"properties":5022,"children":5023,"position":5030},{"href":3320},[5024],{"type":26,"value":3323,"position":5025},{"start":5026,"end":5028},{"line":3942,"column":239,"offset":5027},12052,{"line":3942,"column":3546,"offset":5029},12066,{"start":5031,"end":5033},{"line":3942,"column":2643,"offset":5032},12051,{"line":3942,"column":5034,"offset":5035},38,12086,{"type":26,"value":5037,"position":5038}," for the side-split tape this recipe folds into a rolling sum",{"start":5039,"end":5040},{"line":3942,"column":5034,"offset":5035},{"line":3942,"column":4833,"offset":5041},12147,{"start":5043,"end":5045},{"line":3942,"column":20,"offset":5044},12049,{"line":3942,"column":4833,"offset":5041},{"type":26,"value":27},{"start":5048,"end":5049},{"line":4819,"column":20,"offset":4848},{"line":3942,"column":4833,"offset":5041},{"quirksMode":5051},false,{"start":5053,"end":5054},{"line":20,"column":20,"offset":21},{"line":4062,"column":20,"offset":5055},12148,1790157165603]