pi-firecode 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +35 -15
  2. package/activity.ts +92 -0
  3. package/busy.ts +188 -0
  4. package/config.example.jsonc +38 -47
  5. package/config.ts +198 -172
  6. package/deliver.ts +100 -13
  7. package/flame.ts +149 -0
  8. package/format.ts +84 -31
  9. package/header.ts +208 -82
  10. package/index.ts +17 -11
  11. package/master/actions.ts +293 -0
  12. package/master/activity-list.ts +281 -0
  13. package/master/event-card.ts +18 -37
  14. package/master/event-format.ts +71 -40
  15. package/master/guard.ts +46 -0
  16. package/master/index.ts +88 -1036
  17. package/master/list-view.ts +129 -0
  18. package/master/outbox.ts +188 -0
  19. package/master/prompts/master.zh.md +18 -13
  20. package/master/prompts/worker.zh.md +1 -1
  21. package/master/role.ts +6 -1
  22. package/master/run.ts +315 -0
  23. package/master/runtime.ts +259 -0
  24. package/master/spawn.ts +79 -38
  25. package/master/state.ts +30 -6
  26. package/master/worker-view.ts +517 -0
  27. package/package.json +1 -1
  28. package/provider/claude-sub.ts +35 -13
  29. package/provider/openai-native/src/compact-client.ts +2 -14
  30. package/provider/openai-native/src/options.ts +4 -2
  31. package/review/advisor.ts +0 -2
  32. package/review/card.ts +36 -23
  33. package/review/checkpoint.ts +2 -8
  34. package/review/evidence.ts +42 -44
  35. package/review/index.ts +271 -525
  36. package/review/occupancy.ts +25 -0
  37. package/review/outcome.ts +31 -7
  38. package/review/prompt.ts +7 -8
  39. package/review/prompts/review.en.md +7 -6
  40. package/review/prompts/review.zh.md +7 -6
  41. package/review/reviewer.ts +2 -5
  42. package/review/session.ts +11 -30
  43. package/review/state.ts +32 -60
  44. package/review/ui.ts +30 -469
  45. package/round-recorder.ts +18 -0
  46. package/session/herdr-display.ts +1 -1
  47. package/session/presets.ts +130 -87
  48. package/session/quota.ts +123 -0
  49. package/session/stats.ts +4 -1
  50. package/statusbar/index.ts +242 -104
  51. package/statusbar/render.ts +95 -163
  52. package/theme.ts +2 -41
  53. package/tools/actions.ts +53 -0
  54. package/tools/assistant-view.ts +64 -0
  55. package/tools/click-anchor.ts +56 -0
  56. package/tools/group-view.ts +420 -0
  57. package/tools/grouping.ts +146 -221
  58. package/tools/host.ts +369 -0
  59. package/tools/index.ts +108 -105
  60. package/tools/line.ts +95 -58
  61. package/tools/machine.ts +78 -0
  62. package/tools/parts.ts +2 -2
  63. package/tools/round.ts +95 -0
  64. package/tools/turn-clock.ts +41 -0
  65. package/tools/turn-summary.ts +109 -0
  66. package/truncated-write.ts +18 -0
  67. package/watcher/card.ts +28 -22
  68. package/watcher/index.ts +16 -44
  69. package/watcher/observer.ts +3 -3
  70. package/watcher/prompts/watch.zh.md +1 -1
  71. package/watcher/transcript.ts +4 -12
  72. package/flame-frames.ts +0 -460
  73. package/review/progress.ts +0 -324
  74. package/session/bark.ts +0 -157
  75. package/session/working-flame.ts +0 -116
  76. package/statusbar/quota-cache.ts +0 -60
  77. package/statusbar/quota-parse.ts +0 -85
  78. package/statusbar/quota.ts +0 -203
  79. package/statusbar/tps.ts +0 -87
package/flame-frames.ts DELETED
@@ -1,460 +0,0 @@
1
- // Generated flame frame asset for pi-flow activity boxes.
2
- // Bundled activity-frame asset.
3
-
4
- const FRAMES = [
5
- [
6
- " \u001b[0m",
7
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m+::\u001b[38;2;79;58;34m. \u001b[0m",
8
- " \u001b[38;2;166;93;65m:++\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m++:\u001b[38;2;79;58;34m:. \u001b[0m",
9
- " \u001b[38;2;166;93;65m:++\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m+:::\u001b[38;2;79;58;34m: \u001b[0m",
10
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;25;5m++\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m: \u001b[0m",
11
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m*\u001b[38;2;255;141;9m##\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m+\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
12
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m@#\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m#\u001b[38;2;255;83;7m*\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
13
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m#@@@\u001b[38;2;255;200;11m@\u001b[38;2;255;228;12m#\u001b[38;2;255;141;9m#\u001b[38;2;79;58;34m:. \u001b[0m",
14
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m*\u001b[38;2;39;33;36m. \u001b[0m",
15
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m#\u001b[38;2;79;58;34m: \u001b[0m",
16
- ],
17
- [
18
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m.. \u001b[0m",
19
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m+++:\u001b[38;2;79;58;34m:. \u001b[0m",
20
- " \u001b[38;2;79;58;34m.:\u001b[38;2;166;93;65m:++++:\u001b[38;2;79;58;34m.. \u001b[0m",
21
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m**+\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m:. \u001b[0m",
22
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m++\u001b[38;2;255;141;9m**\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m::. \u001b[0m",
23
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;141;9m#####*\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m: \u001b[0m",
24
- " \u001b[38;2;255;141;9m##\u001b[38;2;255;200;11m####\u001b[38;2;255;141;9m#*\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
25
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m###@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m#\u001b[38;2;255;83;7m*\u001b[38;2;39;33;36m. \u001b[0m",
26
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m#\u001b[38;2;255;83;7m* \u001b[0m",
27
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m##\u001b[38;2;255;83;7m* \u001b[0m",
28
- ],
29
- [
30
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m::\u001b[38;2;39;33;36m. \u001b[0m",
31
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m. \u001b[0m",
32
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
33
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;27;13m++\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m::\u001b[38;2;39;33;36m. \u001b[0m",
34
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*#\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
35
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m###*\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
36
- " \u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#####\u001b[38;2;255;141;9m#\u001b[38;2;255;83;7m*\u001b[38;2;39;33;36m.. \u001b[0m",
37
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m##\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;83;7m*\u001b[38;2;39;33;36m. \u001b[0m",
38
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m* \u001b[0m",
39
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m**\u001b[38;2;255;83;7m* \u001b[0m",
40
- ],
41
- [
42
- " \u001b[38;2;39;33;36m..\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m:.\u001b[38;2;39;33;36m. \u001b[0m",
43
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m::+:\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
44
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m+:\u001b[38;2;79;58;34m:.\u001b[38;2;39;33;36m. \u001b[0m",
45
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m++\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m..\u001b[38;2;39;33;36m. \u001b[0m",
46
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++\u001b[38;2;255;141;9m*##\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
47
- " \u001b[38;2;255;141;9m#####**\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
48
- " \u001b[38;2;255;141;9m####\u001b[38;2;255;200;11m##\u001b[38;2;255;141;9m#\u001b[38;2;255;83;7m*\u001b[38;2;39;33;36m. \u001b[0m",
49
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#@\u001b[38;2;255;228;12m@@@@\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+ \u001b[0m",
50
- " \u001b[38;2;39;33;36m:\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m** \u001b[0m",
51
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m**\u001b[38;2;255;27;13m: \u001b[0m",
52
- ],
53
- [
54
- " \u001b[38;2;39;33;36m..\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m:: \u001b[0m",
55
- " \u001b[38;2;39;33;36m..\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m: \u001b[0m",
56
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m+++\u001b[38;2;79;58;34m: \u001b[0m",
57
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m++\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m:: \u001b[0m",
58
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*****\u001b[38;2;39;33;36m. \u001b[0m",
59
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m####*\u001b[38;2;255;83;7m**\u001b[38;2;255;27;13m+ \u001b[0m",
60
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m######\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m*\u001b[38;2;39;33;36m. \u001b[0m",
61
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m* \u001b[0m",
62
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m* \u001b[0m",
63
- " \u001b[38;2;166;93;65m+\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+ \u001b[0m",
64
- ],
65
- [
66
- " \u001b[38;2;39;33;36m..\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m:: \u001b[0m",
67
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m:: \u001b[0m",
68
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m: \u001b[0m",
69
- " \u001b[38;2;166;93;65m::+\u001b[38;2;255;83;7m***\u001b[38;2;255;25;5m*\u001b[38;2;255;27;13m+ \u001b[0m",
70
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;83;7m*******\u001b[38;2;166;93;65m: \u001b[0m",
71
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*##*\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m*\u001b[38;2;255;27;13m+ \u001b[0m",
72
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m*###\u001b[38;2;255;200;11m##\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m*\u001b[38;2;39;33;36m. \u001b[0m",
73
- " \u001b[38;2;255;27;13m:\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@@@@\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m* \u001b[0m",
74
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m#\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m* \u001b[0m",
75
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+ \u001b[0m",
76
- ],
77
- [
78
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m: \u001b[0m",
79
- " \u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
80
- " \u001b[38;2;166;93;65m:::\u001b[38;2;255;25;5m+*\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
81
- " \u001b[38;2;166;93;65m::\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m***\u001b[38;2;255;25;5m++\u001b[38;2;39;33;36m. \u001b[0m",
82
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*****\u001b[38;2;255;25;5m*+\u001b[38;2;79;58;34m: \u001b[0m",
83
- " \u001b[38;2;255;83;7m*******\u001b[38;2;255;25;5m*\u001b[38;2;255;27;13m+ \u001b[0m",
84
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m##\u001b[38;2;255;141;9m###\u001b[38;2;255;25;5m*+ \u001b[0m",
85
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@@\u001b[38;2;255;200;11m#\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
86
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m@\u001b[38;2;255;25;5m*+ \u001b[0m",
87
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m*\u001b[38;2;39;33;36m. \u001b[0m",
88
- ],
89
- [
90
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m.: \u001b[0m",
91
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m::\u001b[38;2;255;25;5m**\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
92
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m+ \u001b[0m",
93
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m****\u001b[38;2;255;25;5m**\u001b[38;2;79;58;34m: \u001b[0m",
94
- " \u001b[38;2;255;83;7m+******\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
95
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*******\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
96
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m###\u001b[38;2;255;200;11m###\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
97
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;228;12m@@@\u001b[38;2;255;200;11m@@@\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
98
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m@\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
99
- " \u001b[38;2;255;141;9m*\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m# \u001b[0m",
100
- ],
101
- [
102
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::+:\u001b[38;2;79;58;34m: \u001b[0m",
103
- " \u001b[38;2;79;58;34m.:\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m++\u001b[38;2;166;93;65m+\u001b[38;2;79;58;34m.. \u001b[0m",
104
- " \u001b[38;2;79;58;34m.:\u001b[38;2;255;25;5m++**\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
105
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m*****++\u001b[38;2;166;93;65m: \u001b[0m",
106
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*****\u001b[38;2;255;25;5m++\u001b[38;2;166;93;65m: \u001b[0m",
107
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*******\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m: \u001b[0m",
108
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m#\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m###\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+ \u001b[0m",
109
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@@@@\u001b[38;2;255;200;11m##\u001b[38;2;255;83;7m*\u001b[38;2;255;27;13m+ \u001b[0m",
110
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
111
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m# \u001b[0m",
112
- ],
113
- [
114
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m:::\u001b[38;2;79;58;34m: \u001b[0m",
115
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m++\u001b[38;2;39;33;36m. \u001b[0m",
116
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m+**\u001b[38;2;166;93;65m++: \u001b[0m",
117
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*****++\u001b[38;2;166;93;65m: \u001b[0m",
118
- " \u001b[38;2;255;25;5m******++\u001b[38;2;166;93;65m+\u001b[38;2;39;33;36m. \u001b[0m",
119
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m*\u001b[38;2;255;141;9m###*##\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
120
- " \u001b[38;2;255;141;9m##\u001b[38;2;255;200;11m#####\u001b[38;2;255;25;5m*\u001b[38;2;255;27;13m+ \u001b[0m",
121
- " \u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@@\u001b[38;2;255;200;11m##\u001b[38;2;255;27;13m++ \u001b[0m",
122
- " \u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@\u001b[38;2;255;228;12m@\u001b[38;2;255;141;9m#\u001b[38;2;39;33;36m. \u001b[0m",
123
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m# \u001b[0m",
124
- ],
125
- [
126
- " \u001b[38;2;79;58;34m::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m:\u001b[38;2;79;58;34m. \u001b[0m",
127
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m++\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m. \u001b[0m",
128
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m++++\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m: \u001b[0m",
129
- " \u001b[38;2;255;25;5m+*****+\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
130
- " \u001b[38;2;255;25;5m+*****++\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
131
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m***\u001b[38;2;255;141;9m###\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
132
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m####\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
133
- " \u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@@@\u001b[38;2;255;141;9m#\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
134
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;141;9m# \u001b[0m",
135
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;255;255m@@@@@@\u001b[38;2;255;27;13m+ \u001b[0m",
136
- ],
137
- [
138
- " \u001b[38;2;79;58;34m::\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
139
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+++\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m: \u001b[0m",
140
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+++++\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m: \u001b[0m",
141
- " \u001b[38;2;255;25;5m+++++++\u001b[38;2;255;27;13m++\u001b[38;2;39;33;36m. \u001b[0m",
142
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+++++++\u001b[38;2;166;93;65m:: \u001b[0m",
143
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;83;7m***\u001b[38;2;255;141;9m###*\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
144
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m######*\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
145
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@@#\u001b[38;2;255;141;9m#\u001b[38;2;255;25;5m* \u001b[0m",
146
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m#\u001b[38;2;166;93;65m: \u001b[0m",
147
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;27;13m+ \u001b[0m",
148
- ],
149
- [
150
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m:\u001b[38;2;39;33;36m. \u001b[0m",
151
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+++++\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m: \u001b[0m",
152
- " \u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+++\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
153
- " \u001b[38;2;255;27;13m+++\u001b[38;2;255;25;5m+++\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
154
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+++\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+++\u001b[38;2;166;93;65m:: \u001b[0m",
155
- " \u001b[38;2;255;83;7m**\u001b[38;2;255;141;9m*#####\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
156
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m@@\u001b[38;2;255;141;9m###\u001b[38;2;255;83;7m*\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
157
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m@@\u001b[38;2;255;141;9m#\u001b[38;2;255;25;5m* \u001b[0m",
158
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m#\u001b[38;2;166;93;65m: \u001b[0m",
159
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m* \u001b[0m",
160
- ],
161
- [
162
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+++\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m: \u001b[0m",
163
- " \u001b[38;2;255;27;13m++++++\u001b[38;2;166;93;65m++\u001b[38;2;79;58;34m: \u001b[0m",
164
- " \u001b[38;2;255;27;13m+++++++\u001b[38;2;166;93;65m++\u001b[38;2;39;33;36m. \u001b[0m",
165
- " \u001b[38;2;255;27;13m++++++++\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
166
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m***\u001b[38;2;255;25;5m+\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
167
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m**\u001b[38;2;255;141;9m****\u001b[38;2;255;83;7m*\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
168
- " \u001b[38;2;255;83;7m**\u001b[38;2;255;200;11m###\u001b[38;2;255;141;9m**\u001b[38;2;255;83;7m*\u001b[38;2;79;58;34m: \u001b[0m",
169
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m####\u001b[38;2;255;83;7m*\u001b[38;2;166;93;65m: \u001b[0m",
170
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m#\u001b[38;2;166;93;65m: \u001b[0m",
171
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m* \u001b[0m",
172
- ],
173
- [
174
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+++++\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m: \u001b[0m",
175
- " \u001b[38;2;255;27;13m+++++++\u001b[38;2;166;93;65m::\u001b[38;2;39;33;36m. \u001b[0m",
176
- " \u001b[38;2;255;27;13m+++++++\u001b[38;2;166;93;65m::\u001b[38;2;39;33;36m. \u001b[0m",
177
- " \u001b[38;2;255;27;13m++++++++\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
178
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m***\u001b[38;2;255;83;7m***\u001b[38;2;255;25;5m+\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
179
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;83;7m***\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m****\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
180
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;83;7m**\u001b[38;2;255;200;11m####\u001b[38;2;255;83;7m** \u001b[0m",
181
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#####\u001b[38;2;255;83;7m*\u001b[38;2;166;93;65m: \u001b[0m",
182
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m#\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m. \u001b[0m",
183
- " \u001b[38;2;255;27;13m+\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m+ \u001b[0m",
184
- ],
185
- [
186
- " \u001b[38;2;166;93;65m+++++:\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::\u001b[38;2;39;33;36m. \u001b[0m",
187
- " \u001b[38;2;166;93;65m+++++\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m::\u001b[38;2;79;58;34m: \u001b[0m",
188
- " \u001b[38;2;166;93;65m:++\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m+++:\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
189
- " \u001b[38;2;166;93;65m:++++\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m++:\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
190
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m*+*\u001b[38;2;255;83;7m****\u001b[38;2;255;25;5m+\u001b[38;2;39;33;36m. \u001b[0m",
191
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+*\u001b[38;2;255;200;11m##\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m***\u001b[38;2;166;93;65m: \u001b[0m",
192
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m####\u001b[38;2;255;83;7m** \u001b[0m",
193
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m##@\u001b[38;2;255;228;12m@@\u001b[38;2;255;141;9m*\u001b[38;2;166;93;65m: \u001b[0m",
194
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m. \u001b[0m",
195
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
196
- ],
197
- [
198
- " \u001b[38;2;166;93;65m::+:+:+\u001b[38;2;79;58;34m::: \u001b[0m",
199
- " \u001b[38;2;166;93;65m:::++++\u001b[38;2;79;58;34m::: \u001b[0m",
200
- " \u001b[38;2;166;93;65m::++++::\u001b[38;2;79;58;34m:.\u001b[38;2;39;33;36m. \u001b[0m",
201
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+++*\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m**\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
202
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m++*\u001b[38;2;255;83;7m*****\u001b[38;2;255;27;13m+\u001b[38;2;39;33;36m. \u001b[0m",
203
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+*\u001b[38;2;255;141;9m####\u001b[38;2;255;83;7m**\u001b[38;2;166;93;65m: \u001b[0m",
204
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m*\u001b[38;2;255;141;9m#####\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
205
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@\u001b[38;2;255;200;11m@\u001b[38;2;255;83;7m*\u001b[38;2;79;58;34m: \u001b[0m",
206
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m: \u001b[0m",
207
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;255;255m@@@@@@\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m: \u001b[0m",
208
- ],
209
- [
210
- " \u001b[38;2;166;93;65m:::::::\u001b[38;2;79;58;34m::. \u001b[0m",
211
- " \u001b[38;2;166;93;65m::::::::\u001b[38;2;79;58;34m. \u001b[0m",
212
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:+++\u001b[38;2;255;25;5m++\u001b[38;2;166;93;65m:: \u001b[0m",
213
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:++\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m****\u001b[38;2;255;27;13m+ \u001b[0m",
214
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m+****** \u001b[0m",
215
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+*\u001b[38;2;255;141;9m###*\u001b[38;2;255;25;5m**\u001b[38;2;166;93;65m: \u001b[0m",
216
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m####*\u001b[38;2;255;25;5m*+ \u001b[0m",
217
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m@\u001b[38;2;255;83;7m*\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
218
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m@\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m: \u001b[0m",
219
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;255;255m@@@@@@\u001b[38;2;255;25;5m*\u001b[38;2;166;93;65m: \u001b[0m",
220
- ],
221
- [
222
- " \u001b[38;2;166;93;65m:::::::\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
223
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::::::\u001b[38;2;79;58;34m:. \u001b[0m",
224
- " \u001b[38;2;79;58;34m.:\u001b[38;2;255;27;13m+++\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m:: \u001b[0m",
225
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m++****\u001b[38;2;255;27;13m+ \u001b[0m",
226
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m****+ \u001b[0m",
227
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m####\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
228
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;141;9m*#\u001b[38;2;255;200;11m###\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m* \u001b[0m",
229
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@\u001b[38;2;255;200;11m##\u001b[38;2;255;25;5m*\u001b[38;2;79;58;34m: \u001b[0m",
230
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
231
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;255;255m@@@@@@\u001b[38;2;166;93;65m:: \u001b[0m",
232
- ],
233
- [
234
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::::::\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
235
- " \u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m:::\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m:: \u001b[0m",
236
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++++\u001b[38;2;255;25;5m+++\u001b[38;2;166;93;65m: \u001b[0m",
237
- " \u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m++++++\u001b[38;2;255;27;13m+ \u001b[0m",
238
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m++\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m++\u001b[38;2;255;27;13m+ \u001b[0m",
239
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m***\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+ \u001b[0m",
240
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m###\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
241
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m@#\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
242
- " \u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@@\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m: \u001b[0m",
243
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@@@\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
244
- ],
245
- [
246
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::::::::\u001b[38;2;39;33;36m. \u001b[0m",
247
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:++\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m:.\u001b[38;2;39;33;36m. \u001b[0m",
248
- " \u001b[38;2;166;93;65m:+++\u001b[38;2;255;27;13m+++\u001b[38;2;255;25;5m++ \u001b[0m",
249
- " \u001b[38;2;166;93;65m:++\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+++++ \u001b[0m",
250
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m++\u001b[38;2;255;83;7m****\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m++ \u001b[0m",
251
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m*****\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
252
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m#@\u001b[38;2;255;141;9m#\u001b[38;2;255;25;5m*+\u001b[38;2;79;58;34m. \u001b[0m",
253
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;141;9m#\u001b[38;2;255;25;5m+\u001b[38;2;79;58;34m: \u001b[0m",
254
- " \u001b[38;2;255;25;5m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;25;5m+\u001b[38;2;79;58;34m: \u001b[0m",
255
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@@@ \u001b[0m",
256
- ],
257
- [
258
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:::::\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m.. \u001b[0m",
259
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m: \u001b[0m",
260
- " \u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m++++\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m++ \u001b[0m",
261
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:+\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m++++ \u001b[0m",
262
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:+\u001b[38;2;255;83;7m****\u001b[38;2;255;25;5m+\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m: \u001b[0m",
263
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m**\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+ \u001b[0m",
264
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m##\u001b[38;2;255;141;9m#*\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m. \u001b[0m",
265
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m*\u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m#\u001b[38;2;255;200;11m#\u001b[38;2;255;25;5m*\u001b[38;2;79;58;34m. \u001b[0m",
266
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;166;93;65m:\u001b[38;2;39;33;36m. \u001b[0m",
267
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@@ \u001b[0m",
268
- ],
269
- [
270
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:::++\u001b[38;2;79;58;34m: \u001b[0m",
271
- " \u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m+++\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+++ \u001b[0m",
272
- " \u001b[38;2;166;93;65m::\u001b[38;2;255;27;13m++\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m++++ \u001b[0m",
273
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m***\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m++ \u001b[0m",
274
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m::\u001b[38;2;255;83;7m****\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m: \u001b[0m",
275
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m**\u001b[38;2;255;141;9m##*\u001b[38;2;255;27;13m+ \u001b[0m",
276
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#@\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m+ \u001b[0m",
277
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m@\u001b[38;2;255;141;9m# \u001b[0m",
278
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m@\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;25;5m+ \u001b[0m",
279
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@ \u001b[0m",
280
- ],
281
- [
282
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m::::::+: \u001b[0m",
283
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:+++\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m++\u001b[38;2;255;27;13m+ \u001b[0m",
284
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m::\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*+\u001b[38;2;166;93;65m+++: \u001b[0m",
285
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;83;7m****\u001b[38;2;166;93;65m++: \u001b[0m",
286
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m****\u001b[38;2;166;93;65m+:\u001b[38;2;79;58;34m: \u001b[0m",
287
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*##\u001b[38;2;255;83;7m**\u001b[38;2;255;27;13m+ \u001b[0m",
288
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m*#\u001b[38;2;255;200;11m###\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m* \u001b[0m",
289
- " \u001b[38;2;255;25;5m+\u001b[38;2;255;141;9m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;83;7m* \u001b[0m",
290
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;83;7m* \u001b[0m",
291
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;166;93;65m: \u001b[0m",
292
- ],
293
- [
294
- " \u001b[38;2;79;58;34m::::\u001b[38;2;166;93;65m:+:+: \u001b[0m",
295
- " \u001b[38;2;79;58;34m::\u001b[38;2;166;93;65m++:+++: \u001b[0m",
296
- " \u001b[38;2;79;58;34m.:\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m**+\u001b[38;2;166;93;65m+:: \u001b[0m",
297
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m****\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
298
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:+\u001b[38;2;255;25;5m****+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
299
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m##\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m+ \u001b[0m",
300
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m**\u001b[38;2;255;200;11m###\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m* \u001b[0m",
301
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;83;7m* \u001b[0m",
302
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m* \u001b[0m",
303
- " \u001b[38;2;166;93;65m+\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;200;11m#\u001b[38;2;166;93;65m: \u001b[0m",
304
- ],
305
- [
306
- " \u001b[38;2;79;58;34m.:\u001b[38;2;166;93;65m::::::: \u001b[0m",
307
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m:::: \u001b[0m",
308
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m.:\u001b[38;2;255;25;5m+*+*\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m:: \u001b[0m",
309
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m****\u001b[38;2;166;93;65m++\u001b[38;2;79;58;34m: \u001b[0m",
310
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m**\u001b[38;2;255;83;7m***\u001b[38;2;166;93;65m+\u001b[38;2;79;58;34m: \u001b[0m",
311
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m##\u001b[38;2;255;141;9m*\u001b[38;2;255;83;7m** \u001b[0m",
312
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m#\u001b[38;2;255;200;11m####\u001b[38;2;255;83;7m* \u001b[0m",
313
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@\u001b[38;2;255;228;12m@@\u001b[38;2;255;83;7m* \u001b[0m",
314
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;83;7m* \u001b[0m",
315
- " \u001b[38;2;255;27;13m:\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;200;11m#\u001b[38;2;166;93;65m: \u001b[0m",
316
- ],
317
- [
318
- " \u001b[38;2;79;58;34m..\u001b[38;2;166;93;65m::::::: \u001b[0m",
319
- " \u001b[38;2;39;33;36m..\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+++\u001b[38;2;166;93;65m::: \u001b[0m",
320
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m++++\u001b[38;2;255;27;13m+\u001b[38;2;79;58;34m:: \u001b[0m",
321
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m+++\u001b[38;2;166;93;65m++:\u001b[38;2;79;58;34m. \u001b[0m",
322
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:+\u001b[38;2;255;25;5m++***\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
323
- " \u001b[38;2;39;33;36m.\u001b[38;2;255;27;13m+\u001b[38;2;255;83;7m**\u001b[38;2;255;141;9m##*\u001b[38;2;255;83;7m*\u001b[38;2;255;25;5m+ \u001b[0m",
324
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m#\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m##\u001b[38;2;255;25;5m* \u001b[0m",
325
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@@@@@\u001b[38;2;255;25;5m* \u001b[0m",
326
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;25;5m+ \u001b[0m",
327
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;228;12m@\u001b[38;2;79;58;34m. \u001b[0m",
328
- ],
329
- [
330
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m::: \u001b[0m",
331
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;25;5m++++\u001b[38;2;255;27;13m:\u001b[38;2;79;58;34m:: \u001b[0m",
332
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m++++\u001b[38;2;166;93;65m::\u001b[38;2;39;33;36m. \u001b[0m",
333
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m+++\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
334
- " \u001b[38;2;255;27;13m++\u001b[38;2;255;25;5m+\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m*+\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m. \u001b[0m",
335
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m*\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m###*\u001b[38;2;255;25;5m* \u001b[0m",
336
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+\u001b[38;2;255;141;9m*\u001b[38;2;255;200;11m#####\u001b[38;2;255;25;5m* \u001b[0m",
337
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;141;9m# \u001b[0m",
338
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;25;5m+ \u001b[0m",
339
- " \u001b[38;2;255;25;5m*\u001b[38;2;255;255;255m@@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;27;13m+ \u001b[0m",
340
- ],
341
- [
342
- " \u001b[38;2;39;33;36m.\u001b[38;2;166;93;65m:+\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m+\u001b[38;2;79;58;34m::: \u001b[0m",
343
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;27;13m+\u001b[38;2;166;93;65m+++\u001b[38;2;79;58;34m:: \u001b[0m",
344
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m:++++::\u001b[38;2;79;58;34m. \u001b[0m",
345
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:++\u001b[38;2;255;25;5m+++\u001b[38;2;166;93;65m:\u001b[38;2;79;58;34m: \u001b[0m",
346
- " \u001b[38;2;79;58;34m.\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m++\u001b[38;2;255;83;7m**\u001b[38;2;255;25;5m++\u001b[38;2;255;27;13m+ \u001b[0m",
347
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m+\u001b[38;2;255;25;5m*\u001b[38;2;255;141;9m*###*\u001b[38;2;255;25;5m+ \u001b[0m",
348
- " \u001b[38;2;79;58;34m:\u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m##\u001b[38;2;255;228;12m@@\u001b[38;2;255;200;11m#@\u001b[38;2;255;83;7m* \u001b[0m",
349
- " \u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m##\u001b[38;2;255;255;255m@@@\u001b[38;2;255;200;11m@\u001b[38;2;255;83;7m* \u001b[0m",
350
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m#\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@\u001b[38;2;255;141;9m#\u001b[38;2;166;93;65m: \u001b[0m",
351
- " \u001b[38;2;166;93;65m+\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;228;12m@\u001b[38;2;255;27;13m+ \u001b[0m",
352
- ],
353
- [
354
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m++++\u001b[38;2;39;33;36m.. \u001b[0m",
355
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;255;27;13m+++++\u001b[38;2;79;58;34m:\u001b[38;2;39;33;36m. \u001b[0m",
356
- " \u001b[38;2;79;58;34m.:\u001b[38;2;255;27;13m+++++\u001b[38;2;79;58;34m:. \u001b[0m",
357
- " \u001b[38;2;39;33;36m.\u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m+\u001b[38;2;255;25;5m+*\u001b[38;2;255;27;13m++\u001b[38;2;79;58;34m:. \u001b[0m",
358
- " \u001b[38;2;79;58;34m:\u001b[38;2;166;93;65m:\u001b[38;2;255;27;13m++\u001b[38;2;255;83;7m*\u001b[38;2;255;141;9m*\u001b[38;2;255;25;5m+\u001b[38;2;255;27;13m++ \u001b[0m",
359
- " \u001b[38;2;79;58;34m.\u001b[38;2;255;27;13m+\u001b[38;2;255;141;9m**##**\u001b[38;2;255;25;5m+\u001b[38;2;39;33;36m. \u001b[0m",
360
- " \u001b[38;2;255;25;5m*\u001b[38;2;255;200;11m##\u001b[38;2;255;228;12m#@\u001b[38;2;255;200;11m##\u001b[38;2;255;83;7m* \u001b[0m",
361
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;200;11m##\u001b[38;2;255;255;255m@@\u001b[38;2;255;228;12m@\u001b[38;2;255;200;11m#\u001b[38;2;255;83;7m* \u001b[0m",
362
- " \u001b[38;2;255;83;7m*\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;141;9m#\u001b[38;2;79;58;34m: \u001b[0m",
363
- " \u001b[38;2;166;93;65m:\u001b[38;2;255;228;12m@\u001b[38;2;255;255;255m@@@@\u001b[38;2;255;200;11m#\u001b[38;2;255;27;13m+ \u001b[0m",
364
- ],
365
- ] as const;
366
- export const FLAME_FRAME_COUNT = FRAMES.length;
367
-
368
- const ESC = String.fromCharCode(27);
369
- const RESET = `${ESC}[0m`;
370
- const ANSI_RE = new RegExp(`${ESC}\\[[0-9;]*m`, "y");
371
-
372
- type Cell = { char: string; style: string };
373
-
374
- interface ScaledFrameCache {
375
- height: number;
376
- frames: string[][];
377
- width?: number;
378
- }
379
-
380
- let scaledFrameCache: ScaledFrameCache | undefined;
381
- const ANSI_GLOBAL = new RegExp(`${ESC}\\[[0-9;]*m`, "g");
382
-
383
- export function flameFrameLines(height: number, frameIndex: number): string[] {
384
- const frames = scaledFrames(height);
385
- const index = Number.isFinite(frameIndex) ? Math.floor(frameIndex) : 0;
386
- return frames[positiveModulo(index, frames.length)];
387
- }
388
-
389
- export function flameFrameWidth(height: number): number {
390
- const cache = scaledFrameCacheFor(height);
391
- if (cache.width !== undefined) return cache.width;
392
- cache.width = Math.max(
393
- ...cache.frames.flatMap((frame) =>
394
- frame.map((line) => line.replace(ANSI_GLOBAL, "").trimEnd().length),
395
- ),
396
- );
397
- return cache.width;
398
- }
399
-
400
- export function flameFrameCacheSize() {
401
- return scaledFrameCache ? 1 : 0;
402
- }
403
-
404
- function scaledFrames(height: number) {
405
- return scaledFrameCacheFor(height).frames;
406
- }
407
-
408
- function scaledFrameCacheFor(height: number) {
409
- const targetHeight = normalizeHeight(height);
410
- if (scaledFrameCache?.height === targetHeight) return scaledFrameCache;
411
- scaledFrameCache = {
412
- height: targetHeight,
413
- frames: FRAMES.map((frame) => scaleFrame(frame, targetHeight)),
414
- };
415
- return scaledFrameCache;
416
- }
417
-
418
- function normalizeHeight(height: number) {
419
- return Number.isFinite(height) ? Math.max(1, Math.floor(height)) : 1;
420
- }
421
-
422
- function lineCells(line: string): Cell[] {
423
- const cells: Cell[] = [];
424
- let style = "";
425
- for (let i = 0; i < line.length; ) {
426
- ANSI_RE.lastIndex = i;
427
- const ansi = ANSI_RE.exec(line);
428
- if (ansi) {
429
- style = ansi[0] === RESET ? "" : ansi[0];
430
- i = ANSI_RE.lastIndex;
431
- continue;
432
- }
433
- cells.push({ char: line[i], style });
434
- i += 1;
435
- }
436
- return cells;
437
- }
438
-
439
- function scaleFrame(frame: readonly string[], targetHeight: number): string[] {
440
- const rows = frame.map(lineCells);
441
- const scale = targetHeight / rows.length;
442
- const sourceWidth = Math.max(...rows.map((row) => row.length));
443
- const targetWidth = Math.ceil(sourceWidth * scale);
444
-
445
- return Array.from({ length: targetHeight }, (_, y) => {
446
- const sourceRow = rows[Math.floor(y / scale)];
447
- const cells = Array.from({ length: targetWidth }, (_, x) => {
448
- const cell = sourceRow[Math.floor(x / scale)];
449
- return cell ? `${cell.style}${cell.char}` : " ";
450
- });
451
- // 行尾空白格裁掉:可见宽度必须与 flameFrameWidth(trimEnd 计宽)一致,
452
- // 否则窄屏适配按小宽度放行、实际渲染却溢出。
453
- while (cells.length > 0 && (cells.at(-1) as string).endsWith(" ")) cells.pop();
454
- return `${cells.join("")}${RESET}`;
455
- });
456
- }
457
-
458
- function positiveModulo(value: number, modulo: number) {
459
- return ((value % modulo) + modulo) % modulo;
460
- }