on main help sign in
feat: crush stats (#1920)

* wip: stats Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fixup! wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: css Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * logo Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cast Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * improvements Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * provider donut Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: improvements Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * wip Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * jetbrains mono Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fixes Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: rm border Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * chore: update footer/header Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: footer class Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * refactor: move stuff around Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * refactor: improving Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: anims Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: rename vars Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * chore: remove all card borders * chore: adjust easing * fix: fail if no sessions Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: improvements Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: generated by Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: header hazy Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> Co-authored-by: Christian Rocha <christian@rocha.is>

commit0eee0616609b2c890ccc69f6a4ab3aba0b8a8630 authorCarlos Alexandro Becker <caarlos0@users.noreply.github.com> dateMon 26 Jan 2026, 12:01 (9 months ago) parent9622c25
14 files changed+3273
Taskfile.yaml+5 internal/cmd/root.go+1 internal/cmd/stats.go+384 internal/cmd/stats/AGENTS.md+3 internal/cmd/stats/footer.svg+838 internal/cmd/stats/header.svg+673 internal/cmd/stats/heartbit.svg+43 internal/cmd/stats/index.css+275 internal/cmd/stats/index.html+136 internal/cmd/stats/index.js+356 internal/db/db.go+90 internal/db/querier.go+9 internal/db/sql/stats.sql+93 internal/db/stats.sql.go+367
Taskfile.yaml+5
@@ -66,6 +66,11 @@ tasks:
6666 cmds:
6767 - gofumpt -w .
6868
69+ fmt:html:
70+ desc: Run prettier on HTML/CSS/JS files
71+ cmds:
72+ - prettier --write internal/cmd/stats/index.html internal/cmd/stats/index.css internal/cmd/stats/index.js
73+
6974 dev:
7075 desc: Run with profiling enabled
7176 env:
internal/cmd/root.go+1
@@ -51,6 +51,7 @@ func init() {
5151 logsCmd,
5252 schemaCmd,
5353 loginCmd,
54+ statsCmd,
5455 )
5556}
5657
internal/cmd/stats.gonew file+384
@@ -0,0 +1,384 @@
1+package cmd
2+
3+import (
4+ "bytes"
5+ "context"
6+ "database/sql"
7+ _ "embed"
8+ "encoding/json"
9+ "fmt"
10+ "html/template"
11+ "os"
12+ "os/user"
13+ "path/filepath"
14+ "strings"
15+ "time"
16+
17+ "github.com/charmbracelet/crush/internal/config"
18+ "github.com/charmbracelet/crush/internal/db"
19+ "github.com/pkg/browser"
20+ "github.com/spf13/cobra"
21+)
22+
23+//go:embed stats/index.html
24+var statsTemplate string
25+
26+//go:embed stats/index.css
27+var statsCSS string
28+
29+//go:embed stats/index.js
30+var statsJS string
31+
32+//go:embed stats/header.svg
33+var headerSVG string
34+
35+//go:embed stats/heartbit.svg
36+var heartbitSVG string
37+
38+//go:embed stats/footer.svg
39+var footerSVG string
40+
41+var statsCmd = &cobra.Command{
42+ Use: "stats",
43+ Short: "Show usage statistics",
44+ Long: "Generate and display usage statistics including token usage, costs, and activity patterns",
45+ RunE: runStats,
46+}
47+
48+// Day names for day of week statistics.
49+var dayNames = []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
50+
51+// Stats holds all the statistics data.
52+type Stats struct {
53+ GeneratedAt time.Time `json:"generated_at"`
54+ Total TotalStats `json:"total"`
55+ UsageByDay []DailyUsage `json:"usage_by_day"`
56+ UsageByModel []ModelUsage `json:"usage_by_model"`
57+ UsageByHour []HourlyUsage `json:"usage_by_hour"`
58+ UsageByDayOfWeek []DayOfWeekUsage `json:"usage_by_day_of_week"`
59+ RecentActivity []DailyActivity `json:"recent_activity"`
60+ AvgResponseTimeMs float64 `json:"avg_response_time_ms"`
61+ ToolUsage []ToolUsage `json:"tool_usage"`
62+ HourDayHeatmap []HourDayHeatmapPt `json:"hour_day_heatmap"`
63+}
64+
65+type TotalStats struct {
66+ TotalSessions int64 `json:"total_sessions"`
67+ TotalPromptTokens int64 `json:"total_prompt_tokens"`
68+ TotalCompletionTokens int64 `json:"total_completion_tokens"`
69+ TotalTokens int64 `json:"total_tokens"`
70+ TotalCost float64 `json:"total_cost"`
71+ TotalMessages int64 `json:"total_messages"`
72+ AvgTokensPerSession float64 `json:"avg_tokens_per_session"`
73+ AvgMessagesPerSession float64 `json:"avg_messages_per_session"`
74+}
75+
76+type DailyUsage struct {
77+ Day string `json:"day"`
78+ PromptTokens int64 `json:"prompt_tokens"`
79+ CompletionTokens int64 `json:"completion_tokens"`
80+ TotalTokens int64 `json:"total_tokens"`
81+ Cost float64 `json:"cost"`
82+ SessionCount int64 `json:"session_count"`
83+}
84+
85+type ModelUsage struct {
86+ Model string `json:"model"`
87+ Provider string `json:"provider"`
88+ MessageCount int64 `json:"message_count"`
89+}
90+
91+type HourlyUsage struct {
92+ Hour int `json:"hour"`
93+ SessionCount int64 `json:"session_count"`
94+}
95+
96+type DayOfWeekUsage struct {
97+ DayOfWeek int `json:"day_of_week"`
98+ DayName string `json:"day_name"`
99+ SessionCount int64 `json:"session_count"`
100+ PromptTokens int64 `json:"prompt_tokens"`
101+ CompletionTokens int64 `json:"completion_tokens"`
102+}
103+
104+type DailyActivity struct {
105+ Day string `json:"day"`
106+ SessionCount int64 `json:"session_count"`
107+ TotalTokens int64 `json:"total_tokens"`
108+ Cost float64 `json:"cost"`
109+}
110+
111+type ToolUsage struct {
112+ ToolName string `json:"tool_name"`
113+ CallCount int64 `json:"call_count"`
114+}
115+
116+type HourDayHeatmapPt struct {
117+ DayOfWeek int `json:"day_of_week"`
118+ Hour int `json:"hour"`
119+ SessionCount int64 `json:"session_count"`
120+}
121+
122+func runStats(cmd *cobra.Command, _ []string) error {
123+ dataDir, _ := cmd.Flags().GetString("data-dir")
124+ ctx := cmd.Context()
125+
126+ if dataDir == "" {
127+ cfg, err := config.Init("", "", false)
128+ if err != nil {
129+ return fmt.Errorf("failed to initialize config: %w", err)
130+ }
131+ dataDir = cfg.Options.DataDirectory
132+ }
133+
134+ conn, err := db.Connect(ctx, dataDir)
135+ if err != nil {
136+ return fmt.Errorf("failed to connect to database: %w", err)
137+ }
138+ defer conn.Close()
139+
140+ stats, err := gatherStats(ctx, conn)
141+ if err != nil {
142+ return fmt.Errorf("failed to gather stats: %w", err)
143+ }
144+
145+ if stats.Total.TotalSessions == 0 {
146+ return fmt.Errorf("no data available: no sessions found in database")
147+ }
148+
149+ currentUser, err := user.Current()
150+ if err != nil {
151+ return fmt.Errorf("failed to get current user: %w", err)
152+ }
153+ username := currentUser.Username
154+ project, err := os.Getwd()
155+ if err != nil {
156+ return fmt.Errorf("failed to get current directory: %w", err)
157+ }
158+ project = strings.Replace(project, currentUser.HomeDir, "~", 1)
159+
160+ htmlPath := filepath.Join(dataDir, "stats/index.html")
161+ if err := generateHTML(stats, project, username, htmlPath); err != nil {
162+ return fmt.Errorf("failed to generate HTML: %w", err)
163+ }
164+
165+ fmt.Printf("Stats generated: %s\n", htmlPath)
166+
167+ if err := browser.OpenFile(htmlPath); err != nil {
168+ fmt.Printf("Could not open browser: %v\n", err)
169+ fmt.Println("Please open the file manually.")
170+ }
171+
172+ return nil
173+}
174+
175+func gatherStats(ctx context.Context, conn *sql.DB) (*Stats, error) {
176+ queries := db.New(conn)
177+
178+ stats := &Stats{
179+ GeneratedAt: time.Now(),
180+ }
181+
182+ // Total stats.
183+ total, err := queries.GetTotalStats(ctx)
184+ if err != nil {
185+ return nil, fmt.Errorf("get total stats: %w", err)
186+ }
187+ stats.Total = TotalStats{
188+ TotalSessions: total.TotalSessions,
189+ TotalPromptTokens: toInt64(total.TotalPromptTokens),
190+ TotalCompletionTokens: toInt64(total.TotalCompletionTokens),
191+ TotalTokens: toInt64(total.TotalPromptTokens) + toInt64(total.TotalCompletionTokens),
192+ TotalCost: toFloat64(total.TotalCost),
193+ TotalMessages: toInt64(total.TotalMessages),
194+ AvgTokensPerSession: toFloat64(total.AvgTokensPerSession),
195+ AvgMessagesPerSession: toFloat64(total.AvgMessagesPerSession),
196+ }
197+
198+ // Usage by day.
199+ dailyUsage, err := queries.GetUsageByDay(ctx)
200+ if err != nil {
201+ return nil, fmt.Errorf("get usage by day: %w", err)
202+ }
203+ for _, d := range dailyUsage {
204+ prompt := nullFloat64ToInt64(d.PromptTokens)
205+ completion := nullFloat64ToInt64(d.CompletionTokens)
206+ stats.UsageByDay = append(stats.UsageByDay, DailyUsage{
207+ Day: fmt.Sprintf("%v", d.Day),
208+ PromptTokens: prompt,
209+ CompletionTokens: completion,
210+ TotalTokens: prompt + completion,
211+ Cost: d.Cost.Float64,
212+ SessionCount: d.SessionCount,
213+ })
214+ }
215+
216+ // Usage by model.
217+ modelUsage, err := queries.GetUsageByModel(ctx)
218+ if err != nil {
219+ return nil, fmt.Errorf("get usage by model: %w", err)
220+ }
221+ for _, m := range modelUsage {
222+ stats.UsageByModel = append(stats.UsageByModel, ModelUsage{
223+ Model: m.Model,
224+ Provider: m.Provider,
225+ MessageCount: m.MessageCount,
226+ })
227+ }
228+
229+ // Usage by hour.
230+ hourlyUsage, err := queries.GetUsageByHour(ctx)
231+ if err != nil {
232+ return nil, fmt.Errorf("get usage by hour: %w", err)
233+ }
234+ for _, h := range hourlyUsage {
235+ stats.UsageByHour = append(stats.UsageByHour, HourlyUsage{
236+ Hour: int(h.Hour),
237+ SessionCount: h.SessionCount,
238+ })
239+ }
240+
241+ // Usage by day of week.
242+ dowUsage, err := queries.GetUsageByDayOfWeek(ctx)
243+ if err != nil {
244+ return nil, fmt.Errorf("get usage by day of week: %w", err)
245+ }
246+ for _, d := range dowUsage {
247+ stats.UsageByDayOfWeek = append(stats.UsageByDayOfWeek, DayOfWeekUsage{
248+ DayOfWeek: int(d.DayOfWeek),
249+ DayName: dayNames[int(d.DayOfWeek)],
250+ SessionCount: d.SessionCount,
251+ PromptTokens: nullFloat64ToInt64(d.PromptTokens),
252+ CompletionTokens: nullFloat64ToInt64(d.CompletionTokens),
253+ })
254+ }
255+
256+ // Recent activity (last 30 days).
257+ recent, err := queries.GetRecentActivity(ctx)
258+ if err != nil {
259+ return nil, fmt.Errorf("get recent activity: %w", err)
260+ }
261+ for _, r := range recent {
262+ stats.RecentActivity = append(stats.RecentActivity, DailyActivity{
263+ Day: fmt.Sprintf("%v", r.Day),
264+ SessionCount: r.SessionCount,
265+ TotalTokens: nullFloat64ToInt64(r.TotalTokens),
266+ Cost: r.Cost.Float64,
267+ })
268+ }
269+
270+ // Average response time.
271+ avgResp, err := queries.GetAverageResponseTime(ctx)
272+ if err != nil {
273+ return nil, fmt.Errorf("get average response time: %w", err)
274+ }
275+ stats.AvgResponseTimeMs = toFloat64(avgResp) * 1000
276+
277+ // Tool usage.
278+ toolUsage, err := queries.GetToolUsage(ctx)
279+ if err != nil {
280+ return nil, fmt.Errorf("get tool usage: %w", err)
281+ }
282+ for _, t := range toolUsage {
283+ if name, ok := t.ToolName.(string); ok && name != "" {
284+ stats.ToolUsage = append(stats.ToolUsage, ToolUsage{
285+ ToolName: name,
286+ CallCount: t.CallCount,
287+ })
288+ }
289+ }
290+
291+ // Hour/day heatmap.
292+ heatmap, err := queries.GetHourDayHeatmap(ctx)
293+ if err != nil {
294+ return nil, fmt.Errorf("get hour day heatmap: %w", err)
295+ }
296+ for _, h := range heatmap {
297+ stats.HourDayHeatmap = append(stats.HourDayHeatmap, HourDayHeatmapPt{
298+ DayOfWeek: int(h.DayOfWeek),
299+ Hour: int(h.Hour),
300+ SessionCount: h.SessionCount,
301+ })
302+ }
303+
304+ return stats, nil
305+}
306+
307+func toInt64(v any) int64 {
308+ switch val := v.(type) {
309+ case int64:
310+ return val
311+ case float64:
312+ return int64(val)
313+ case int:
314+ return int64(val)
315+ default:
316+ return 0
317+ }
318+}
319+
320+func toFloat64(v any) float64 {
321+ switch val := v.(type) {
322+ case float64:
323+ return val
324+ case int64:
325+ return float64(val)
326+ case int:
327+ return float64(val)
328+ default:
329+ return 0
330+ }
331+}
332+
333+func nullFloat64ToInt64(n sql.NullFloat64) int64 {
334+ if n.Valid {
335+ return int64(n.Float64)
336+ }
337+ return 0
338+}
339+
340+func generateHTML(stats *Stats, projName, username, path string) error {
341+ statsJSON, err := json.Marshal(stats)
342+ if err != nil {
343+ return err
344+ }
345+
346+ tmpl, err := template.New("stats").Parse(statsTemplate)
347+ if err != nil {
348+ return fmt.Errorf("parse template: %w", err)
349+ }
350+
351+ data := struct {
352+ StatsJSON template.JS
353+ CSS template.CSS
354+ JS template.JS
355+ Header template.HTML
356+ Heartbit template.HTML
357+ Footer template.HTML
358+ GeneratedAt string
359+ ProjectName string
360+ Username string
361+ }{
362+ StatsJSON: template.JS(statsJSON),
363+ CSS: template.CSS(statsCSS),
364+ JS: template.JS(statsJS),
365+ Header: template.HTML(headerSVG),
366+ Heartbit: template.HTML(heartbitSVG),
367+ Footer: template.HTML(footerSVG),
368+ GeneratedAt: stats.GeneratedAt.Format("2006-01-02"),
369+ ProjectName: projName,
370+ Username: username,
371+ }
372+
373+ var buf bytes.Buffer
374+ if err := tmpl.Execute(&buf, data); err != nil {
375+ return fmt.Errorf("execute template: %w", err)
376+ }
377+
378+ // Ensure parent directory exists.
379+ if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
380+ return fmt.Errorf("create directory: %w", err)
381+ }
382+
383+ return os.WriteFile(path, buf.Bytes(), 0o644)
384+}
internal/cmd/stats/AGENTS.mdnew file+3
@@ -0,0 +1,3 @@
1+# General Guidelines
2+
3+- always format CSS, HTML, and JS files with `prettier`
internal/cmd/stats/footer.svgnew file+838
@@ -0,0 +1,838 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" version="1.1" viewBox="0 0 829.8 30">
3+ <!-- Generator: Adobe Illustrator 30.1.0, SVG Export Plug-In . SVG Version: 2.1.1 Build 136) -->
4+ <defs>
5+ <style>
6+ .st0 {
7+ fill: #858392;
8+ }
9+
10+ .st1 {
11+ fill: url(#linear-gradient);
12+ }
13+
14+ .st2 {
15+ fill: #fffaf1;
16+ }
17+ </style>
18+ <linearGradient id="linear-gradient" x1="65.4" y1="14.8" x2="564.9" y2="14.8" gradientTransform="translate(0 32) scale(1 -1)" gradientUnits="userSpaceOnUse">
19+ <stop offset="0" stop-color="#6b50ff"/>
20+ <stop offset="1" stop-color="#ff6daa"/>
21+ </linearGradient>
22+ </defs>
23+ <g>
24+ <path class="st2" d="M738,22.7c1.2,0,2.2-.5,3.1-1.2.5-.4,1-.3,1.2.2,0,.2,0,.4,0,.6,0,2.2-1.8,4.8-6.2,4.8s-6.1-1.6-5.7-6.5l.4-4.9c.3-3.1,1.4-5.7,3.7-7.2,1.2-.8,2.7-1.2,4.6-1.2,2.9,0,3.8,1.2,3.8,2.4s-.4,1.6-1,2.1c0,0-.2,0-.3,0-.5,0-1-.1-1.5-.1-1.1,0-2,.2-2.7.9-.6.5-1,1.4-1.1,2.5l-.5,5.1c-.1,1.4.3,2.5,2,2.5h0Z"/>
25+ <path class="st2" d="M759,11.5l-1.1,12.4c0,1-.4,1.8-1.2,2.3-1.1.7-2.2,1-3.2,1s-1.4-.6-1.4-1.3l1.1-12.4c0-.7-.1-1-.7-1s-.9.1-1.2.3c-.6.3-.8.7-.9,1.3l-.9,9.9c0,1.1-.6,1.8-1.3,2.3-1,.7-2.2.9-3.1.9s-1.3-.6-1.2-1.6l1.9-22.2c0-1,.4-1.9,1.2-2.4,1.1-.6,2.2-.9,3.2-.9s1.5.5,1.4,1.2c0,0-.8,8.1-.8,8.2,0,.1.2.4.4.1.3-.4.9-1,1.4-1.3.9-.6,1.9-.9,3-.9,2.4,0,3.6,1.3,3.3,4.2h0Z"/>
26+ <path class="st2" d="M788.2,12.3c0,.1-.3.4-.5.3-.5-.1-1-.1-1.4-.1-1.8,0-3.2,1.1-3.3,2.9l-.7,8.5c0,1.1-.6,1.8-1.3,2.3-1,.7-2.2.9-3.1.9s-1.3-.6-1.2-1.6l1.3-14.9c0-1,.4-1.9,1.2-2.4,1.1-.6,2.1-.9,3.1-.9s1.3.5,1.3,1.2v1.3c-.1,0-.1.2,0,.2s.2-.1.3-.2c.5-1.2,1.6-2.5,3.3-2.5s2,.9,2,2.1-.3,1.9-.8,2.9h0Z"/>
27+ <path class="st2" d="M810.1,26.1c-1.1.7-2.2,1-3.2,1s-1.4-.6-1.4-1.3l1.1-12.9c0-.7,0-1-.6-1s-.8.1-1.1.3c-.5.3-.8.8-.9,1.3l-.9,10.3c0,1-.4,1.8-1.2,2.3-1.1.7-2.2,1-3.2,1s-1.4-.6-1.4-1.3l1.1-12.9c0-.7,0-1-.6-1s-.9.1-1.1.3c-.6.3-.8.7-.9,1.3l-.9,10.5c0,1.1-.6,1.8-1.3,2.3-1,.7-2.2.9-3.1.9s-1.3-.6-1.2-1.6l1.3-14.9c0-1,.4-1.9,1.2-2.4,1.1-.6,2.1-.9,3.1-.9s1.3.5,1.3,1.2c0,0,0,.7,0,.9,0,.2.2.3.4.1.2-.2.7-.8,1-1,1-.8,2.1-1.2,3.4-1.2,2.2,0,2.9,1,3.2,2.1,0,.2.3.2.4,0,.2-.2.8-.8,1.2-1.1,1-.7,2.1-1.1,3.3-1.1,2.4,0,3.5,1.3,3.3,4.2l-1.1,12.4c0,1-.4,1.8-1.2,2.3h0Z"/>
28+ <path class="st2" d="M824.4,30h-11.1c-.8,0-1.4-.4-1.4-1.3,0-1.6.5-2.6,1.7-2.6h11.1c.9,0,1.4.4,1.4,1.3,0,1.6-.5,2.6-1.7,2.6h0Z"/>
29+ <path class="st2" d="M773.8,7.6c-.7-.2-1.9-.3-3.2-.3-2.5,0-4.6.8-6.3,1.9-1.8,1.3-3,3.2-3.3,6.6l-.5,5.8c-.2,2.8.7,5.5,3.8,5.5s2.7-.7,3.4-1.5c.3-.3.5-.7.7-1s.4-.2.4.1c0,.3-.1,1.2-.1,1.2,0,.7.3,1.2,1.3,1.2s1.9-.3,3-1c.8-.5,1.1-1.2,1.2-2.3l1.2-14.4c0-.9-.2-1.4-1.6-1.8h0ZM768.8,21.4c0,.5-.3.9-.6,1.2-.3.2-.7.4-1.1.4-.7,0-1.1-.4-1-1.3l.7-7.6c0-.8.3-1.5.7-1.9.4-.5.9-.7,1.6-.7s.6,0,.7,0l-.9,10h0Z"/>
30+ <path class="st2" d="M826,23h1.5v.4h-.6v1.6h-.4v-1.6h-.5v-.4ZM827.8,23h.5l.5,1.5.5-1.5h.5v2h-.4v-.4c0-.2,0-.5,0-.8l-.4,1.1h-.4l-.4-1.1c0,.3,0,.5,0,.8v.4h-.4v-2h0Z"/>
31+ </g>
32+ <g>
33+ <path class="st0" d="M4.6,22.6c0-.2-.1-.3-.2-.5,0-.1-.2-.3-.3-.4s-.3-.2-.4-.2c-.2,0-.3,0-.5,0-.3,0-.7,0-.9.3s-.5.4-.6.8-.2.8-.2,1.2,0,.9.2,1.3c.2.3.4.6.6.8s.6.3,1,.3.6,0,.9-.2c.2-.1.4-.3.6-.5.1-.2.2-.5.2-.8h.3s-1.8,0-1.8,0v-.9h2.7v.8c0,.6-.1,1-.4,1.5s-.6.7-1,.9-.9.3-1.4.3-1.1-.1-1.6-.4-.8-.7-1.1-1.2c-.2-.5-.4-1.1-.4-1.8s0-1,.2-1.4c.1-.4.4-.8.6-1.1.3-.3.6-.5.9-.7.4-.1.8-.2,1.2-.2s.7,0,1,.2.6.2.8.5c.2.2.4.4.6.7s.3.6.3.9h-1.2Z"/>
34+ <path class="st0" d="M9.1,27.2c-.5,0-.9-.1-1.3-.3-.4-.2-.6-.5-.8-.9s-.3-.8-.3-1.3,0-1,.3-1.3.5-.7.8-.9.8-.3,1.2-.3.6,0,.9.1c.3.1.5.2.7.5s.4.5.5.8c.1.3.2.7.2,1.1v.4h-4v-.8h2.9c0-.2,0-.4-.1-.6s-.2-.3-.4-.4-.4-.1-.6-.1-.4,0-.6.2-.3.3-.4.5-.2.4-.2.6v.7c0,.3,0,.5.2.7.1.2.2.4.4.5s.4.2.7.2.3,0,.5,0,.2-.1.4-.2c.1,0,.2-.2.2-.4h1.1c0,.4-.2.7-.4.9-.2.2-.4.4-.7.5-.3.1-.6.2-1,.2h0Z"/>
35+ <path class="st0" d="M13.4,24.2v2.9h-1.2v-4.9h1.1v.8h0c.1-.3.3-.5.5-.7.2-.2.6-.2.9-.2s.6,0,.9.2c.2.1.5.4.6.6.1.3.2.6.2,1v3.1h-1.2v-3c0-.3,0-.6-.2-.8s-.4-.3-.7-.3-.4,0-.5.1c-.2,0-.3.2-.4.4,0,.2-.1.4-.1.6h0Z"/>
36+ <path class="st0" d="M19.9,27.2c-.5,0-.9-.1-1.3-.3-.4-.2-.6-.5-.8-.9s-.3-.8-.3-1.3.1-1,.3-1.3.5-.7.8-.9.8-.3,1.2-.3.6,0,.9.1.5.2.7.5.4.5.5.8c.1.3.2.7.2,1.1v.4h-4v-.8h2.9c0-.2,0-.4-.1-.6s-.2-.3-.4-.4-.4-.1-.6-.1-.4,0-.6.2-.3.3-.4.5-.1.4-.1.6v.7c0,.3,0,.5.2.7.1.2.2.4.4.5s.4.2.7.2.3,0,.5,0,.2-.1.4-.2c.1,0,.2-.2.2-.4h1.1c0,.4-.2.7-.4.9-.2.2-.4.4-.7.5-.3.1-.6.2-1,.2h0Z"/>
37+ <path class="st0" d="M23.1,27.1v-4.9h1.1v.8h0c0-.3.2-.5.5-.7.2-.1.5-.2.8-.2h.2c0,0,.1,0,.2,0v1.1s-.1,0-.2,0-.2,0-.3,0c-.2,0-.4,0-.6.1-.2,0-.3.2-.4.4s-.1.3-.1.5v2.9h-1.2,0Z"/>
38+ <path class="st0" d="M28,27.2c-.3,0-.6,0-.8-.2s-.4-.3-.6-.5c-.1-.2-.2-.5-.2-.8s0-.5.1-.7.2-.3.4-.4c.2-.1.4-.2.6-.2s.5-.1.7-.1c.3,0,.5,0,.7,0s.3,0,.4-.1c0,0,.1-.1.1-.2h0c0-.3,0-.5-.2-.6s-.4-.2-.6-.2-.5,0-.7.2-.3.3-.3.4h-1.1c0-.4.2-.7.4-.9.2-.2.4-.4.7-.5s.6-.1.9-.1.5,0,.7,0c.2,0,.5.1.6.3.2.1.4.3.5.5.1.2.2.5.2.8v3.3h-1.1v-.7h0c0,.1-.2.3-.3.4-.1.1-.3.2-.5.3-.2,0-.4.1-.7.1h0ZM28.3,26.3c.2,0,.4,0,.6-.1s.3-.2.4-.4c0-.1.1-.3.1-.5v-.6s-.1,0-.2,0c0,0-.2,0-.3,0s-.2,0-.3,0c-.1,0-.2,0-.3,0-.2,0-.3,0-.5.1-.1,0-.2.1-.3.2s-.1.2-.1.4,0,.4.2.5c.2.1.4.2.6.2h0Z"/>
39+ <path class="st0" d="M34.2,22.2v.9h-2.8v-.9h2.8ZM32,21h1.2v4.6c0,.2,0,.3,0,.4s.1.1.2.2c0,0,.2,0,.3,0s.1,0,.2,0,.1,0,.1,0l.2.9c0,0-.2,0-.3,0s-.2,0-.4,0c-.3,0-.5,0-.8-.1-.2-.1-.4-.2-.5-.5-.1-.2-.2-.5-.2-.8v-4.8h0Z"/>
40+ <path class="st0" d="M37.3,27.2c-.5,0-.9-.1-1.3-.3-.4-.2-.6-.5-.8-.9s-.3-.8-.3-1.3,0-1,.3-1.3.5-.7.8-.9c.3-.2.8-.3,1.2-.3s.6,0,.9.1.5.2.7.5c.2.2.4.5.5.8.1.3.2.7.2,1.1v.4h-4v-.8h2.9c0-.2,0-.4-.1-.6s-.2-.3-.4-.4-.4-.1-.6-.1-.4,0-.6.2-.3.3-.4.5-.2.4-.2.6v.7c0,.3,0,.5.2.7,0,.2.2.4.4.5s.4.2.7.2.3,0,.5,0,.2-.1.3-.2c0,0,.2-.2.2-.4h1.1c0,.4-.2.7-.4.9-.2.2-.4.4-.7.5-.3.1-.6.2-1,.2h0Z"/>
41+ <path class="st0" d="M42.2,27.2c-.4,0-.7-.1-1-.3s-.5-.5-.7-.9c-.2-.4-.3-.8-.3-1.4s0-1,.3-1.4.4-.7.7-.9.7-.3,1-.3.5,0,.7.1.3.2.4.4c.1.1.2.3.2.4h0v-2.5h1.2v6.5h-1.1v-.8h0c0,.1-.2.2-.3.4-.1.1-.3.2-.5.3-.2,0-.4.1-.7.1h0ZM42.6,26.2c.2,0,.5,0,.6-.2.2-.1.3-.3.4-.6s.1-.5.1-.8,0-.6-.1-.8-.2-.4-.4-.5-.4-.2-.6-.2-.5,0-.7.2c-.2.1-.3.3-.4.6s-.1.5-.1.8,0,.6.1.8.2.4.4.6.4.2.6.2h0Z"/>
42+ <path class="st0" d="M48.4,27.1v-6.5h1.2v2.5h0c0-.1.1-.2.2-.4s.3-.2.4-.4c.2-.1.4-.1.7-.1s.7.1,1,.3c.3.2.5.5.7.9s.3.8.3,1.4,0,1-.3,1.4c-.2.4-.4.7-.7.9-.3.2-.7.3-1,.3s-.5,0-.7-.1c-.2,0-.3-.2-.5-.3-.1-.1-.2-.3-.3-.4h0v.8h-1.1,0ZM49.5,24.6c0,.3,0,.6.1.8,0,.2.2.4.4.6.2.1.4.2.6.2s.5,0,.6-.2.3-.3.4-.6.1-.5.1-.8,0-.6-.1-.8-.2-.4-.4-.6c-.2-.1-.4-.2-.7-.2s-.5,0-.6.2c-.2.1-.3.3-.4.5s-.1.5-.1.8h0Z"/>
43+ <path class="st0" d="M54.5,28.9c-.2,0-.3,0-.4,0-.1,0-.2,0-.3,0l.3-.9c.2,0,.3,0,.5,0s.2,0,.3-.1.2-.2.3-.4v-.3c0,0-1.7-5-1.7-5h1.2l1.1,3.7h0l1.1-3.7h1.2l-2,5.5c0,.3-.2.5-.4.7s-.3.3-.5.4c-.2.1-.5.1-.8.1h0Z"/>
44+ </g>
45+ <path class="st1" d="M231.6,27.3l11.2-20.3h.8l-11.2,20.3h-.8ZM236.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM240,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM243.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM247.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM251.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM255.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM259,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM262.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM266.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM270.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM274.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM278,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM281.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM285.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM289.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM293.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM297,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM300.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM304.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM308.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM312.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM316,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM319.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM323.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM327.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM331.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM334.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM338.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM342.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM346.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM350.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM353.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM357.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM361.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM365.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM369.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM372.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM376.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM380.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM384.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM388.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM391.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM395.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM399.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM403.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM407,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM410.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM414.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM418.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM422.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM426,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM429.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM433.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM437.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM441.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM445,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM448.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM452.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM456.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM460.2,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM464,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM467.8,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM471.6,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM475.4,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM479.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM482.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM486.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM490.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM494.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM498.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM501.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM505.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM509.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM513.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM517.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM520.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM524.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM528.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM532.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM536.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM539.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM543.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM547.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM551.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM555,27.3l9.8-17.8v-1.5l-10.7,19.3h.8,0ZM558.8,27.3l6-10.9v-1.5l-6.9,12.4h.8,0ZM562.7,27.3l2.2-4v-1.5l-3.1,5.5h.8,0ZM228.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM224.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM221.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM217.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM213.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM209.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM205.9,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM202.1,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM198.3,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM194.5,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM190.7,27.3l11.2-20.3h-.8l-11.2,20.3h.8ZM197.3,7l-9.8,17.6v1.5l10.6-19.1s-.8,0-.8,0ZM193.5,7l-6,10.8v1.5l6.8-12.3h-.8,0ZM189.7,7l-2.2,3.9v1.5l3-5.4h-.8ZM138.4,23.3v4.1h16.2v-4.1h-16.2ZM158.7,7v4.1h-16.2v-4.1s16.2,0,16.2,0ZM138.4,11.1h4.1v4.1h16.2v8.1h-4.1v-4.1h-16.2s0-8.1,0-8.1ZM130.3,23.3v4.1h-12.2v-4.1h12.2ZM118.1,19.2v4.1h-4.1V7h4.1v12.2ZM130.3,7h4.1v16.2h-4.1V7ZM183.1,7v20.3h-4.1v-8.1h-12.2v8.1h-4.1V7h4.1v8.1h12.2V7h4.1ZM69.4,27.3v-4.1h16.2v4.1h-16.2ZM65.4,11.1h4.1v12.2h-4.1v-12.2ZM85.7,7v4.1h-16.2v-4.1s16.2,0,16.2,0ZM106,11.1h4.1v4.1h-4.1v-4.1ZM106,19.2h4.1v8.1h-4.1v-8.1ZM106,15.2v4.1h-12.2v8.1h-4.1V7h16.2v4.1h-12.2v4.1s12.2,0,12.2,0Z"/>
46+ <metadata>
47+ <i:aipgfRef id="adobe_illustrator_pgf"/>
48+ <i:aipgf id="adobe_illustrator_pgf" i:pgfEncoding="zstd/base64" i:pgfVersion="24">
49+<![CDATA[
50+KLUv/QBYlC0DOi4boTogRUTOAwAMAAwArAHAAMAALMA6vrpQuiak2EE606A//CAh0Acdrm3bBlrg
51+Xdd2Skn9A4kJGABwToA0XQkTCksKPgRDkQzJ0Dw/n3pzj+j4ob8UfVp+5md6k5tbLdHxK0FOoiM6
52+muD4UdEM+z59yE/Q/DiYkh/5iR84/tH/zT//pSd7KX59i76T+6MiuD/Zyc5J9TRLMvzG74/bjx01
53+yVH8nm815GJajqHnYSmCIRh+4Ac56EEV/cyPf/1TP0qCP/TkBv3nP+9PspM9/L2nJhl+Pi1VteTm
54+/kITJFFTNVOziyd4huM5lufm3n8oaG4UTdHzTNUUTdGNoqd5niZaoiVJjmG4QxREQY9+3zmqpig5
55+bvEMzxD8vO8nP/l5mmiKjhtMSzT8vVS356kpgt/3URVVURXFU9yniIok+P0uirv8wi/0oeebDP0J
56+9q/+nXa0m730KD95ycvv46Afe+egF8Gvc7Lj2df9R3bPxZD8+Og7Gfb+/0d2Ugw7npE8JEkuerB7
57+kfzE7oslunnv3fcfdrFEe9rVzn333v/Qi3400/79///b4yd/if70q59//fPfHz/yKz8z/dSPgx0E
58+R1MFNw8/MRzNtIte/GIpmuIpomIqqn6PIzmWaEiK5HjuD/2i2VEP7hEl0TL1IZmWKUii+0P/d/qT
59+n6mJmqZJmqIJmt/splqipVmSZVh+pS95mZInSH6Sk+l4jpscxREc/8jHVDxFUhRFUPxiF9UQDc2Q
60+DMUQDH/YQ7X8wI9+Z/iB6d/oN8MPqj4dvejTju5S5OH3fd9jOYK+q2S6RTL8OsnF/UOPfh1UP/V/
61+23+pR0k/9u3RXZJjuNGTND85jlscQ1IcN6iCKYiCJ3iS4AiK6Yf6b5dfP705fv57n24TTDlahh//
62+XU1R89xmCX7fc3NzUy3VMi3T0xzFMgS/L3u6PVmO4yjuMiTDMRTDMPzCH/qwhzxMQRQ0wTIEQfAD
63+P7g9yEH1Sz/0Oz/zK7/xE7/wA7/v+1//+Kf+9KP//OYn//jFH37wf/9///lXfepRb/rSl570og89
64+6Pfnv++ee+7Vjvazn93sZSf72MUe9q///rvvvfOu8pSf3OQlJznJRy7y8OOfe97//yo4Rc1Nmz3j
65+5NfxDAS9+Pv/RpGHZP86LpLf90WS/CNJei52PBNH8ZMdFHv4fZKLHd+0adp2xzRtGee9Zz4TO56J
66+YPfk5yPJwU/0X8czkgQ/773vXxc573gWht+HXwR9+L/Qix3P+D7Ys2nasm9LNjc7uU3TNE/zNFEz
67+NVNTNVWTn/zspz/9+c9/fud3guIpnuM5nuRZnuVpnuZ5nueJnumZnuqpnhzlaEe3Rz360Y9+6IeC
68+IiqiI0qiJFqiJWqiJnqiKIqiKZqiKqqiPO1pT33q05/+9AvTMBVTMR3TTaZkWqZlaqZmeqZoiqZp
69+mqZqqqZc7WpXverVr37qF6qhKqqjOqqkSqqlWqqmeqqniqqomqqpqqroaZbkGG4xBL/vOw+3mqKn
70+WZIjuEcxBL/vOwdVNVVR9VRNtVRJdVRFNVRB9VO/6tWuclVN0xRNz9RMy5RMx1RMwxRMv/Sn26c9
71+5amKpiiKnqiJliiJjqiIhiiIfuhHPdpRjqpneqLneZpneZLneIpneILnd/7Tn/3kp2qmJmqepmnu
72+0iTN0Zvd5KZapiVanqVZliVZjqVYhiVYfuUvfdlLXqpkSqLkSZpkSZLkSIpkSILkR35ye7KTnFTH
73+dETHczTHciTHcRTHcATHb/yjH/vIR1VMRVQ8RVMsRVIcRVEMRVD8xC96sYtcVMM0RMMzNMMtsPmW
74+bE+WJmmWZkmOpmiOOwRBcIuhaIbmDk0xDM0QBL9vboEt2bxzzz8O8pCPnOQmP3nKVe7718E+drKb
75+/exp39x3/3nQi570pT896lXP///gD7/4yW/+86eff/77PvALP/Erv/NDP/VTPw9+8ANDUARJsARP
76+EAVTcPfQhz8EwzAkwzI8QzRUQy568RM/ERRDcRRJ0RRRMRX52Mc/fiM4hqM4jiM5muM5pqM6crKT
77+nvzkR4LkDsmxJE3yJFEyJVNSJXnZS1/+8iu/EizDUizHkizJsizN0izPEi3RMi3VUi252U1vfvOb
78+n/mZoLkF9sFWmT7j2V6EGStTtS8Whj+K7FHDrati5xU2s74dDrCTLVqZbXUyFRyL5Vd8trUb62Rz
79+q4LdVatmN6K6hdl3U8Mui5lZmH1bAS6GVsHta2YtAW6damV6blNuS2Znlvu+7FnPZT2XrZrdwJo5
80+rl1VmsEbGuViFNkig2N3BVuyVqpmBWhZqjR749jzxrEna9Gx2czmtq7ZVFvTA3TaN+XWM7t50e4b
81+o14DdOT4bQXA6WuOVy2qyBZZO7OvupBdtlNkCxbsptjZkymyRZ1qE1CaTNUCwJ3jOtWCFDtewRY5
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
548+vp3+OBnnvf95Onxv1+TeiNPen3YxKeKZWRtySu+/0rdD5jQzDsCn15Ru+PmovvGr7z9jykvDhJrS
549+OxVxLg3dNP/vdpPbmJdbPfW80ZH1ny2ZN9qwWrbrd9dppuuut2bk3NZP3Y2ev/JUT92u3LmauBN3
550+918fo/N/d/L+Pu9txv/HT+Zdiee+6NbW6I02ep/Quw5PW/35LKV3aWr1Rhts7MTe1e2ImZp8p+bt
551+Xbyp7R79ny+563maWWui/X9icvdzTX6ffJHt0xLTb3My+fL59D4h5uEe2m40GWbuYWIyvDUMQLUb
552+sust45v/v3YydE+2++rZ6MmRvz3frnPN/NJtI45ta9f3sTc+urJnOnqataXWLm61XT1Ojppozr/Z
553+qdESa6P3pzMe7tue2u4mTWxVt022z0U7S0yqjTiemt34Zohp1d3sMLF24d5b31lnau6Ute2H2nbG
554+mVwPLb3WOSb729nuU55cf/iq62bL6bXRxg67mZc5sS17sm206c5025r6tvtyuxZTXy1mPnWb+Oq8
555+zRhTbqONlvurbubl/z9rytLfdN4208NtxMnlTbpdmJx2G21SO/G29napuvJ7Xtpa7O1L3NuoU53c
556+vbqM/Ydm/Mm3UYiMQiTpoCBBA3o2acnzWXed0UwzcSa/T7vb6dmT2ibO5uV+M+PE2Z74yp3VEu/s
557+P3E22pimPm83+1215OfZvLdpx2aLnM5fX7PL58fv9v9vTH6dbN3X/x8x+Z32b2qq++Wf55m9p8vO
558+30t+5/a765781M72NpuTX6km7vGaIW8bbqNt+nNMtpf7jLdm/wm1bSs5EXU7IdYi26fZY+rs6n7P
559+68eE2Gnx+jF702Gp+rv1mfkmzS5F/WX9/19Lhtn1+ciNmvouGz2lV5ksG20609c5evalWesmTUuW
560+vQmzESfP0V3NLC9xdjVarh/j7rX3udmmRZzi87vrbORe09RPXX+omG1mmMzcxnfJS399t//fMqE2
561+2mRy9HLn79M040uoXd4bnpAt2RJxStuys+49db0l2nQ/+uWrY1cXn3Zj13EzFiN6lAsby4+rsRAb
562+680REcexWi2R89CRC61PFRcvmdWbX5/KRa7/R7TZ2sdFxPEtR0e0acfS8satRcTZwu3txfLkZazV
563+On1NxsJkRJvKZExGxKnE8kZE1OlLfMoXldP/DNHuMTvPljVxLYcVG7kOi5EXfxEFoHKRF9HDaIPJ
564+i5oWEeexF8tTEW3qWrEU63aV2bkRPZ3EDf6pYRoaHh7i4eEhIhoaGv79/f35+fn5+a3f/f3f3Rki
565+jqGh4Rm+4T53sjeyX9oh7jce+uEhoiGia+edn/fp+fn5+eXfbV79Zj5vppkl5rUm5k82xzSuxTz9
566+z180rjwu1Ctt49a9T3qshzi8x7XHy6V8nZivK6+auw5tuvYK0/ZeXmXllbY+eOjpbGWe4Sa/ljVh
567+7Rdi6aMNImddXdqhjV0t6um/syrmoae4GRU5U+/4LZnVHjXV/gw98wvTu7E/s7K7rzdb/7930yPO
568+p1dmfTPzWrq7ptevW95vtmF7amoh2hRbfvPq/5bes2on2mxhLZ7ep2dxltud4Tmjo7MjzvMjDn+l
569+Lv+jJTu24ydxGz1paLOld3yHOHzHtdel186Y7I5TV9ohTv/+Iw7nuyNObWd3vXXdH+I4nz8fryPO
570+amniQ5ys7uwsbbTJRnfU+Xw0n401t7nTNqppI44fv3qxZ9rSVa/etGhTvKlfqreZZ6a1eq75t19s
571+6etW/fSUq58TcTgLbxVveb8WEW3qj//KmX+Pkf/rVF2vMY3fC2391BON2VKZU1MX+m5al99ts/u/
572+FZridV8jDqPy/q4jjta66/P6W2nvKtob4682pr2/IU419malaqvjf31u9zPu/+8nLD1k5v90iDhZ
573+7ovFluX+eOmreJb1x7mK1qmF6632ylnLiziVmfz/bkmrsjFpJdqxo9lWt7sm96t7HvP1eVr0sKWv
574+m1miZ4vVEHvN3zQdrRlNVesvaaU2576ZKeLU77a2d2s1vqJimmVtGudffsr9ddxMxFlLWb3Y3lis
575+ncqnija1p/mM6KpmV7i2V753uaZmV2+p3z0VNV25d7Wy2X3a1ZZq7j2q2SGOo5c/5l8nZ8K7vNxF
576+xMlKrzz111uzLPTaTq/m4z818/ps1bXtlF6K/ImciTjl7cXX6dxqSb3cvPF+rbowd78VMSnaeOo6
577+TF0zNa3V0mzcvTdDHdds+9ukyCSkUjfZJit/22TltpasTo97Efs/EzNZvbrqtmL2c6PdpgohRTFR
578+jDKETHg89Ps34+3Uqmdml35mlonL+b+Gto6+9Wpnfdb//HjGi7h3znac62kffR370Pg207+mfdBR
579+p/mQBt3OxNnP/DQ66tTqTqhAGtDzbOzwnm/Tc7sf/vM9N+LsL/v/+3On5nZ/s9TcfIht//3slb51
580+YsZPXEV3Te3MjThrvP9tnazcaNPazt7x+o1HGtDzpqp3ZrjVqobbj7h9uJ1pu9FGe7W7cjMp9iLO
581+c3OKqPN2cl7P5a7uiCMCg8vlckEoG0w+CECFQ4hCWVFhCYGysqFQNph8QGExYVHx4MGkUAJgEmID
582+WkFJAAAmKwckSLCCQgCT59mggehEg4TkG2SQoJyoZOisqGg4oEHGZqJILmgAAFhhMXmgoVGGNGhw
583+NL67E6x6o05IvdU5I95a2b+iDRp1pVaXoKyMgg+daCAKzzt6UL9zj92hjlHorO+z/ozMfOjxzk46
584+HtKgeahz6OGOnd9zHctDG/jpbCjT8Oihp9LP9zYe3Y7nvT+P9/f8oSefQr9+3u8MEXXs+VNEHf37
585+8z/D66ChGt/t4/b2YGo+36edPjTES8TEQ1TEB/ETHfF4FXkvz3XvMeVFnYeRbx9W7wdVV/X53TT0
586+5f1NbX4ONaUu6mAuevxz9bL1uUzk2z5FxEWdvH1s123x720Tl1PbNjHv2eJt3qLOhjKkAT3t70++
587+6uq7mu3Zoo79uvY3o+crurfbK+p8d6fltdZzdEWd64f5knsnq/Y2/1pfGz+7ytysqMN7y4nb+mus
588+qOOqqru8ijqqaqq3uJqqroo6nYqpqaqqmWqqp4o6v8j5HCqmZipqn/p7ni7q6vOmiHZs2qfeaJqn
589+epqmn29qp6jzr2/Ke4+met+e/u/puvqd9veJOubPtrdzY6sn6mDzt3miDitv8z58jZ2oc7zOzpur
590+zLmvfGy7vaynuLmJOqidr+qZq6yJOpppmaiXmRgz0zMzM1MzUSfRLS2TMRsTdfYOMzHx0jIv01Kv
591+91It/+/yLlHHLL8t3ZIfPy01/3H/N8t3Xvx8RJ3zp9v9HVEn29O1n83PEXWsn+XudX6OWx/Zl60R
592+dR7ex46REXVWfRF1VDcfRtRJfTZZWxF1GGlAz5OqiDqJaEMZinD7eLtXt7eIU227x4vFvIue4ly0
593+Rc+iDZYvFu9W4haarnLSRZzVrebSWvTUuy7aXG7dlW/l1RVv7e2izhWv32Yd89gx/z8Xn7u5k225
594+T5+Ny5Wx9m7rdvU23aZbt7VN3H/t/NP75o//v8+Dumz4iqbI7696x9z9jjaP/OxpmqX5l7iod7a8
595+izh+6nh/aa9oebdY5227erdoU32Fm1qoublc54q6qb+IU8pbubi4W27p9hZxbG170aaybW3rXhGn
596+LvW1X/sVPcX8HVe0UYaqqZdUVe20vPn0FG20eBm1unl5eVtZq1W1eKOpqKijuVllu99X1PpnRNVt
597+11Qz08tS1DxbzfLUrEwt/21HdMxE/ScVbTi1C1MxtVpbMRG1UVERB7VPq/kUcVa7TPnbNlerTc00
598+y7R+TRFHa/e0UE9RB3Xjn+nfm/vr6enpyYpo2frJqbao+vmenZna2Ynr2PyZnJzp/u23ZsnJ+Zg4
599+czkXOTkTZ+pEnM7O9NSpfPm61vmNx8uezZ7XnJ552f53uvm5mmqYn4izrNion57p6dmZOjs5c5M3
600+XTM3eXNz8znzYdbSTJiJWbmsjYZZjImJNpWYnZ+YmYlYmmhT3ZpZyZiZurzfnJeZmZWZmZnl71np
601+3VqZlapPfW0m6tQXpoYn0VPe3NHUTV6ur7Jta6ujNuo6rq/nVvumdcRL+4go1O7jFqblU056/Cxm
602+zk7yRt0hDejZNKIjOiIu5qMlZiUGlIColDCL94mcc8wUEQAAAACzEQgAgCgoDkkGgxKt8hQABU9a
603+MjYsKB4uOEBKFo5EagxjgAHGIMQMZNAIIEIAlwPUj3R21ON+OoolweHHyxEec6PUXuHG3tm8FdzV
604+26/Dtr2iBDx65sB//To0b06XgPsn6vi0awiJ9c1TGfpNu24gg8GTTWQ2surHzQ8iOkVMRQ8bqc3T
605+dz23gbqUKb8Do4CprHXpqUS1sxNMxk+nDv2Kx0qUZ3JtEyH5MJyirueANVPNJ8uECmYbTQH4bQxe
606+wOgDhxfHWveLy5GRmr44vxTfqiUCt5VJVHopJlXVsc6W01qnKlfFWVT8AR9BSMtzKKHWSj2dvVF1
607+NKyz89JH4IYLL8nSLYH3pNK+RYY56JNiRDxOnixB8yrPM5QUi+gVnkRCtTo+PX9DETY9CZC0XUiC
608+kreIZASFtoCr4J32RGKBI9lLDZ63TipQQHzBpq3plEnAOG1XcQ9MIQERItkIgxJDQlR3d2B55Kb/
609+t18APJYV9Xx/NwyPpMOxTRRNl9NGgqGbkSPTA9XZeL10N8qDqn3YynJmIh8KwNQ2LKpYNRqklgbG
610+ia6KVcbeSbhen6LibqjfAdEW1bvFFc2ivYZg4NXmQGpiTyHtmU+MZkCUr0V0AgF/HunA+j0I6ruJ
611+jbKcB0censPyjpTD5Gy1fIzvSHOag/aNfXzEX0s+Sn7JUeCb1BQjvDCLJ2dDWPeD0o43x0Q7BfOZ
612+Bb6BRJ1CVs2n/J47TZLO4cP9qBNU/b6nj9joYwaxZ6N1NNIIkQ6x0mbFYwTjfgtDI5mUxJ5ikKqU
613+H1+UeGgoK38LK0nlvUFUcZh4lEpqmgNj/qWYtfkSn+htRkgJ73dzIyWzfIWvzMmLkCz745HiPGG3
614+CXaYrTAvu4or9YUKZUJ9MaHly3wgSHyvxMeRpWAEluVAOexZrznE+N/VYcE/ElnxkRaWNaXHv4Kx
615+6mQHG6+rNKEU9qKXWzPRsB6NClLlwbA4kaw40Uk/Ls7xR+pLT3IFwEDdwC7mwD8SYCK1wGG+BQAH
616+NZRDVgyUlta3Ba53xA6hnzUJawnEAP7R2UM3iueapHx3K6Rdk+Jen8tqDJvk0KRJBz3pLBFeptTB
617+sUvS1W0fFhXgH+P8o31sPo0nG9NNDtQbKrC4GhrIYJM1FU9xHxtIC2trwHZxI0BluZVnkzRIJCyk
618+hw1wtBeUfyRDgFGQrNToI812UDMGj9D5mWQK5ZhJkw0eYf6/fTCCQZqQEoyMZs3SpuRN0WOdds8t
619+OZm9/K9o3y1vhlmB73pubqYNxk84aqjyEhQzeGaniQcJlJ1RcTQsda4xnpvRQBj5MJqPXSkmokqK
620+plZ2kQolm2XEzGnuAdfNr+703/Bpc4JZFgLcIlNiKDviKjsfWo76j8gHVolJ1m8oDCfEXpHka8E5
621+ZCntq7tt7ep2abAE1WyZUb0o+YlQB0xIcNEzyci4VLdTQ4MqMHRv+iaIYoWiatIcKRlY2XO9kRdN
622+D8ccUtUQ3j1dLCO0XJM0vwF0TSRZ1Qq3c9gewS4m2oHctRRfBgZJyVqBbDRiNtjOFTVkRCkbV5J5
623+c1pLGeFvfg6RLJlhyY4F5nLADUXSzQXr8H3Q9VCkRn/7Hr/E4+7S2iZZNjj7sA7ByQKBICKKzSLI
624+DGilpggEwMisO4JxEP+JWEpNj7gqLcvDDAuH/5mOr9lB4qlRvhH+tcko73QDQDdm8JUayhaoVCKk
625+OPuP4k9pYvcBjeK2azfFpCWz12o3Ew+CO0UoJlQ6cBI+Jqk+PCW1N1ro4kt7wpTzM48Aussc/9jg
626+nJRerE+uNdXyCRtlkvJdVRA+BcENsD2wo8jwynAlzGJ4bEpvSecKRvLdm8VOI0Y3IN3MBDPZujjm
627+uw9u9yBueVQWUYfcxtK3453kNFlDpTRETuhmPt5sGfxxgojOXK+v3Kt/EilqbGltFRDhV8IBvD4h
628+ukzWlD8vN8+iUppEgG+SObkpfOcmg3/PuhdyECl9CxM0ylhcDgcKR3MSAfwJgjPDLIDrUkSh7IWT
629+B4QFmpgQ/mTAiNT+lrIS1TsJT9REXnn3cjoOQpTrET8fujOFT0bYnYmP8SfVcNBjZgDIYumUdfK9
630+ehPteW/zgydSoh2mzBI+QImGfy/M50RK8+dvEKn4u6VR2knuQuk16fJt4F6a+NpZ2kzhA4So+HfC
631+fJhIPBiBUQsCkdq3pVfuBtma7nSSQAcx1i4cDM8jsR1Lc7yPr0IocSZNWSFmoE6rHCUuW8rEOglr
632+jQn3ht2Lb3AAK27Hlom0uckyiAZHF47cpGPdCaqzJQuAu9R6BGPJyffqTWT75wj34k2J5p6wVIc7
633+eSUeExFBCRCyIYtwjodSb0FxQT7/J2nUDPmSDxxonEHEbWMpiOskWyxM7EDUiR0bACW4m7ITZYS8
634+WJwNOJScv0TrU0u5xkmAtumYhT/Hz+V3qNFVOwVebHzlqC/O2teUNMJBbpJVbQoQlWj6Y6kqA0NQ
635+MrdNRjbdh38VB1AihtIEKml2t+p/bp88vkFoGhMRNp0N5Ibah6WvF5CT08JvZTK49+S5cHb+IcW+
636+uG1y2yw7Z1vti+xj7fdV+GuTHZ6b1xCgssPSBMzQSel/Tlzt8bm+FCrTL+BKS2V7RPw90Uw0MA7o
637+3vhIThCzsLcLNEXwB066QmqSGP/iCjLf7F8GXGppZMbwJwlZfWLT3BQ5yFmgYvyCoyWBgwpCBTxw
638+niQ28Bfc0qYAJS5LmYCnThrIzIlSqipJaQzLAklvIhDgyZzsUOckZCExV4sKAZqy3VI17ORbITWa
639+VPl6wJ9K+DZQ+OIYS3Rvhq26JtqfGPzmQpnQl75anAQCVqvCLpeE6m5poHaSB4aTxMMeIgIQdks/
640++ScUsIsEqLiqWZv6YQizJtuKoTCy31tQ9/gtlqZpLE6WEmabCeVeskyA72c+JwxA3SbR4sWCFffH
641+r232ZHsZOF7AjAFCr7ikQXhRIZ+37PC84MQvZs9C1pPeodwvMlyUsQ3+8+gTwwV3jLutCKswusxk
642+fyqVgWfXC5m+E2PB3k/AhjDuknLA39kEiPB7ujfZ3pha/TtQnrROfriTlH1R3XsTbggpbNMMgzjq
643+x5kcgMQEZXt/lyfb29Tb8zitBxMd9nm0pfxK98XtEJrYgQyE3upywb2Sv0CU9IiDO4Pt1TgSnBHW
644+WBlINSX75blpG8nVQqeE6WEnbERfv1ESGrDGuNnvCpq9dXzjomaip9A74M7nPlFIjQNA+k6Nd5jl
645+XJzEAQqMTjAsQQa5UgoTnsqdwahwJfJTBhPFASnrj4oJl2oUlg4tbN5CqgGEX995kx1s3elPYh9g
646+FY++ancnocDlYJIHeyJSB2iPiUWczGS3wGMmtyUmJfz+2kwIVzcJgpAo4AIyXVgkp9RXxYMmTVY3
647+HaZpN2z0fvWJ6Eis9EL3XWlMdB8F2L2mkOS7KXYvusrZlw6rYjZh+yYZVer5uwCW61xNLcUx1P4b
648+Tk61LoTrIXoi03CyVieVpiNGxn4/hpjicwQ/obGhUOaT4mp20QICZPEsu+Zc4PPdZBveZFDdZbDt
649+i5WAkNh2uzoyMGFMhHhS4jUMvA45oa8PHyosKPbrk1Cj54QYfds35FOMP+KnJ35pDSaEB8pP9bEL
650+hb9x8Mpikl0NGIG9u1FA+ECYzIftsSyd/cI4bU3zbVoE76t3iYxvbFAdrA7BXZiOE/pZAfKlw4NB
651+gp3ZIgzlkqBH5VOeXrcgQMHQC3dCgxJo2kRYYRWe/CkPzZEwOBxMvrq2mjwGz9QqkV3uMTGMKRQD
652+ky4u5OosqOrCDbOuBZAw/3H+WMonLLI+RcjGE4dPOn9BmNFZOLSjCbODwzs6ocsjlQSsFSEPZOdF
653+MgXSJKWhO2hYwZoLs1BM06xs6T5lDxDIOsIP/mpM0WBeo28h/n2yoWZCVGx4viuz6mXDQFGo0U3o
654+e2HMW1ZEZ1/Od8kaknKZAlrhCOHWzHzXzoyM4vosG+km2npbW4dKPg7WAD7E0He2tzPosCeJhcYZ
655+C5xSZWLi6y5LhSDsRn+u2XfqmIlLY3WaJ5qFjd76K1Jf2l4tXfiFNXV1riEzCpu+ExLt7UoX8ggE
656+v26GqbDKDNi9d5hsOYKC4/duWVH8kUsBm48/diazKaMT0WzZy3NX5eE/MXNym+1vTpBKd5r0B5c7
657+W7pvwKq/xEw4cKJQ3vXUIEjP+pbZYQWIpOW9QDJ+vV/knZRN7Q2CHswBhu2rR1/WfuBSHBqN16H0
658+U5xrgRGA1s9cYJecPKv6pVevINWmU+1mXsNzV5hWdjI0cwM4l1YNPbgE5FLhECtS20WoBmYJJEjw
659+IAyjG6MuKLwJzB0usC9rcyt8MY46WrpDeeU2hHC8EKE7mJfiOodw0Il3koGLS3ipoEZOHCVztQO6
660+cDe+4PQvVva6V/C9LFPtdxYDJRAktl+5kDN19j4kEJlrVTKGAgCB7YUaxndaCx62Ccq0MSRKsVkI
661+G38uSVUSz/hxtTv83QguBSkR2s3y6x5pkVYSq93rUDIHVY5cIGSN+we07YgkrFrDb3aMFp9Cw1Ez
662+MxnbZaHhg9RpUFhhby6YSeWZgJonBEkVgkIKZWkiQdux+vTao+q0WRtL3VykVp/lWXWfiL0R/K7/
663+QEtD7p29NU5AmruG7X1wQNGTYSRzuVS20is5uMSwNVJQmcDO5jSTL6ug0bBf9FxI8/HDgP1AGlR/
664+3oaZIqZidGYBqrkH7QKqPAEh0btl+jzYn90DNTNXbL/TrnM3LuN75vwnbZecsrI9ueIsT4soYiU8
665+SOLJb+rqQNlSXUk2wL+pnNBKI9oeZqvQ4PCRGKASBLx2XnllXcfz3gj5xP6T1MP864iq6oVJXBRO
666+QJ6ottHfojwdDe+rEMG+oOwBfu/HfPVJ4kVCHMw3GBxc58YLy4KXE0b30kqY6XRHODMV/SQFEYcU
667+fS7G8hQiKhmzCggkdCa16V4jV6c3MO/R/LiKXHXxWB2LrOzBGgyLmy1i4g3/4WKkiJRdb+KCbEXC
668+ULXJEpyhzdWZMjXTrgZ6XkqVuXvi1RUFtqmSOyXfy1LUg0Dxk3AixLgcnboAsFGfMUW5+Ge71Qqj
669+CIxyRHQjzzwvCGDxoIGoqhPm5Snz6lKcR3QPVCScOOuOCGGcGOVWrGiEbvv91oA/DZG6H5+fzK8p
670+73VWsM7BxPZxPxS8Jge6y7Yk/uZ9Ap1lWqGQQN/aYKfVJnEkGWY5Ogigprj21xYFlBDMf7RIvoa7
671+gJ9C/c7/ZkAwBfsxt097xkRDDWAjzDRCOmrAQbcIwkQDQjvaMC6fo1vInmvrAQSbcVbOB7UUvrxQ
672+VLpw1DkxHkz6gGshKZ2ReZDnORXtQiRsVOPA4sTSxBCcClHZmSywa1LgYcGlqn5dfbJGZZRbW5Gr
673+S7eLv82A/I8B+amJP1ZtgwWbgTwRWon9cixlZduMB1dyMFOp78HjnRlYoJ4rrPKWHIvfoeWuEN97
674+uxAY2nAlhYYN3a2/bS7xWszHxiuFokZ/AcYa/q/FBTZ9lV97+eGXzMrVAaQ5P82uWmUVUH9+rMmS
675+fYXbNeImKnrXAI8vJlyZcRKRx06HeTiNrgcRfjHxyIcDsYjAQ2ai1T5xAxC0xRr0doc28FQZIKUv
676+qbSDxA4qkZN0b72WspZFztwdwmY5A3jihYiqBLiR/6O06HfwePLNjr4305R81pgRVLymLGV2vRsZ
677+ZK9sCzXXAFfQg4TSHQTbKkRmLjEX6aQg0iX6oah6bjwfCGw9es7YiTsZ8vd+cSqEC1LhIEiFNFb1
678+C0VWWc0HR8Z+ZOh9h8h+HVjDfQupJu0wvltV9yRasERIChQZh4I7kjgAb2PPdf5jGZviRRDbFwED
679+kYbkDxxbnCw/NbE9mJU+nxKcx+hmo8xLhj1iroh8nVjw4wCxsr8kKrUp6hVmPgQUsFu3IO8uZFKb
680+dwrQCM0tW5ZjKzdtUcIC4mn1RaN5wQR6/JtcfOawcHs0rH9RHjWZvIf7/ssjMuosxLh7BeU1Ljo0
681+ayEQYlpgpDJkYBRiFLd9UwT6lEIMXSalvRADlQtTwcAnjzvpZRnivACLEBN6KUwSeMtQ7QP1DTHf
682+6a/dJiK2RNcexBjRJLkImEPMnxJNWbsrxCiLYsX7pHchBj5LfZk/7CEmYbT+hvWlDrrlZ1G10q0l
683+Ey6xduHAwPVbmzYQE6kNSAAxglmgKHwlKrWFwmrjdjD7VtHdUhuIgXpb/VgZiBnx8GECP5geJq9y
684+1WH+JzAO8E/ZuH6JTGQ5jP8WWZBii+4w28VetILDCCV51TYHc9ybdEh1UQPIruEw6nVIxo8Jtzd1
685+kVSjsrKA1fbIGLVJxN4wO0LiwIKTdcN05lh4YHcGDyPLQaE+kDbujEgW7te431hP8w3TGzfHYXqj
686+hhmV53xzwy03FJF6Sh4apqorsNrkEMO8ZGmY4XmJ68JpLNS4iLu7IPnlmm/kdEQSJO4iNqQMwauL
687+DzU0SsP4tqZKuSHiTnpTqfwCMH0nTSOWGaall1a2UlEa5lAkSDC7zl56uoqqQCRwKfy/7/zELZxZ
688+wjYxWEPjd2NQZid362NrKFzmNLkwzOZE6ZQ780oadBJTvzFM0YQmC0s7MuO/T3HKs7CKgKtgzlSs
689+b35d73T97bjdn5io2aiAzpWCgSwCrjdMG18jFkgpXMHex2wt4mveS3bQtlh7CM3wvz666VrhZ0MQ
690+xBY+aBf2dNoB8YUm2A0DFdLRMHdebahe2S8OuA07VUC8TxdajE5105Kdo3nNgrmQef0f1MtJwK+P
691+54y8XMrmDkbOWKLdOh9HgXoDlZ1coAjIgCy2vk7vNdPC2gLVGMdLLAU4YpEGN3cX/MzUhM2sV238
692+i/PhlzCFdsVGEMJOCwNdTY2UpOwA5Wg1I0Hw1eG5sKbg38SbpvMdmPtxniClv1KAI5ryxX3PMUQK
693+syNf8o6UgbWlXsMS9wWb7QyZAZIiYMl21oXhjC4IirxoMS2Eg455PIHheZlUb8QeNAhi4rxusXXM
694+8JKl2y/g0FELhkkOLLVAedtDPPli9ldvHQLfdxjQEFHX3L9T/+DhuElaK2B8RHLFwag2kNnNmvi5
695+ZoOeRCrXG8AxB6NH5G6AVqnkWNd3vI3qNYiZq965t1WwDPxvKGQOavUvJEWND21EA62F6V44kwWg
696+RyVv4VlHR6gnRkomlADHGSSSFq08EAOTdYOd7+v+y6HS9YH7x6SpTDm+2cAPOp11kKbd5DZG/2BP
697+eaij3cKE8kTTAwI6UnWZANYWfJGci/PHnEKjXrO9qDIiFGC/+NdqCAr0eY8p16XOjc0hn78cAB9v
698+o9WJJUdNGmuR1PbL8ucAK06mQpb/erwha5/j8OHcytqC2iuvcl5o+wE9UiOWeIX3Mqopl+t8e8gX
699+lKDo36HbYK42Z/mF3iKjvzmcJVQQuFwwcxTesTOpadvdnJA7Bkypvx+sfypd5FkM5egODm5xnWfl
700+mGBwx8xjTIQP19GTAWTlZMUopHyfELsKBI1cMd7EBltgGxe4wBUUl1AczfGMIr6nBqGAmAOJzT4U
701+wxHVx4M42uRY6RAfK+1PXpNGvB4Ru2APkuD3iwuGW2zrwiYSaELLYhQdd4GMttj41vjXtxnNqhWZ
702+ePl0dNztyasfYgYYaAgS+8JtR630ylXS/JBq1IrEonySWqFc8Ryer+s49VQT+8lIhru4N97c6JA0
703+WwCUbu9cUI7HNhErhwXRTdX+FlH0adGuQKva73h24Nb8pmJnznlqrkRLzzuIybCN1Ao9Q41Sojwj
704+Me0imi3Ga6EkurJI12Kp+81U+HR+LhLJKNNyjUEdbblWLZ6Bgxvykkeyei0VMCl8SqMYPHhAQL9y
705+VBsNALKSZGanDEd1Mn47O91PNaFUzROwW1hWkxhQ6beB9wIl1x25tP3PdHO1aBexoG6zZwCgqYho
706+GIv3HsOiGU8aSkQY62JlX0n6lfHNVArnkgCaREXIGuxw7+aBKE+IA28ez7rSyLJl4D+Li0qquqPR
707+OitSxzLaScmaG7+OPj/vJFCmhEDmokt5a05ZRGlukOGI8SYQRJMLXa5XyOJTZB6Cdp0hHAVTHkAQ
708+tk5eUHqD1t8D2zU04P75hADIkNTpMgSK0kZwmO5oEjQ8W58Q5ahB2NsmldAeyEgm/2Xx5WE5IErp
709+g7f8gwSeTCcOjKno5oqQNonpaCsG4m2/7tGCrRmBUcYkXgtGJlDCf5ncXgn0O7ogOEGdUiQXEAOp
710+lYoUOevIgTOjvv5KK6bqj7cJIohzBD15VeXs79hUrUejZ/b/oAGn8mKhMqvUyJIT8rqIDIsUZpNm
711+pQWA7kCNlGmFBvtZSS0HWs/yvsPLPhhLlrc/jNwHdntU3DXSgaWMS1P2vDJVIyzV0Gk2ycN/kvOl
712+VPXw0Pv1KElwFBDTUl3WUl8N6dlrpoqA+eRzb7AjCrcGEClE9xTXsfgBIjBvpRoRhQGiLuGLhZpB
713+gLB7LQEFiFPVoLfi2Y13HiB8/5DtHeX9QlR7ldjEA4TJSm4C4koM6ACIHAt4/2F6SbAizvwPvhqo
714+n2Jt/EO2Jcl/O+0fNi6sEkfDfTd8lQvaoYFRF06a1lGT8ljTDGzMi4GiS8/dy9/SkSaVbgX4w/6h
715+f2jcQAJEHyQoIKAdQDhvJRDdr/DnCjh/o6G9QKy3Hej/QEhsEgnFjjsQVns7ohKIu8sDCFRBxp/b
716+/0OngTDWDIQGIrdln8nbtXV97iQMkJVhCgYiYZyN5HahFojClbqKQEj39VK/EL7O2U4ORKge5Vj6
717+EO1AkIbSlmYcp1SXoQMRIOhmcfLGvCM7Xzq76QAOhK+8bKGYSfSuk2sNBGNb0T5BtCNFc1qaK8QV
718+PGe6B68IouGS9vpAGHuKLgeIDw5Z1V84EJhVbPWYFo5cuWFlHuu7+OUpOQPxZE8NQeA1y6kGGiER
719+CxSdt7KUBRDM04l4RaJSBAi/XQZTXxH5ybZXEV7zIYmKkDQS1uTBJIurjiRKAH+loNmuBepEGocj
720+3bLb+UaSRGgJqUoSvW3W6FpKceOWK6w6JGhrs5Kw5ORdEEt35Mzf+jm7TzhegrzLHyUjTfFkF/YD
721+RmvgE2vcOLvW6zEbwXkxsugxiBbmp6Avhcyu2UDt1TcPCJhxy9e1wvOFucv9a7LAB4U86U1Jedl8
722+SeFPWrzSmuZQP2TwKE/WUkmY1nFLvlLjZwQz+Hsr7j77cx5dW3AzEOE0FGlQQZPvWGizA5xvPGzy
723+kBB2X/cnYZeFFkgZzEw1pAjwGU1+IG2eCvifjD37i4jx2SLgWQcF8EiVj3GIPI2Knxcpg2YnA8uy
724+ei6DQgGBw2fYoYWTWHZR2B4TJibbO6hw67E3Olr2/I4RQU760IJqngyteNbu5xhdPbOkDiARTTHI
725+0HuLHo3V/LK5tgcA6xTo3iHsW7oHtJtsuYwHklCMFvBWUaD13GAcS7NnUmL/MCw6N0MRU7Tno+gn
726+WRRxNCdmsg5OsJHlBYReax77JWUqMl+qMDu/LDqOcfA8xOMHcqhA2zAwJn9uadFR5vEl6CXhSAE4
727+IUSgNU/8GG47qQO/iMqUOHEMsjLySPVDabsrX2yR5VbWY3kopzcIP5eTfEj1kcnoHZOHCMstBigD
728+C5lxvFzgWicIxrRJXY6IowkNREUkomUAfOpASN45TbZpl6zLqCC6RpQM/IA2UzMFIlBC3WIcDMjU
729+6wCfhwE4tk6QeVvl8Tb/FJYAvvS45mmKI3je9eV8BtDhbR7FlYYrCKaihlNKH+NZwh7gWzQZ/vmh
730+DqPeNBFkT7w9qCftv1doJPCMaDEYW7cYhBGf/HmD3suzjaO0hoM4JrJcjxJ7GGyqpStFM/JGFy41
731+b6KfqKQn0EWK/FREZ/EpIoGjlnBgk0uCypHIiKt5NMWD0lXLNd8J6GT9BLim7H+hMzsTZQPJDXVH
732+cy/xE8/uhV1EbxQap3UqVkjuyYhbHbSWOmoVboumpkk9nGHee6SELKorIcw1anD7fq4Ih3gvkJ2T
733+O9F+Ccpn2aUmoxEu0joSiX8nXOE8tMShUerJmGyCR8LxZ7eKvF+0ik7wOmUbxajoJMXp3W30DdY1
734+pJAGr6mrOryX8B41ZQz2c8APXP86LRSrNxpgJ04uBn1YWklailH5oIvr3wTmJhKcwLqciDZmHGVq
735+4DWFjR4tpqg7P/VhO9Hs7N1g0HmW932TSKZflnEnjdQK7GwKHo0v6jHJZaZSioHO8ISg2FX2d85J
736+X29mq86AT07VIgA5L6wpY73HNifEWOZJ8I71uAzVGD0ygDjBOXjY2MYPmWueCun0EVenv6p6YF/o
737+/evCKHekWzr2nFjFdyeRlZKhmvkNna5kVROscLHktOeYWVDTRqKigNI+3Ei0mKwTIPisMvDTlkg7
738+oYyCPBXk3uQAf+biC56sWaCaw+dVv4LLJo6OyNtiYCKR6ZdmteCD/OxQpKNWrX2fncPmTTjLh9OE
739+O8FGrrNW2BaMstgMCh8qg1f+L67H3qRfyEXtRsRBK7sdCVfXVoxIKneQ1RaZaqblxl3oFB3p/bEM
740+NDFMU75m8PrywtuMRZLojgc8X6wg5RNRqMLtrzSgX3oRk4epIenUZHct1gKuDCUnuR+SzIFnbd5B
741+tOqPQNdMY0Baoz0qe4K3gSI9d/Ww1H/tQ/j8J4KGhYd2Y+pqp04m4IZuyo3pdgLuVrAphRXU2wxX
742+/1Oglpuqys+ZtsTnGCBvXXtRqAOYqB57b9aJJik5R6+2rsiGYlF6+b2aoGDA+FF3i3aAvCNaRAqQ
743+8ZKyB6ijVHn/AHTUaKLcZiGF/y8o+38k+Q39n78a5CddfUBIRMucBSl1jj0rpzGBgi4gT1VFG+vK
744+g16lC0YBeZDBukIMjerhTx53dqJLtzWxgcmRyACMR0WWSY4pzQO3x56S7irvSUIK4cr8j1leoD1n
745+CHOM6slgVwNZ6SvENTAc7udzgjtchnw9fGNA2eCgXYeuIfKhowkDbPqChJABLzLq7oxa/oNn45pK
746+rAFkJCtaTfvi83HJyoVqRE6eZURPAtWd0h5hACHeP3B9pAXbVOGl2TJkzlhAayiqRYtIp7RvqwLU
747+PLXTGpQ4Ex4gtjkxk8N9BuwST6MAP/7ee8R8ESgoXYCUdMHHhhgFmbBmRaPpkU/K5/5mXykbGBW/
748+NpryOYrWsQGg7oxl2FxY9yMig8RezzW1YE45lThfl5BCSlgq/2rTsbEE8pHQAhSF7KYV0pZJMLiC
749+j9I+H5/hINkvCxXArQX90sIGxrjlZTKxcp8oQnnELuSxH8W7gyMSoFoGJWw5N8Z7zyzVBasg3T49
750+3jnn7Ei9HojSXmMGxDSedkLJ/zuwTfG6nhaE4eH7x9yvwh90oz1vYZU94iWiSqeiI3r3CXHWqPfr
751+6GU366m0DZfQ4TQOkz2kbTRCENCsidN/M16Wjx0VuIuL3GFZYIoCUkS71R//lhtkZCdtlzmkFHQq
752+k8gMrPzMjOg4jObAiI2Cw3fvMkV0hj6WdGjT2hBB5AQFi9LjO2gFUgg1xpI1vvYcevmapv2fF5hy
753+aagztlvkg6jo03Bfm+Yj8dEqsoyqfzvcUAyO2eCMtS9TYOgDPp+N2jHaWNQ+NF+xBcuFauOPA8YZ
754++hQ9WwS+xnZ+hqitnLirX1k1hJMlCpEe/xJTTZs5PNKfGw9BP2mMO/HFMt9UuDlGtSFpsZlqCHCv
755+Kxv8LwuvA3u1hnCywiA+2J3uAcXV1OV0Tz5MvzBalUh2jcZCteikULpeFDJckNMjuIFGbOZX3O8Z
756+eT7O8yWxcdZyJWyGJ5s2ATs33ilKHonBPARo2RwpAI6ylifPudjDx7BLzviKBgUcP6pbcymnCTg8
757+D9llc1iAZv0HoTDbruNTAH5oHqfOiCrWtiXjdbhiGsPCQ6WpjlX1RuUqHOw1lQTnDn56VCOIufDx
758+QpgKCchiLLg1TvlNqNg9MNTiipyUinhjPYMpGoVlJKX2uooIOG1tckd6MzTdo67luE2p2wygGc+s
759+MFR6hVYH2wwuhisDEDiCPbCkXZmEZ8ZVoSwI8BSzy9EgxDrnEIG9gsMbGx4BnNfiOYM+euzvQtRH
760+FwB5mTIiYIFCnKrW07ESYMpxmir93JPTPOggEbCFGvGAOf3HsvcZp8Zci6GK0It8wd2x3RnB87la
761+v5JZ1gGPIs96P6tFZt4HIVk1XDUU4dBQCQVJqRK6aLjEGQxYCs3OSWTD8W/qJsVNbWmwWrojUR1u
762+Ne/422XlAnutUoldHJ8rBTVslShvdIVmaT2yTu06DsIpWAlUyPnnZK2CG8yNmpx+BmXzRJppd8CH
763+RplZwmTaA1GeiUbxPjiesZS5zAmKF/XOZHCGyt770c6JoolFs/Vm7v8vyvgxepeKqLgIjhxCSFwy
764+tMakzHI2iKeY01aJDDc1/MIu6IS9CcaTn+VRLTfx6eCNJk8Hqx2XcM+9uCRXIkku+RUSEO2ZeVO3
765+IJchWsUMbxhef30Ey4SSFVsoAkuopDCjZgo1kPwvKqCoNmSRhJmQOsFq4nEMBAqFj4n1wMicb8BX
766+fRflqz0apnRkIuzihcaHxXnCfkyYGXTkJY5lIO3yYkyc60Jq5EfVxMYGcVhrSP8P6XWiAzH8UmMi
767+CrPJBmtSR/8Fr7D0HDKJse6zCgw4Qh2e0BBbyMlIcz09xrACB0AK4SkM9aQatlWBrp1fOPUw/CQU
768+S8Jm1Kk1+FzHBcpr5+syPWWSO3+/WMqbb/Nw/Jeqi1fQ0tZPJC0GnNAXGxPU2xXidKf4EtMR8w//
769+tjNRvc91IIKMwGmbCTkcFvkuhRo/wpV4mKS3FbWzJM6M9aYlWaC9i4QVjgF2Rkq2meVnkuGHJCOR
770+3m9/mzmA9gmUQzC0LYftCCbnWcTlQ011Fin9WcWKuI+DuFEpmj3Pyk4OKRVirQ9oN4vOQQlA9Nxz
771+umn0yH6UarC8E7CZYEYyP4FcRT/nZOHGonukXzOh1BJNHx16npfEITPz4md81fRx4SUcCWCWVZqi
772+uN4jl0lo5UuNJZi6epDT7X1eWlkTTXrQOYlsCWIpK1E9KSZqHvIlh2hejzXVjBUONq76P7p1acgn
773+3ZxH+87Jt+QTXeAeilNBTpNmnQfbOjjOi/YVlqZtbP0J4tBzBemKoBcJ/w41FU4dsHa+mYh6FyxE
774+JnGSiaHvchUpeeJ26aaa0Y+070fBc7hXUfAyPpVwtt9It6NnT0qqzXOBEgQdN5Zyr70DGEemlFea
775++4X1p9ZnvgpdH4lpXOWJ5HcueO65pmxjTt7Ekb9NreFW5QtNUH08kwRgrsmryzpao1nkFEBw5CtE
776+NMJ6Kn1n8uLA9XOaGXb7/mamoqAZot/l3+vutVpWTBgninkB7V7viKyrc9AidEQAVQTMVxTRwpkP
777+ExdLHc+NXaG24+FwSUZCX1n9ynXob48WD1wUZNGpnPdo1P0F2dAxRbuL//3KnjPwG+0bgWh/BGVN
778+/o9tw+MgQuZ6PAiPYg28csULsKE1Ewkjr1qR0qbjuR1LOvITggQpKu1CVYYCTgxEcfbRbn2oQQZR
779+RO6lL8qb5gU9r1rvwPmdsZk2qrRXyfBJuvNQHnSdszKfi3spG6pf9ijMMmDKWI9WtTNRz79A39K2
780++jNoUWE32p8Zqh9pX1RLkvyO+YrtPCWESS9e/vR4N2xWjb0QBbcTDCquLEt+uaJ+eDcDQAn8oR4e
781+dXW/wQ6aKLUd9r6z0400/tyShE0s/BZA3LzYOS0x8tGx3A0i96SIrh9H/VG3ARWNkWExQCnB/dZ0
782+8VUasIoqTtVGpSfL3SKI12nR+PR6+AjhvkCS7glVeog9HzS+g7BPjq5tXb/tdY+icAS5JqY9fWBZ
783+Tu3vaYE+e4MJpEwu3oOJtCfJYkWRuK7ZG1SFWAUg+2hZTvguxRWYh/B7vahxDuErSAATEXfM792s
784+BdiSH9wgk8LJAL2hiXeSHF46W9fqdKUgKvW/VaLS0x2mkvwCDkI/Uan1GNQQqdW5unNCcyarYHmv
785+2MPwsCQErN7rf4lgSv5QAwIzuco4epqkXBulFBCqtxmrT4RAXSl5bUs8bImZ0sEeispxukQppysU
786+ZDx+vbQRJOfo9xzkkSNMCMmw4AMVU2B2yDMZYB4cu9FFB/T8hug3F8KBCsT5KexDnZX7wVgk4rFu
787+z79cpJSSOiLBMufg1Mk7oHNyPnABhF0ZnbBUhvY0j878jYWu9Ot44AL4q4Cui6TyjjY/0iBX7hhx
788+KkcdWKO96xLxchP2cxyskMu0ghhds26IrnAMXGgcpANWQHSLDMh1GAJSXyAzH3qL9TELjNAWq3X4
789+bSdWk2eL1enOEIrky4vVmlj70y/W7rbjkDawpI+H2/TH3vBkAs31G84TEqNsam/BG6ZZBFlho0/e
790+l9IW1j2Sjbok0C0sWpl9UQhKnjKIgcuO132C5yQb2usuRAFPO/a8AKbQ2HtAfpx1ZsUW8sZh4fo9
791+nKvI1rvySiDE6v6/fqtG+OtjfanHoSylXFgdwZpigK7GcDRsmMYF47mXiiY2Wy2POkDidHQVyz8M
792+SMrgSi5GdFGwBkkiasFYwE3pfuYgLcLhzJYs4mc70Y5VwXf3gh+PzaB+DRrkXwU82Ysfj2jlumsw
793+uokEdKfMZevI0YfLbHZLtEIGcNyx+2vEBJkZSlhd1cCEup9FsQAtG8IzDTJW5VLddrsUIQ4wGkqW
794+E+SggHpnA3Lb4hLXrz3B8d3e/Ocac3DeE/oP8zCbBbcQ5YaBb2wTbiSN3kSGjxwEmxzYwlRLrFJA
795+hjGg6AMkQwWEawTQFHgTp1lqvZtWQZIct0+z1a87TWYK2XXUGWfplLGZUSphAyt+Em3Sa7ygVk5x
796+VT+UnOvHHVKhV7nAOgfjKwc0m+BNT1s+PpCPW+Xp0dBdhyuXAu/h4DlnBtCKq3SAFv7Ym1Ms+KiY
797+KyqD5gwn2DBFkkg/KshUkkxm/mC3xNd7Z6bM2+W7M325G5KVMDdMveSiFJAgvjJT4jKJvfnFoY6D
798+YkP0iJaYywQlm8InMPrby96ZDDzB5pRgU0gvE2rvlMzA6PxNG3YjtgIlXGSi7zRUqxlk4oSIScng
799+cJPSP7w4+L5jpk4bY+Fvgmjllw4Lssu+iFY+uMxcM7j461IyEgOlnbyLwQBKjGEJCJQ/KynVDap2
800+Ua4uBhANVMQ8vNNQMMVtQV0NUZqHraz4u0IVe6cQaYQqGOfa69/R9kcHQCHm54T1rPfODFHupLoe
801+4I8Od08xCNF1wc+aDtPqAkPIDN4lu4gF3PFy160zaETHsoNX3dZgX7sothJAJIAAQVDcqHGyK7rD
802+nhB0Br6xanKFJ493hKeNUo3PixO3ZIqM3f6wpJecWJDYjYwdhuecjilDEcrFln+u4EGl1BM7R/V6
803+Q3KsBTtKED8Pmy2pMBAvbyBhuRW+mNuAVIXozyqgV5x/joVweoilN+Y2ABqbNuNMrAdeBdQlrrZO
804+mmcRyEOuGOBE7W7Fqm8fIxycA5S+WXeRUVhNQcUCBIsMFQfYyUEGsSUyzSuGbOYgg9gWWcNsHCma
805+QcbYEZnmWYQGWcSOyMqRhdCBjKZGbNrdfer9/7ai00WJcsMYrEYnXteOH72BipfdUnKkl5uWMQGW
806+MolSxWsc7iyCMdGqTBql4m0gdjmNCSaUqZQqXsgudAkyJuMu065VvBYiksOYemKZgrKKlxxjggll
807+KlXxwn32Ehi9LpiWvQGfJZJbUqAr3v4oQXGHy50nIRWlwal4cSwk6Fk+CakoDa7ixUs1sFr5pJ4o
808+6eyKt/60HXbi1WWyFa9E3jiWTwoVpYZb8Yb4jLOJ11QokoyOJkoHUvGuABZX8urMzRPvrcLNIvMZ
809+foSfvkwA9+kQg5XOCcEaje2WHeVDvxIP2RUHnFBW3089++TNltbngsXZY65MajZkY1alMV9Xh538
810+JC6ra2TTXCC+vH+Y0fKihEyDvKNujzxZM+1fugF8K79RfAW8GHiN5BH0lMnAgn85iyURs02DZx+8
811+NeWp7VqU4xNu84krPrxh0wRbR905op/SYKF0IEjfdbFktif2kthZEnqLRymWTEo6S3aP9DLHkn7c
812+enskzJKssK3gWDKiglmSde1dUCwpUX+W5F68PUrXNbOk9saSvWdJJ1wAhIdyyi55FhfXt6xcjkml
813+iknCQcdkSDvCr5g8UOCYFN0msi8mHc49JrepiSQ1hH7kmJy2SpAsJpkjHJPR70hrIiBlo4RpddqO
814+irN0SS/HSDoOsv77ftIbXizKuQiCZcuUiHo57Q/jU4KD88eL0QV601DHKSa0gWRZxSGdY+7KJcLB
815+ZFiAoghXTowMShg7vPLi15SyVaTy7UKF4MGSZgpL9JlvLtCBNNQHKyw33QgwyQ6CFy1oitCgo2hX
816+5TIP/hF9oDs4VUfSSsp0KkiBNFZHOnVmliaxB1bVbvpM/1O/wR/oswWBX1aDH5MQ408kjVw4VhHr
817+JIguezGt6KDZP5YVP570BrFUKmP7zz9i6yU6LO0qKnxNA614JHV8PXkAqFVB28c5Ev7rqwS+qzZG
818+VmcQPv9k2qFdhMfiKBI8nX4oW9urPCydw/D1yhVLL9Z7FsFSwhwGdHZiWUlmOCGE2A9lY6JIGH0p
819+JAcjgnN3X55Ug5lltlx5AAgdtHgHihNFOoHQzee3OxABVjSzK0VtLFLCeQ5kL1gdgz8BLVRxGlcH
820+x0RFCOQEuSDgHnKErSXWyjOmkU9unjougPqHIjMlgRiB/6IsbwyaiO8pixAaBDHyFgbhSHgNqeam
821+wblDByacCYG0pkwRoQgOAcBwDi5t8CpTOCfyX3zXubYOvRGqolpeMVUWcRe6bsFEa5bEiWA0lpvk
822+MEi5hCIRbQT3KQ4cXyEvOEu+j2PmBvJ4KwkDF87+92SHrqMNtuTd+WpVvn+g9PoTzktupc/WGIVH
823+o8xjTFOaYaYEkCE2OEgwiG4t9g+7yY30Mh1IcukeXrxMhDcfKuNQAr/SICi4QI/YV4cLJGX38CeK
824+hUSlvidIOjsW/VuLWC95/5Ng6XwIrKYsWmIZ0iXHc+Fw7TREbGcZCJcfly1FFgVmk7wSpXKIcinF
825+f+UeNGHsg1JYv1eKYvOqbfUeasphxTUReLF0hUcZgS4mKawUR9xuzpaEg8+pUSXPki2WD6y5TQzM
826+GZiqYFxa2esgYrmBYksYIlKUFNvhkoL+G0pEz56K1NbmHKoMwhBXk8thKu5z9jBINt1aw0tdt0Rf
827+ssneyEI6hTBzMuMpChYQdMfIR6SI1i2DymDecWSju+R+SDViChfzDqPnwKBlGY9i5zIYC3Rtcy8J
828+xdbhynUrctD5hByHW5lmOZagJPEOueFKgpQRduRwWHrfl5fI/huzLf2/p6KW87c3Cm2l+vYX5hWb
829+r+zLDermtv0HFkqWIu4bU0O0+RAcOOGB3MWNUrqd042wFPcXzEeEDH3ckm/3Fb5cn/mtSW8yOQyg
830+OAQkQtAucASSAUl8TpX8EIeExZ06626TBRYCnhO7SRd+0lvys6Zq0sDvjBpDLITzt/aehKub8uV/
831+RLV/iGCDxxPmfzik+w33j/COOMvmPhrWdu3Vhv8bSfzO8L3wUgUjZV8T/hEzup1+wEUMaFV7Dwl7
832+ltPVrZPOih4YTILDgvd2JtQ/sPJEA5o2QeoXyg0lgl+pjegeQIoJKGOcXtIY97uEiTOzs5Uo6wh1
833+LdkvRBb7KDK5X5xUhCBlUWD2aEHzdeD6QFzi5D0gfrH5UQPYbO21sD9jsbYis9XvBFo32tCjgIwu
834+X9D5UcgWhts7lk8r0dDdHYS32kGm21/EcW93N6cpjS+9dBAB
835+]]>
836+ </i:aipgf>
837+ </metadata>
838+</svg>
internal/cmd/stats/header.svgnew file+673
@@ -0,0 +1,673 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" version="1.1" viewBox="0 0 829.5 43">
3+ <!-- Generator: Adobe Illustrator 30.1.0, SVG Export Plug-In . SVG Version: 2.1.1 Build 136) -->
4+ <defs>
5+ <style>
6+ .st0 {
7+ fill: url(#linear-gradient) !important;
8+ }
9+ </style>
10+ <linearGradient id="linear-gradient" x1="0" y1="22.5" x2="829.5" y2="22.5" gradientTransform="translate(0 44) scale(1 -1)" gradientUnits="userSpaceOnUse">
11+ <stop offset="0" stop-color="#6b50ff"/>
12+ <stop offset="1" stop-color="#ff6daa"/>
13+ </linearGradient>
14+ </defs>
15+ <g id="Header_WIP_copy">
16+ <path class="st0" d="M70.2,36.9l-3.3,6h-1.3l4.6-8.2v2.3ZM70.2,24.4l-10.2,18.5h1.3l9-16.2v-2.3ZM70.2,14.1l-15.9,28.7h1.3l14.6-26.4s0-2.3,0-2.3ZM70.2,3.9l-21.5,38.9h1.3L70.2,6.2v-2.3ZM66.7,0l-23.7,42.8h1.3L68,0h-1.3ZM61,0l-23.7,42.8h1.3L62.3,0h-1.3ZM55.4,0l-23.7,42.8h1.3L56.6,0h-1.3ZM49.7,0l-23.7,42.8h1.3L51,0h-1.3ZM44.1,0l-23.7,42.8h1.3L45.3,0h-1.3ZM38.4,0L14.7,42.8h1.3L39.7,0h-1.3ZM32.7,0L9.1,42.8h1.3L34,0h-1.3ZM27.1,0L3.4,42.8h1.3L28.3,0h-1.3ZM21.4,0L0,38.7v2.3L22.7,0h-1.3ZM15.8,0L0,28.5v2.3L17,0h-1.3ZM10.1,0L0,18.3v2.3L11.4,0s-1.3,0-1.3,0ZM4.4,0L0,8v2.3L5.7,0s-1.3,0-1.3,0ZM351,0l-23.7,42.8h1.3L352.2,0h-1.3ZM356.7,0l-23.7,42.8h1.3L357.9,0h-1.3,0ZM362.4,0l-23.7,42.8h1.3L363.6,0h-1.3ZM368.1,0l-23.7,42.8h1.3L369.4,0h-1.3ZM373.8,0l-23.7,42.8h1.3L375,0h-1.3,0ZM379.5,0l-23.7,42.8h1.3L380.8,0h-1.3ZM385.2,0l-23.7,42.8h1.3L386.5,0h-1.3ZM390.9,0l-23.7,42.8h1.3L392.2,0h-1.3,0ZM396.6,0l-23.7,42.8h1.3L397.9,0h-1.3,0ZM402.3,0l-23.7,42.8h1.3L403.6,0h-1.3ZM408,0l-23.7,42.8h1.3L409.3,0h-1.3,0ZM413.8,0l-23.7,42.8h1.3L415,0h-1.3,0ZM419.5,0l-23.7,42.8h1.3L420.7,0h-1.3,0ZM425.2,0l-23.7,42.8h1.3L426.4,0h-1.3ZM430.9,0l-23.7,42.8h1.3L432.1,0h-1.3,0ZM436.6,0l-23.7,42.8h1.3L437.8,0h-1.3,0ZM442.3,0l-23.7,42.8h1.3L443.5,0h-1.3ZM448,0l-23.7,42.8h1.3L449.2,0h-1.3ZM453.7,0l-23.7,42.8h1.3L455,0h-1.3ZM459.4,0l-23.7,42.8h1.3L460.7,0h-1.3ZM465.1,0l-23.7,42.8h1.3L466.4,0h-1.3ZM470.8,0l-23.7,42.8h1.3L472.1,0h-1.3,0ZM476.5,0l-23.7,42.8h1.3L477.8,0h-1.3ZM482.2,0l-23.7,42.8h1.3L483.5,0h-1.3,0ZM487.9,0l-23.7,42.8h1.3L489.2,0h-1.3,0ZM493.6,0l-23.7,42.8h1.3L494.9,0h-1.3,0ZM499.4,0l-23.7,42.8h1.3L500.6,0h-1.3,0ZM505.1,0l-23.7,42.8h1.3L506.3,0h-1.3ZM510.8,0l-23.7,42.8h1.3L512,0h-1.3,0ZM516.5,0l-23.7,42.8h1.3L517.7,0h-1.3ZM522.2,0l-23.7,42.8h1.3L523.4,0h-1.3ZM527.9,0l-23.7,42.8h1.3L529.1,0h-1.3,0ZM533.6,0l-23.7,42.8h1.3L534.8,0h-1.3,0ZM539.3,0l-23.7,42.8h1.3L540.6,0h-1.3ZM545,0l-23.7,42.8h1.3L546.3,0h-1.3,0ZM550.7,0l-23.7,42.8h1.3L552,0h-1.3,0ZM556.4,0l-23.7,42.8h1.3L557.7,0h-1.3ZM562.1,0l-23.7,42.8h1.3L563.4,0h-1.3ZM567.8,0l-23.7,42.8h1.3L569.1,0h-1.3,0ZM573.5,0l-23.7,42.8h1.3L574.8,0h-1.3ZM579.2,0l-23.7,42.8h1.3L580.5,0h-1.3ZM585,0l-23.7,42.8h1.3L586.2,0h-1.3,0ZM590.7,0l-23.7,42.8h1.3L591.9,0h-1.3ZM596.4,0l-23.7,42.8h1.3L597.6,0h-1.3ZM602.1,0l-23.7,42.8h1.3L603.3,0h-1.3,0ZM607.8,0l-23.7,42.8h1.3L609,0h-1.3,0ZM613.5,0l-23.7,42.8h1.3L614.8,0h-1.3ZM619.2,0l-23.7,42.8h1.3L620.5,0h-1.3ZM624.9,0l-23.7,42.8h1.3L626.2,0h-1.3,0ZM630.6,0l-23.7,42.8h1.3L631.9,0h-1.3ZM636.3,0l-23.7,42.8h1.3L637.6,0h-1.3ZM642,0l-23.7,42.8h1.3L643.3,0h-1.3,0ZM647.7,0l-23.7,42.8h1.3L649,0h-1.3ZM653.4,0l-23.7,42.8h1.3L654.7,0h-1.3ZM659.2,0l-23.7,42.8h1.3L660.4,0h-1.3,0ZM664.9,0l-23.7,42.8h1.3L666.1,0h-1.3,0ZM670.6,0l-23.7,42.8h1.3L671.8,0h-1.3ZM676.3,0l-23.7,42.8h1.3L677.5,0h-1.3ZM682,0l-23.7,42.8h1.3L683.2,0h-1.3,0ZM687.7,0l-23.7,42.8h1.3L688.9,0h-1.3ZM693.4,0l-23.7,42.8h1.3L694.7,0h-1.3ZM699.1,0l-23.7,42.8h1.3L700.3,0h-1.3,0ZM704.8,0l-23.7,42.8h1.3L706.1,0h-1.3ZM710.5,0l-23.7,42.8h1.3L711.8,0h-1.3ZM716.2,0l-23.7,42.8h1.3L717.5,0h-1.3ZM721.9,0l-23.7,42.8h1.3L723.2,0h-1.3,0ZM727.6,0l-23.7,42.8h1.3L728.9,0h-1.3ZM733.3,0l-23.7,42.8h1.3L734.6,0h-1.3,0ZM739,0l-23.7,42.8h1.3L740.3,0h-1.3,0ZM744.8,0l-23.7,42.8h1.3L746,0h-1.3ZM750.5,0l-23.7,42.8h1.3L751.7,0h-1.3,0ZM756.2,0l-23.7,42.8h1.3L757.4,0h-1.3,0ZM761.9,0l-23.7,42.8h1.3L763.1,0h-1.3ZM767.6,0l-23.7,42.8h1.3L768.8,0h-1.3ZM773.3,0l-23.7,42.8h1.3L774.5,0h-1.3ZM779,0l-23.7,42.8h1.3L780.2,0h-1.3,0ZM784.7,0l-23.7,42.8h1.3L786,0h-1.3ZM790.4,0l-23.7,42.8h1.3L791.7,0h-1.3ZM796.1,0l-23.7,42.8h1.3L797.4,0h-1.3,0ZM801.8,0l-23.7,42.8h1.3L803.1,0h-1.3ZM807.5,0l-23.7,42.8h1.3L808.8,0h-1.3,0ZM813.2,0l-23.7,42.8h1.3L814.5,0h-1.3ZM818.9,0l-23.7,42.8h1.3L820.2,0h-1.3ZM824.7,0l-23.7,42.8h1.3L825.9,0h-1.3,0ZM829.5,1.6l-22.8,41.2h1.3l21.5-38.9V1.6h0ZM829.5,11.9l-17.1,30.9h1.3l15.8-28.6s0-2.3,0-2.3ZM829.5,22.3l-11.4,20.6h1.3l10.1-18.3v-2.3h0ZM829.5,32.6l-5.7,10.2h1.3l4.4-8v-2.3h0ZM345.3,0l-23.7,42.8h1.3L346.5,0h-1.3,0ZM339.6,0l-23.7,42.8h1.3L340.8,0h-1.3,0ZM333.9,0l-23.7,42.8h1.3L335.1,0h-1.3,0ZM328.1,0l-23.7,42.8h1.3L329.4,0h-1.3,0ZM322.4,0l-23.7,42.8h1.3L323.7,0h-1.3ZM316.7,0l-23.7,42.8h1.3L318,0h-1.3,0ZM311,0l-23.7,42.8h1.3L312.3,0h-1.3ZM305.3,0l-23.7,42.8h1.3L306.6,0h-1.3ZM299.6,0l-23.7,42.8h1.3L300.9,0h-1.3,0ZM293.9,0l-23.7,42.8h1.3L295.1,0h-1.3,0ZM288.2,0l-23.7,42.8h1.3L289.5,0h-1.3ZM282.5,0l-21.6,39v2.3L283.7,0h-1.3,0ZM276.8,0l-15.9,28.7v2.3L278,0h-1.3,0ZM271.1,0l-10.1,18.4v2.3L272.3,0s-1.3,0-1.3,0ZM265.4,0l-4.4,8v2.3L266.6,0s-1.3,0-1.3,0ZM83.3,43v-6.1h24.4v6.1h-24.4ZM119.9,24.7h18.3v6.1h-18.3v12.2h-6.1V12.5h24.4v6.1h-18.3v6.1ZM138.2,43v-12.2h6.1v12.2h-6.1ZM83.3,12.5h24.4v6.1h-24.4v-6.1ZM77.2,18.6h6.1v18.3h-6.1v-18.3ZM138.2,18.6h6.1v6.1h-6.1v-6.1ZM193.1,12.5h24.4v6.1h-24.4v-6.1ZM187.1,18.6h6.1v6.1h24.4v12.2h-6.1v-6.1h-24.4v-12.2ZM156.6,36.9h18.3v6.1h-18.3v-6.1ZM254.2,12.5v30.5h-6.1v-12.2h-18.3v12.2h-6.1V12.5h6.1v12.2h18.3v-12.2s6.1,0,6.1,0ZM156.6,30.8v6.1h-6.1V12.5h6.1v18.3h0ZM187.1,36.9h24.4v6.1h-24.4v-6.1ZM174.9,12.5h6.1v24.4h-6.1V12.5ZM86.8,6.6c.4-.4.6-.8.6-1.5h-.8c0,.4,0,.7-.3.9-.2.2-.5.3-.9.3s-.7-.1-.9-.3-.3-.5-.3-.9V2c0-.4.1-.7.3-.9s.5-.3.9-.3.7.1.9.3c.2.2.3.5.3.9h.8c0-.6-.2-1.1-.6-1.5s-.9-.5-1.5-.5-1.1.2-1.5.5-.6.8-.6,1.5v3.1c0,.6.2,1.1.6,1.5s.9.5,1.5.5,1.1-.2,1.5-.5h0ZM89.9,7v-3.3c0-.4,0-.7.3-.9s.5-.3.8-.3.6.1.8.3.3.5.3.9v3.4h.8v-3.5c0-.6-.2-1-.5-1.3s-.7-.5-1.2-.5-.7.1-1,.3c-.2.2-.4.5-.4.8h0V0h-.8v6.9h.8,0ZM97.3,6.8c.3-.2.4-.4.5-.8h0v.9h.8v-3.6c0-.5-.2-1-.5-1.3s-.8-.5-1.5-.5-1.1.1-1.4.4c-.3.3-.5.6-.6,1h.8c0-.2.1-.4.3-.5.2-.1.5-.2.8-.2.7,0,1.1.3,1.1,1v.4h-1.6c-.3,0-.6,0-.9.2-.3.1-.5.3-.6.6s-.2.5-.2.8c0,.5.2.9.5,1.2.3.3.7.4,1.3.4s.8,0,1.1-.3h0ZM95.6,6.1c-.2-.2-.3-.4-.3-.7s0-.5.3-.7.4-.2.7-.2h1.5v.7c0,.3-.1.6-.4.8-.2.2-.6.3-1,.3s-.6,0-.8-.2ZM101.4,7v-3.3c0-.4,0-.7.3-.9.2-.2.5-.3.8-.3.7,0,1.1.4,1.1,1.1v.4h.8v-.5c0-.6-.2-1.1-.4-1.4-.3-.3-.7-.5-1.3-.5s-.7.1-1,.3c-.2.2-.4.5-.4.8h0v-1h-.8v5.2h.9ZM106.6,7v-4c0-.2,0-.4.2-.5s.2-.2.4-.2.3,0,.4.2c0,.1.2.3.2.5v4h.7v-4c0-.2,0-.4.2-.5s.2-.2.4-.2.3,0,.4.2.2.3.2.5v4h.8v-4c0-.4,0-.7-.3-1s-.5-.4-.8-.4-.4,0-.6.2c-.2.1-.2.3-.3.5h0c0-.2-.2-.4-.3-.5-.2-.1-.3-.2-.6-.2s-.4,0-.6.2c-.2.2-.2.3-.3.6h0v-.7h-.7v5.2h.8,0ZM112.6,3.5V.6h.9V0h-2.5v.5h.9v2.9h.6ZM114.4,3.5V1.4c0-.2,0-.4,0-.6,0-.2,0-.3,0-.5,0,.1,0,.3.1.4s0,.3,0,.3l.3,1h.5l.3-1c0,0,0-.2,0-.3,0-.2,0-.3.1-.4,0,.1,0,.3,0,.5,0,.2,0,.4,0,.6v2.1h.5V0h-.7l-.3,1c0,0,0,.2,0,.3,0,.1,0,.2,0,.3,0,0,0-.2,0-.3s0-.2,0-.3l-.3-1h-.8v3.4h.5Z"/>
17+ </g>
18+ <metadata>
19+ <i:aipgfRef id="adobe_illustrator_pgf"/>
20+ <i:aipgf id="adobe_illustrator_pgf" i:pgfEncoding="zstd/base64" i:pgfVersion="24">
21+<![CDATA[
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
491+ZLeWJV7GvOslXcV1uSx55a7XRf313f5/y6Woalot7UrVP11+iiqdMptz/7Pkq3Nv6b0vvF2c+yth
492+uqme6q02ZV+WjGpnqia+tSip1MtQHx/N0lb/5f6Zda/9VNNfaqL9f0qn675t6pWnm9J6U25NXjRD
493+Xuup9+x76m4q7UrTb+XlzYzYy/6PudCU31e/NnbyYknC713O+bdtaKa4mvGXvaSLvRcy7jpONbXt
494+6q1L5urv1mfmtnoPFbN3U03R+pZUs9G8/11SW9u3eX23/3+3bJ8fv9v/v1f2Pmd2o+aZNa9V5jSz
495+06X63pn8/27LWVNdWS95GfsPzfjXp2eq6RzdFVniPbtH/2cJf/XmIi/3mxnj0sz03mb8/+bFm0pl
496+VYqSHJP97cwSF262rl36me0ux8RXXTezx9WYaspbxjf/VVKkiouHmJ7HfL2/NFkNsVd1qdTNvJzr
497+TknRri7EyJSkGJmalkmd3L1qq09JUR76/eNC31fVpefn7ojcaw9RSVFeZEqKFpdGhrrOUbU5982y
498+bTXm+qsr57Lj4z+1114ofbLd7+uvPUdrRtNT0/vyvFyr1//8qLzOHrOTbamUnIi6/cv2TVUvVyMj
499+IvZ6VVd+z+TFi/v5yG29bldiY+vE///Hha7ul8/Lk3N1auPuva2T9lcz/6/y6/83LlVltlTm/z9b
500+qWqKEBVdn///eTE/9qGhL05rRvb/z1+vvn1r6bxc1RTpv6W/rc/l/F9DM/tdjLd2lRR5Lyqn/5lZ
501+ty+a5tJVU/SLprxnZuzLsZ/1PM3MNhcfLq5jYzVFyssvQXQpSlLcO2fP5a/XmMb/v7yWlRS9HZ62
502+7i2LcvWdz///fjGrKbJjM7O7xVFjq7r9/xsua6US2bVcRKpeIl4U6CIyJQCQyNRFZKoEowy4hC5K
503+LMqUmBkvIj737Rq6reFrW9r9m/cbbuaVYElEESXggOASutiUYJSCi8hUBinKYAShPlLkeNH3Vcig
504+oOQMKE4BWjCqTTYM4yF0kRgD0sTkTJajMQcGLhKFR1aj0WHdUkIgH8PAJIPBw0SENsDJRGREcFkF
505+gMvGUCrcicvGICxO44zEZWPTQgFxIbB4WsFsCH26tsfYdxq9Iut+StFZvjPfqWt3ah/q6oz+M/17
506+1SNudYWi6woFfVkb1yPU9OxeS+N9XX1+5cvXNfYo23mzb3WyR4eojC95u+pE3fb43c6u2fa4Otuj
507+20Z3727njI79UKVI5qcmbWk61WV7E6sU5F30u8Rej6ikqNkVJ13EUynMKKH2qYmXPa/Z7tCzz/HM
508+WMqd2s9VitSHasqfOPm5k727J1NdaCpt3Lp9mNj8aXmnpOhZLZHzUMpTk9/f2ZkU2fZqO54ii9jS
509+7/QwGRmX/e66ERVbsuWNSkLpJm5Mx0tGlxwZlR3dVz7uY6PlP1r29qNk6XgmXTpmrna8k/oylz7m
510+Ix+mpT/qQkzFNDWUNlPXnV2qKVOzL/dSajVX/P5fTcQ8TM13R0dXU3SGuvx+MvRVc8zL49x/z4Xn
511+aoo23fzX1qV+Pm6n+nN2rpMW3dxcTSgZOn9/q0nS82/vPEc3X29vNZlLaf7dk3lndzd/7z2/tMg9
512+ebeSzHl3W00t7dLex5UtOfdqa6tJSs7OVhNvb3Y23+LtXanXbWNjq2kZsSdN0+u9/tyUlmZfW6sp
513+09faWk0oSYn/vPxw+/oZn9V0uPjOnU9i58narHub1bT+JV763PyS+zKryaX093NpV7evXF6+dmVl
514+NbXEjHqqvHrrl5Wky3hPzTh/dS8ZWU3ryos8qaYerz8+VGlXJ688PlbTpRsbqylZkZXEyGh8xvZL
515+UdJlyL+/Xu/+fdV0rH99jM7Gb9zsybreq6U0/t5G4/7s7VWTdI/LmXlX9bLt19mR13Edq+8y591d
516+NUnat6+rpl3ZksSrquqrWcqV/Lm3kKXexVw1nS5e6dft2qfj9rJVRlxclXaZ8u2tmlJKQ1/+d1+a
517+e7n6qXfL36dpqybddcbMx11b28ZN3P/lr7cQV3v16ePzHd66t3Mvu2V0dVXT2lpbzfWvSuJltpv5
518+l2iWv7i1VU3Sr1ue+n/qO3r2pRniutb3d9y1rPyrfVHSla593OZodr5+dVVNLvXqXrrpC1fVxHn2
519+/n+7uH1ZY6vearWWAirDQwEGg8EokMqJBgGwWGiJQCEWlxZQSCUCqZxoALmcRKAAnLSoqBAIw4WT
520+0IOJiRCIACeSRAANLCglHg4JJRoRPiBEKAkgUQYiYhUMVB+MkpLnuCgBfVgqTCGWlAccFx2IqASj
521+BnAh5HLCAAMjMpWCgYIR4cTEd7eaQCKciKw1sshUMKKL1KKbiCyyzJ76YCgp0d1WkTW19cwN+3X3
522+7vR3EeU09dt582+X71r/zvvdf3PVUy3fc08N2dscex23195dd+6itWZH39O9U5Le3S69+2V77kNB
523+VdTttLw+1HtGt9d2S7S+TsSPqIffq37XZ5pL7/gznW0Vj+8u9Y8XdfrEe5WipFuTzpTtOqfcdo3K
524+3srHx4qNypLquJ3hqmnfYX6ee+++qZ3dvd1+mtrperu3Uyj5vJnmdm7niriKbhclKx6yuW/qdSd1
525+V7/l/ea33aFs2yE6nq0fCttp9BNbqhQl2Un3vMp/pme3/K7r/t2u7XbXjnYKpdEu7/A+faWd2pna
526+qdq56nxy2qWdQkE7tPsO9tnZ2fHZ9akUhcL7zG+9b/74/NHbav4h3+prNEPudl7d/J7R+r5C8WTP
527+qO8Mz/X/U9cu7quJc//79xKR+68/DTNN3f+Xjz/i9z40zOVETv3N04+S3dTQc/H87/ws1VPfcz33
528+99k2+ZX0+amYtvtn/W67n2v/f2rsvG37+8YS/vu+6nxGp6amUeorlP3I2TZ9NdEU+X2f+RXKO/Z7
529+v0KJ9H5N8XPRuO9N/aPv20M/M32VPPtVh/P7OXtXv5qid85+VClKsvd3bT5DSXUiXzvtP819j16Z
530+f/3MLLJlrzqRrjvfm0ae9lFmqnKnPeO618gx/z5aVUXzs9M+w2c/U3xXz/b2/c0/w1eS6kTHyfib
531+n7fwI/9L01S0f71DRWM+Q/3z01zs/0de9/cK5T7it77jW2Zv9gol2jRzZ1N7je45vS357KcoTbef
532+9/1UipLO1n3xjLM3c/HWNtU5dc3Z9iw99U5fdS9VJ8r8/OXLftRlw/TXla5Qole93r5UX21fjw49
533+D/tyG3v/X6FE3ajRXzc+H2qEm5h+rDq2/ajcp3ppmdl4C9WNW/tM1aPrTO/jjC+oRDDq9qmmpA4p
534+NDMzAQAAwxIIMGgsOhHLZBIpenYUgAhRWCY2MiocKiBGJojIwxGJJAYxDEOBHAhy2ByBNiAAyAL/
535+Phu9rc3Lusm4Txe/VMlu0perH2P1FGh6m5Kx9wHdkUWQ9sjq6LUDUFeXKuy+LETaWen4en/9wXBB
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
670+]]>
671+ </i:aipgf>
672+ </metadata>
673+</svg>
internal/cmd/stats/heartbit.svgnew file+43
@@ -0,0 +1,43 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50.47 42.99">
3+ <defs>
4+ <style>
5+ .cls-1 {
6+ fill: #ff6daa;
7+ }
8+
9+ .cls-2 {
10+ fill: #ff13a9;
11+ }
12+
13+ .cls-3 {
14+ fill: #ff388b;
15+ }
16+ </style>
17+ </defs>
18+ <g id="Header_HeartBit_04" data-name="Header HeartBit 04">
19+ <g>
20+ <polygon id="Heart_Pink" data-name="Heart Pink" class="cls-1" points="22.87 7.13 22.87 3.48 20.3 3.48 20.3 0 7.59 0 7.59 3.48 3.66 3.48 3.66 7.13 0 7.13 0 25.24 3.66 25.24 3.66 30.73 7.59 30.73 7.59 35.49 12.99 35.49 12.99 38.05 17.38 38.05 17.38 40.24 20.85 40.24 20.85 42.99 29.62 42.99 29.62 40.24 33.09 40.24 33.09 38.05 37.48 38.05 37.48 35.49 42.88 35.49 42.88 30.73 46.81 30.73 46.81 25.24 50.47 25.24 50.47 7.13 46.81 7.13 46.81 3.48 42.88 3.48 42.88 0 30.17 0 30.17 3.48 27.6 3.48 27.6 7.13 22.87 7.13"/>
21+ <g>
22+ <rect id="Face_02" data-name="Face 02" x="30.32" y="16.07" width="2.16" height="5.85"/>
23+ <path d="M32.53,21.98h-2.27v-5.96h2.27v5.96Z"/>
24+ </g>
25+ <g>
26+ <rect id="Face_02-2" data-name="Face 02" x="17.99" y="16.07" width="2.16" height="5.85"/>
27+ <path d="M20.21,21.98h-2.27v-5.96h2.27v5.96Z"/>
28+ </g>
29+ <g>
30+ <rect id="Face_02-3" data-name="Face 02" class="cls-2" x="14.44" y="22.11" width="2.16" height="2.16"/>
31+ <path class="cls-3" d="M14.5,24.21h2.05v-2.05h-2.05v2.05Z"/>
32+ </g>
33+ <g>
34+ <rect id="Face_02-4" data-name="Face 02" class="cls-2" x="33.87" y="22.11" width="2.16" height="2.16"/>
35+ <path class="cls-3" d="M36.08,24.32h-2.27v-2.27h2.27v2.27Z"/>
36+ </g>
37+ <g>
38+ <rect id="Face_02-5" data-name="Face 02" x="23.43" y="22.11" width="3.62" height="2.16"/>
39+ <path d="M27.1,24.32h-3.73v-2.27h3.73v2.27Z"/>
40+ </g>
41+ </g>
42+ </g>
43+</svg>
internal/cmd/stats/index.cssnew file+275
@@ -0,0 +1,275 @@
1+:root {
2+ /* Dark mode colors - charmtone dark palette */
3+ --bg: #201f26;
4+ --bg-secondary: #2d2c35;
5+ --text: #fffaf1;
6+ --text-muted: #858392;
7+
8+ /* Charmtone colors (global - same in both light and dark modes) */
9+ --charple: #6b50ff;
10+ --cherry: #ff388b;
11+ --julep: #00ffb2;
12+ --urchin: #c337e0;
13+ --butter: #fffaf1;
14+ --squid: #858392;
15+ --pepper: #201f26;
16+ --iron: #4d4c57;
17+ --tuna: #ff6daa;
18+ --uni: #ff937d;
19+ --coral: #ff577d;
20+ --violet: #c259ff;
21+ --malibu: #00a4ff;
22+ --hazy: #8b75ff;
23+}
24+
25+/* Light mode colors - charmtone light palette */
26+@media (prefers-color-scheme: light) {
27+ :root {
28+ --bg: #f0f0f0;
29+ --bg-secondary: #fbfbfb;
30+ --text: #201f26;
31+ --text-muted: #4d4c57;
32+ }
33+}
34+
35+* {
36+ margin: 0;
37+ padding: 0;
38+ box-sizing: border-box;
39+}
40+
41+body {
42+ font-family:
43+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
44+ sans-serif;
45+ background: var(--bg);
46+ color: var(--text);
47+ line-height: 1.6;
48+ padding: 2rem 1rem;
49+}
50+
51+.container {
52+ max-width: 1200px;
53+ margin: 0 auto;
54+}
55+
56+.header-wrapper {
57+ max-width: 1200px;
58+ margin: 0 auto 2rem;
59+}
60+
61+.header-wrapper a {
62+ display: block;
63+ text-decoration: none;
64+}
65+
66+.header-content {
67+ display: flex;
68+ align-items: center;
69+ width: 100%;
70+}
71+
72+.header-svg {
73+ flex-grow: 1;
74+ flex-shrink: 1;
75+ min-width: 0;
76+ overflow: hidden;
77+ height: 70px;
78+ display: flex;
79+ align-items: center;
80+}
81+
82+.header-svg svg {
83+ height: 70px;
84+ width: auto;
85+ min-width: 1300px;
86+ display: block;
87+ pointer-events: none;
88+}
89+
90+.heartbit-svg {
91+ flex-shrink: 0;
92+ width: 70px;
93+ flex-basis: 70px;
94+ margin-left: 1rem;
95+}
96+
97+.heartbit-svg svg {
98+ width: 100%;
99+ height: auto;
100+ display: block;
101+}
102+
103+.header-info {
104+ margin-bottom: 2rem;
105+ font-size: 0.875rem;
106+ color: var(--hazy);
107+ font-family: "JetBrains Mono", "SF Mono", Consolas, monospace;
108+}
109+
110+.stats-grid {
111+ display: flex;
112+ flex-wrap: wrap;
113+ gap: 1rem;
114+ margin-bottom: 2rem;
115+ width: 100%;
116+}
117+
118+.stat-card {
119+ background: var(--bg-secondary);
120+ border-radius: 12px;
121+ padding: 1.5rem;
122+ flex: 1 1 150px;
123+ max-width: calc((100% - 5rem) / 6);
124+}
125+
126+@media (prefers-color-scheme: light) {
127+ .stat-card {
128+ background: var(--butter);
129+ }
130+}
131+
132+@media (max-width: 1024px) {
133+ .stat-card {
134+ max-width: calc((100% - 2rem) / 3);
135+ }
136+}
137+
138+@media (max-width: 600px) {
139+ .stat-card {
140+ max-width: calc((100% - 1rem) / 2);
141+ }
142+}
143+
144+.stat-card h3 {
145+ font-size: 0.75rem;
146+ color: var(--text-muted);
147+ text-transform: uppercase;
148+ letter-spacing: 0.05em;
149+ margin-bottom: 0.5rem;
150+}
151+
152+.stat-card .value {
153+ font-size: 2rem;
154+ font-weight: 700;
155+ color: var(--butter);
156+ white-space: nowrap;
157+}
158+
159+@media (prefers-color-scheme: light) {
160+ .stat-card .value {
161+ color: var(--pepper);
162+ }
163+}
164+
165+.charts-grid {
166+ display: flex;
167+ flex-direction: column;
168+ gap: 1.5rem;
169+ margin-bottom: 2rem;
170+ width: 100%;
171+}
172+
173+.chart-card {
174+ background: var(--bg-secondary);
175+ border-radius: 12px;
176+ padding: 1.5rem;
177+ width: 100%;
178+ box-sizing: border-box;
179+}
180+
181+@media (prefers-color-scheme: light) {
182+ .chart-card {
183+ background: var(--butter);
184+ }
185+}
186+
187+.chart-card.full-width {
188+ width: 100%;
189+}
190+
191+.chart-row {
192+ display: grid;
193+ grid-template-columns: repeat(2, 1fr);
194+ gap: 1.5rem;
195+ width: 100%;
196+}
197+
198+.chart-row .chart-card {
199+ width: 100%;
200+}
201+
202+@media (max-width: 1024px) {
203+ .chart-row {
204+ grid-template-columns: 1fr;
205+ }
206+}
207+
208+.chart-card h2 {
209+ font-size: 1.25rem;
210+ margin-bottom: 1rem;
211+ color: var(--text);
212+}
213+
214+.chart-container {
215+ position: relative;
216+ height: 300px;
217+}
218+
219+.chart-container.tall {
220+ height: 400px;
221+}
222+
223+table {
224+ width: 100%;
225+ border-collapse: collapse;
226+ margin-top: 1rem;
227+}
228+
229+th,
230+td {
231+ text-align: left;
232+ padding: 0.75rem;
233+ border-bottom: 1px solid var(--border);
234+}
235+
236+th {
237+ color: var(--text-muted);
238+ font-weight: 500;
239+ font-size: 0.875rem;
240+}
241+
242+td {
243+ font-family: "JetBrains Mono", "SF Mono", Consolas, monospace;
244+}
245+
246+.model-tag {
247+ background: var(--bg);
248+ padding: 0.25rem 0.5rem;
249+ border-radius: 4px;
250+ font-size: 0.875rem;
251+}
252+
253+.footer-container {
254+ max-width: 1200px;
255+ margin: 2rem auto 0;
256+}
257+
258+.footer-container svg {
259+ width: 100%;
260+ height: auto;
261+ display: block;
262+}
263+
264+/* Override charm brand colors in footer */
265+.footer-container .st2 {
266+ fill: #fffaf1 !important;
267+}
268+
269+@media (prefers-color-scheme: light) {
270+
271+ /* Override charm brand colors in footer */
272+ .footer-container .st2 {
273+ fill: #644ced !important;
274+ }
275+}
internal/cmd/stats/index.htmlnew file+136
@@ -0,0 +1,136 @@
1+<!doctype html>
2+<html lang="en">
3+ <head>
4+ <meta charset="UTF-8" />
5+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+ <title>Crush Usage Statistics</title>
7+ <link rel="preconnect" href="https://cdn.jsdelivr.net" />
8+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10+ <link
11+ href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap"
12+ rel="stylesheet"
13+ />
14+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
15+ <style>
16+ {{.CSS}}
17+ </style>
18+ </head>
19+ <body>
20+ <div class="container">
21+ <div class="header-wrapper">
22+ <a href="https://charm.land/crush" class="header-link">
23+ <div class="header-content">
24+ <div class="header-svg">{{.Header}}</div>
25+ <div class="heartbit-svg">{{.Heartbit}}</div>
26+ </div>
27+ </a>
28+ </div>
29+
30+ <div class="header-info">
31+ Generated by {{.Username}} for {{.ProjectName}} in {{.GeneratedAt}}.
32+ </div>
33+
34+ <div class="stats-grid">
35+ <div class="stat-card">
36+ <h3>Total Sessions</h3>
37+ <div class="value" id="total-sessions"></div>
38+ </div>
39+ <div class="stat-card">
40+ <h3>Total Messages</h3>
41+ <div class="value" id="total-messages"></div>
42+ </div>
43+ <div class="stat-card">
44+ <h3>Total Tokens</h3>
45+ <div class="value" id="total-tokens"></div>
46+ </div>
47+ <div class="stat-card">
48+ <h3>Total Cost</h3>
49+ <div class="value cost" id="total-cost"></div>
50+ </div>
51+ <div class="stat-card">
52+ <h3>Tokens/Session</h3>
53+ <div class="value" id="avg-tokens"></div>
54+ </div>
55+ <div class="stat-card">
56+ <h3>Response Time</h3>
57+ <div class="value" id="avg-response"></div>
58+ </div>
59+ </div>
60+
61+ <div class="charts-grid">
62+ <div class="chart-card full-width">
63+ <h2>Activity Heatmap</h2>
64+ <div class="chart-container tall">
65+ <canvas id="heatmapChart"></canvas>
66+ </div>
67+ </div>
68+
69+ <div class="chart-card full-width">
70+ <h2>Activity (Last 30 Days)</h2>
71+ <div class="chart-container tall">
72+ <canvas id="recentActivityChart"></canvas>
73+ </div>
74+ </div>
75+
76+ <div class="chart-card full-width">
77+ <h2>Tool Usage</h2>
78+ <div class="chart-container tall">
79+ <canvas id="toolChart"></canvas>
80+ </div>
81+ </div>
82+
83+ <div class="chart-row">
84+ <div class="chart-card">
85+ <h2>Messages by Provider</h2>
86+ <div class="chart-container">
87+ <canvas id="providerPieChart"></canvas>
88+ </div>
89+ </div>
90+
91+ <div class="chart-card">
92+ <h2>Token Distribution</h2>
93+ <div class="chart-container">
94+ <canvas id="tokenPieChart"></canvas>
95+ </div>
96+ </div>
97+ </div>
98+
99+ <div class="chart-card full-width">
100+ <h2>Usage by Model</h2>
101+ <div class="chart-container tall">
102+ <canvas id="modelChart"></canvas>
103+ </div>
104+ </div>
105+
106+ <div class="chart-card full-width">
107+ <h2>Daily Usage History</h2>
108+ <div style="overflow-x: auto">
109+ <table id="daily-table">
110+ <thead>
111+ <tr>
112+ <th>Date</th>
113+ <th>Sessions</th>
114+ <th>Prompt Tokens</th>
115+ <th>Completion Tokens</th>
116+ <th>Total Tokens</th>
117+ <th>Cost</th>
118+ </tr>
119+ </thead>
120+ <tbody></tbody>
121+ </table>
122+ </div>
123+ </div>
124+ </div>
125+ </div>
126+
127+ <div class="footer-container">
128+ <div class="footer">{{.Footer}}</div>
129+ </div>
130+
131+ <script>
132+ const stats = {{.StatsJSON}};
133+ {{.JS}}
134+ </script>
135+ </body>
136+</html>
internal/cmd/stats/index.jsnew file+356
@@ -0,0 +1,356 @@
1+// Get all charmtone colors once from computed styles
2+const rootStyles = getComputedStyle(document.documentElement);
3+const colors = {
4+ charple: rootStyles.getPropertyValue("--charple").trim(),
5+ cherry: rootStyles.getPropertyValue("--cherry").trim(),
6+ julep: rootStyles.getPropertyValue("--julep").trim(),
7+ urchin: rootStyles.getPropertyValue("--urchin").trim(),
8+ butter: rootStyles.getPropertyValue("--butter").trim(),
9+ squid: rootStyles.getPropertyValue("--squid").trim(),
10+ pepper: rootStyles.getPropertyValue("--pepper").trim(),
11+ tuna: rootStyles.getPropertyValue("--tuna").trim(),
12+ uni: rootStyles.getPropertyValue("--uni").trim(),
13+ coral: rootStyles.getPropertyValue("--coral").trim(),
14+ violet: rootStyles.getPropertyValue("--violet").trim(),
15+ malibu: rootStyles.getPropertyValue("--malibu").trim(),
16+};
17+
18+const easeDuration = 500;
19+const easeType = "easeOutQuart";
20+
21+// Helper functions
22+function formatNumber(n) {
23+ return new Intl.NumberFormat().format(Math.round(n));
24+}
25+
26+function formatCompact(n) {
27+ if (n >= 1000000) return (n / 1000000).toFixed(1) + "M";
28+ if (n >= 1000) return (n / 1000).toFixed(1) + "k";
29+ return Math.round(n).toString();
30+}
31+
32+function formatCost(n) {
33+ return "$" + n.toFixed(2);
34+}
35+
36+function formatTime(ms) {
37+ if (ms < 1000) return Math.round(ms) + "ms";
38+ return (ms / 1000).toFixed(1) + "s";
39+}
40+
41+const charpleColor = { r: 107, g: 80, b: 255 };
42+const tunaColor = { r: 255, g: 109, b: 170 };
43+
44+function interpolateColor(ratio, alpha = 1) {
45+ const r = Math.round(charpleColor.r + (tunaColor.r - charpleColor.r) * ratio);
46+ const g = Math.round(charpleColor.g + (tunaColor.g - charpleColor.g) * ratio);
47+ const b = Math.round(charpleColor.b + (tunaColor.b - charpleColor.b) * ratio);
48+ if (alpha < 1) {
49+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
50+ }
51+ return `rgb(${r}, ${g}, ${b})`;
52+}
53+
54+function getTopItemsWithOthers(items, countKey, labelKey, topN = 10) {
55+ const topItems = items.slice(0, topN);
56+ const otherItems = items.slice(topN);
57+ const otherCount = otherItems.reduce((sum, item) => sum + item[countKey], 0);
58+ const displayItems = [...topItems];
59+ if (otherItems.length > 0) {
60+ const otherItem = { [countKey]: otherCount, [labelKey]: "others" };
61+ displayItems.push(otherItem);
62+ }
63+ return displayItems;
64+}
65+
66+// Populate summary cards
67+document.getElementById("total-sessions").textContent = formatNumber(
68+ stats.total.total_sessions,
69+);
70+document.getElementById("total-messages").textContent = formatCompact(
71+ stats.total.total_messages,
72+);
73+document.getElementById("total-tokens").textContent = formatCompact(
74+ stats.total.total_tokens,
75+);
76+document.getElementById("total-cost").textContent = formatCost(
77+ stats.total.total_cost,
78+);
79+document.getElementById("avg-tokens").innerHTML =
80+ '<span title="Average">x̅</span> ' +
81+ formatCompact(stats.total.avg_tokens_per_session);
82+document.getElementById("avg-response").innerHTML =
83+ '<span title="Average">x̅</span> ' + formatTime(stats.avg_response_time_ms);
84+
85+// Chart defaults
86+Chart.defaults.color = colors.squid;
87+Chart.defaults.borderColor = colors.squid;
88+
89+if (stats.recent_activity?.length > 0) {
90+ new Chart(document.getElementById("recentActivityChart"), {
91+ type: "bar",
92+ data: {
93+ labels: stats.recent_activity.map((d) => d.day),
94+ datasets: [
95+ {
96+ label: "Sessions",
97+ data: stats.recent_activity.map((d) => d.session_count),
98+ backgroundColor: colors.charple,
99+ borderRadius: 4,
100+ yAxisID: "y",
101+ },
102+ {
103+ label: "Tokens (K)",
104+ data: stats.recent_activity.map((d) => d.total_tokens / 1000),
105+ backgroundColor: colors.julep,
106+ borderRadius: 4,
107+ yAxisID: "y1",
108+ },
109+ ],
110+ },
111+ options: {
112+ responsive: true,
113+ maintainAspectRatio: false,
114+ animation: { duration: 800, easing: easeType },
115+ interaction: { mode: "index", intersect: false },
116+ scales: {
117+ y: { position: "left", title: { display: true, text: "Sessions" } },
118+ y1: {
119+ position: "right",
120+ title: { display: true, text: "Tokens (K)" },
121+ grid: { drawOnChartArea: false },
122+ },
123+ },
124+ },
125+ });
126+}
127+
128+// Heatmap (Hour × Day of Week) - Bubble Chart
129+const dayLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
130+
131+let maxCount =
132+ stats.hour_day_heatmap?.length > 0
133+ ? Math.max(...stats.hour_day_heatmap.map((h) => h.session_count))
134+ : 0;
135+if (maxCount === 0) maxCount = 1;
136+const scaleFactor = 20 / Math.sqrt(maxCount);
137+
138+if (stats.hour_day_heatmap?.length > 0) {
139+ new Chart(document.getElementById("heatmapChart"), {
140+ type: "bubble",
141+ data: {
142+ datasets: [
143+ {
144+ label: "Sessions",
145+ data: stats.hour_day_heatmap
146+ .filter((h) => h.session_count > 0)
147+ .map((h) => ({
148+ x: h.hour,
149+ y: h.day_of_week,
150+ r: Math.sqrt(h.session_count) * scaleFactor,
151+ count: h.session_count,
152+ })),
153+ backgroundColor: (ctx) => {
154+ const count =
155+ ctx.raw?.count || ctx.dataset.data[ctx.dataIndex]?.count || 0;
156+ const ratio = count / maxCount;
157+ return interpolateColor(ratio);
158+ },
159+ borderWidth: 0,
160+ },
161+ ],
162+ },
163+ options: {
164+ responsive: true,
165+ maintainAspectRatio: false,
166+ animation: false,
167+ scales: {
168+ x: {
169+ min: 0,
170+ max: 23,
171+ grid: { display: false },
172+ title: { display: true, text: "Hour of Day" },
173+ ticks: {
174+ stepSize: 1,
175+ callback: (v) => (Number.isInteger(v) ? v : ""),
176+ },
177+ },
178+ y: {
179+ min: 0,
180+ max: 6,
181+ reverse: true,
182+ grid: { display: false },
183+ title: { display: true, text: "Day of Week" },
184+ ticks: { stepSize: 1, callback: (v) => dayLabels[v] || "" },
185+ },
186+ },
187+ plugins: {
188+ legend: { display: false },
189+ tooltip: {
190+ callbacks: {
191+ label: (ctx) =>
192+ dayLabels[ctx.raw.y] +
193+ " " +
194+ ctx.raw.x +
195+ ":00 - " +
196+ ctx.raw.count +
197+ " sessions",
198+ },
199+ },
200+ },
201+ },
202+ });
203+}
204+
205+if (stats.tool_usage?.length > 0) {
206+ const displayTools = getTopItemsWithOthers(
207+ stats.tool_usage,
208+ "call_count",
209+ "tool_name",
210+ );
211+ const maxValue = Math.max(...displayTools.map((t) => t.call_count));
212+ new Chart(document.getElementById("toolChart"), {
213+ type: "bar",
214+ data: {
215+ labels: displayTools.map((t) => t.tool_name),
216+ datasets: [
217+ {
218+ label: "Calls",
219+ data: displayTools.map((t) => t.call_count),
220+ backgroundColor: (ctx) => {
221+ const value = ctx.raw;
222+ const ratio = value / maxValue;
223+ return interpolateColor(ratio);
224+ },
225+ borderRadius: 4,
226+ },
227+ ],
228+ },
229+ options: {
230+ indexAxis: "y",
231+ responsive: true,
232+ maintainAspectRatio: false,
233+ animation: { duration: easeDuration, easing: easeType },
234+ plugins: { legend: { display: false } },
235+ },
236+ });
237+}
238+
239+// Token Distribution Pie
240+new Chart(document.getElementById("tokenPieChart"), {
241+ type: "doughnut",
242+ data: {
243+ labels: ["Prompt Tokens", "Completion Tokens"],
244+ datasets: [
245+ {
246+ data: [
247+ stats.total.total_prompt_tokens,
248+ stats.total.total_completion_tokens,
249+ ],
250+ backgroundColor: [colors.charple, colors.julep],
251+ borderWidth: 0,
252+ },
253+ ],
254+ },
255+ options: {
256+ responsive: true,
257+ maintainAspectRatio: false,
258+ animation: { duration: easeDuration, easing: easeType },
259+ plugins: {
260+ legend: { position: "bottom" },
261+ },
262+ },
263+});
264+
265+// Model Usage Chart (horizontal bar)
266+if (stats.usage_by_model?.length > 0) {
267+ const displayModels = getTopItemsWithOthers(
268+ stats.usage_by_model,
269+ "message_count",
270+ "model",
271+ );
272+ const maxModelValue = Math.max(...displayModels.map((m) => m.message_count));
273+ new Chart(document.getElementById("modelChart"), {
274+ type: "bar",
275+ data: {
276+ labels: displayModels.map((m) =>
277+ m.provider ? `${m.model} (${m.provider})` : m.model,
278+ ),
279+ datasets: [
280+ {
281+ label: "Messages",
282+ data: displayModels.map((m) => m.message_count),
283+ backgroundColor: (ctx) => {
284+ const value = ctx.raw;
285+ const ratio = value / maxModelValue;
286+ return interpolateColor(ratio);
287+ },
288+ borderRadius: 4,
289+ },
290+ ],
291+ },
292+ options: {
293+ indexAxis: "y",
294+ responsive: true,
295+ maintainAspectRatio: false,
296+ animation: { duration: easeDuration, easing: easeType },
297+ plugins: { legend: { display: false } },
298+ },
299+ });
300+}
301+
302+if (stats.usage_by_model?.length > 0) {
303+ const providerData = stats.usage_by_model.reduce((acc, m) => {
304+ acc[m.provider] = (acc[m.provider] || 0) + m.message_count;
305+ return acc;
306+ }, {});
307+ const providerColors = [
308+ colors.malibu,
309+ colors.charple,
310+ colors.violet,
311+ colors.tuna,
312+ colors.coral,
313+ colors.uni,
314+ ];
315+ new Chart(document.getElementById("providerPieChart"), {
316+ type: "doughnut",
317+ data: {
318+ labels: Object.keys(providerData),
319+ datasets: [
320+ {
321+ data: Object.values(providerData),
322+ backgroundColor: Object.keys(providerData).map(
323+ (_, i) => providerColors[i % providerColors.length],
324+ ),
325+ borderWidth: 0,
326+ },
327+ ],
328+ },
329+ options: {
330+ responsive: true,
331+ maintainAspectRatio: false,
332+ animation: { duration: easeDuration, easing: easeType },
333+ plugins: {
334+ legend: { position: "bottom" },
335+ },
336+ },
337+ });
338+}
339+
340+// Daily Usage Table
341+const tableBody = document.querySelector("#daily-table tbody");
342+if (stats.usage_by_day?.length > 0) {
343+ const fragment = document.createDocumentFragment();
344+ stats.usage_by_day.slice(0, 30).forEach((d) => {
345+ const row = document.createElement("tr");
346+ row.innerHTML = `<td>${d.day}</td><td>${d.session_count}</td><td>${formatNumber(
347+ d.prompt_tokens,
348+ )}</td><td>${formatNumber(
349+ d.completion_tokens,
350+ )}</td><td>${formatNumber(d.total_tokens)}</td><td>${formatCost(
351+ d.cost,
352+ )}</td>`;
353+ fragment.appendChild(row);
354+ });
355+ tableBody.appendChild(fragment);
356+}
internal/db/db.go+90
@@ -48,18 +48,45 @@ func Prepare(ctx context.Context, db DBTX) (*Queries, error) {
4848 if q.deleteSessionMessagesStmt, err = db.PrepareContext(ctx, deleteSessionMessages); err != nil {
4949 return nil, fmt.Errorf("error preparing query DeleteSessionMessages: %w", err)
5050 }
51+ if q.getAverageResponseTimeStmt, err = db.PrepareContext(ctx, getAverageResponseTime); err != nil {
52+ return nil, fmt.Errorf("error preparing query GetAverageResponseTime: %w", err)
53+ }
5154 if q.getFileStmt, err = db.PrepareContext(ctx, getFile); err != nil {
5255 return nil, fmt.Errorf("error preparing query GetFile: %w", err)
5356 }
5457 if q.getFileByPathAndSessionStmt, err = db.PrepareContext(ctx, getFileByPathAndSession); err != nil {
5558 return nil, fmt.Errorf("error preparing query GetFileByPathAndSession: %w", err)
5659 }
60+ if q.getHourDayHeatmapStmt, err = db.PrepareContext(ctx, getHourDayHeatmap); err != nil {
61+ return nil, fmt.Errorf("error preparing query GetHourDayHeatmap: %w", err)
62+ }
5763 if q.getMessageStmt, err = db.PrepareContext(ctx, getMessage); err != nil {
5864 return nil, fmt.Errorf("error preparing query GetMessage: %w", err)
5965 }
66+ if q.getRecentActivityStmt, err = db.PrepareContext(ctx, getRecentActivity); err != nil {
67+ return nil, fmt.Errorf("error preparing query GetRecentActivity: %w", err)
68+ }
6069 if q.getSessionByIDStmt, err = db.PrepareContext(ctx, getSessionByID); err != nil {
6170 return nil, fmt.Errorf("error preparing query GetSessionByID: %w", err)
6271 }
72+ if q.getToolUsageStmt, err = db.PrepareContext(ctx, getToolUsage); err != nil {
73+ return nil, fmt.Errorf("error preparing query GetToolUsage: %w", err)
74+ }
75+ if q.getTotalStatsStmt, err = db.PrepareContext(ctx, getTotalStats); err != nil {
76+ return nil, fmt.Errorf("error preparing query GetTotalStats: %w", err)
77+ }
78+ if q.getUsageByDayStmt, err = db.PrepareContext(ctx, getUsageByDay); err != nil {
79+ return nil, fmt.Errorf("error preparing query GetUsageByDay: %w", err)
80+ }
81+ if q.getUsageByDayOfWeekStmt, err = db.PrepareContext(ctx, getUsageByDayOfWeek); err != nil {
82+ return nil, fmt.Errorf("error preparing query GetUsageByDayOfWeek: %w", err)
83+ }
84+ if q.getUsageByHourStmt, err = db.PrepareContext(ctx, getUsageByHour); err != nil {
85+ return nil, fmt.Errorf("error preparing query GetUsageByHour: %w", err)
86+ }
87+ if q.getUsageByModelStmt, err = db.PrepareContext(ctx, getUsageByModel); err != nil {
88+ return nil, fmt.Errorf("error preparing query GetUsageByModel: %w", err)
89+ }
6390 if q.listFilesByPathStmt, err = db.PrepareContext(ctx, listFilesByPath); err != nil {
6491 return nil, fmt.Errorf("error preparing query ListFilesByPath: %w", err)
6592 }
@@ -132,6 +159,11 @@ func (q *Queries) Close() error {
132159 err = fmt.Errorf("error closing deleteSessionMessagesStmt: %w", cerr)
133160 }
134161 }
162+ if q.getAverageResponseTimeStmt != nil {
163+ if cerr := q.getAverageResponseTimeStmt.Close(); cerr != nil {
164+ err = fmt.Errorf("error closing getAverageResponseTimeStmt: %w", cerr)
165+ }
166+ }
135167 if q.getFileStmt != nil {
136168 if cerr := q.getFileStmt.Close(); cerr != nil {
137169 err = fmt.Errorf("error closing getFileStmt: %w", cerr)
@@ -142,16 +174,56 @@ func (q *Queries) Close() error {
142174 err = fmt.Errorf("error closing getFileByPathAndSessionStmt: %w", cerr)
143175 }
144176 }
177+ if q.getHourDayHeatmapStmt != nil {
178+ if cerr := q.getHourDayHeatmapStmt.Close(); cerr != nil {
179+ err = fmt.Errorf("error closing getHourDayHeatmapStmt: %w", cerr)
180+ }
181+ }
145182 if q.getMessageStmt != nil {
146183 if cerr := q.getMessageStmt.Close(); cerr != nil {
147184 err = fmt.Errorf("error closing getMessageStmt: %w", cerr)
148185 }
149186 }
187+ if q.getRecentActivityStmt != nil {
188+ if cerr := q.getRecentActivityStmt.Close(); cerr != nil {
189+ err = fmt.Errorf("error closing getRecentActivityStmt: %w", cerr)
190+ }
191+ }
150192 if q.getSessionByIDStmt != nil {
151193 if cerr := q.getSessionByIDStmt.Close(); cerr != nil {
152194 err = fmt.Errorf("error closing getSessionByIDStmt: %w", cerr)
153195 }
154196 }
197+ if q.getToolUsageStmt != nil {
198+ if cerr := q.getToolUsageStmt.Close(); cerr != nil {
199+ err = fmt.Errorf("error closing getToolUsageStmt: %w", cerr)
200+ }
201+ }
202+ if q.getTotalStatsStmt != nil {
203+ if cerr := q.getTotalStatsStmt.Close(); cerr != nil {
204+ err = fmt.Errorf("error closing getTotalStatsStmt: %w", cerr)
205+ }
206+ }
207+ if q.getUsageByDayStmt != nil {
208+ if cerr := q.getUsageByDayStmt.Close(); cerr != nil {
209+ err = fmt.Errorf("error closing getUsageByDayStmt: %w", cerr)
210+ }
211+ }
212+ if q.getUsageByDayOfWeekStmt != nil {
213+ if cerr := q.getUsageByDayOfWeekStmt.Close(); cerr != nil {
214+ err = fmt.Errorf("error closing getUsageByDayOfWeekStmt: %w", cerr)
215+ }
216+ }
217+ if q.getUsageByHourStmt != nil {
218+ if cerr := q.getUsageByHourStmt.Close(); cerr != nil {
219+ err = fmt.Errorf("error closing getUsageByHourStmt: %w", cerr)
220+ }
221+ }
222+ if q.getUsageByModelStmt != nil {
223+ if cerr := q.getUsageByModelStmt.Close(); cerr != nil {
224+ err = fmt.Errorf("error closing getUsageByModelStmt: %w", cerr)
225+ }
226+ }
155227 if q.listFilesByPathStmt != nil {
156228 if cerr := q.listFilesByPathStmt.Close(); cerr != nil {
157229 err = fmt.Errorf("error closing listFilesByPathStmt: %w", cerr)
@@ -244,10 +316,19 @@ type Queries struct {
244316 deleteSessionStmt *sql.Stmt
245317 deleteSessionFilesStmt *sql.Stmt
246318 deleteSessionMessagesStmt *sql.Stmt
319+ getAverageResponseTimeStmt *sql.Stmt
247320 getFileStmt *sql.Stmt
248321 getFileByPathAndSessionStmt *sql.Stmt
322+ getHourDayHeatmapStmt *sql.Stmt
249323 getMessageStmt *sql.Stmt
324+ getRecentActivityStmt *sql.Stmt
250325 getSessionByIDStmt *sql.Stmt
326+ getToolUsageStmt *sql.Stmt
327+ getTotalStatsStmt *sql.Stmt
328+ getUsageByDayStmt *sql.Stmt
329+ getUsageByDayOfWeekStmt *sql.Stmt
330+ getUsageByHourStmt *sql.Stmt
331+ getUsageByModelStmt *sql.Stmt
251332 listFilesByPathStmt *sql.Stmt
252333 listFilesBySessionStmt *sql.Stmt
253334 listLatestSessionFilesStmt *sql.Stmt
@@ -271,10 +352,19 @@ func (q *Queries) WithTx(tx *sql.Tx) *Queries {
271352 deleteSessionStmt: q.deleteSessionStmt,
272353 deleteSessionFilesStmt: q.deleteSessionFilesStmt,
273354 deleteSessionMessagesStmt: q.deleteSessionMessagesStmt,
355+ getAverageResponseTimeStmt: q.getAverageResponseTimeStmt,
274356 getFileStmt: q.getFileStmt,
275357 getFileByPathAndSessionStmt: q.getFileByPathAndSessionStmt,
358+ getHourDayHeatmapStmt: q.getHourDayHeatmapStmt,
276359 getMessageStmt: q.getMessageStmt,
360+ getRecentActivityStmt: q.getRecentActivityStmt,
277361 getSessionByIDStmt: q.getSessionByIDStmt,
362+ getToolUsageStmt: q.getToolUsageStmt,
363+ getTotalStatsStmt: q.getTotalStatsStmt,
364+ getUsageByDayStmt: q.getUsageByDayStmt,
365+ getUsageByDayOfWeekStmt: q.getUsageByDayOfWeekStmt,
366+ getUsageByHourStmt: q.getUsageByHourStmt,
367+ getUsageByModelStmt: q.getUsageByModelStmt,
278368 listFilesByPathStmt: q.listFilesByPathStmt,
279369 listFilesBySessionStmt: q.listFilesBySessionStmt,
280370 listLatestSessionFilesStmt: q.listLatestSessionFilesStmt,
internal/db/querier.go+9
@@ -17,10 +17,19 @@ type Querier interface {
1717 DeleteSession(ctx context.Context, id string) error
1818 DeleteSessionFiles(ctx context.Context, sessionID string) error
1919 DeleteSessionMessages(ctx context.Context, sessionID string) error
20+ GetAverageResponseTime(ctx context.Context) (int64, error)
2021 GetFile(ctx context.Context, id string) (File, error)
2122 GetFileByPathAndSession(ctx context.Context, arg GetFileByPathAndSessionParams) (File, error)
23+ GetHourDayHeatmap(ctx context.Context) ([]GetHourDayHeatmapRow, error)
2224 GetMessage(ctx context.Context, id string) (Message, error)
25+ GetRecentActivity(ctx context.Context) ([]GetRecentActivityRow, error)
2326 GetSessionByID(ctx context.Context, id string) (Session, error)
27+ GetToolUsage(ctx context.Context) ([]GetToolUsageRow, error)
28+ GetTotalStats(ctx context.Context) (GetTotalStatsRow, error)
29+ GetUsageByDay(ctx context.Context) ([]GetUsageByDayRow, error)
30+ GetUsageByDayOfWeek(ctx context.Context) ([]GetUsageByDayOfWeekRow, error)
31+ GetUsageByHour(ctx context.Context) ([]GetUsageByHourRow, error)
32+ GetUsageByModel(ctx context.Context) ([]GetUsageByModelRow, error)
2433 ListFilesByPath(ctx context.Context, path string) ([]File, error)
2534 ListFilesBySession(ctx context.Context, sessionID string) ([]File, error)
2635 ListLatestSessionFiles(ctx context.Context, sessionID string) ([]File, error)
internal/db/sql/stats.sqlnew file+93
@@ -0,0 +1,93 @@
1+-- name: GetUsageByDay :many
2+SELECT
3+ date(created_at, 'unixepoch') as day,
4+ SUM(prompt_tokens) as prompt_tokens,
5+ SUM(completion_tokens) as completion_tokens,
6+ SUM(cost) as cost,
7+ COUNT(*) as session_count
8+FROM sessions
9+WHERE parent_session_id IS NULL
10+GROUP BY date(created_at, 'unixepoch')
11+ORDER BY day DESC;
12+
13+-- name: GetUsageByModel :many
14+SELECT
15+ COALESCE(model, 'unknown') as model,
16+ COALESCE(provider, 'unknown') as provider,
17+ COUNT(*) as message_count
18+FROM messages
19+WHERE role = 'assistant'
20+GROUP BY model, provider
21+ORDER BY message_count DESC;
22+
23+-- name: GetUsageByHour :many
24+SELECT
25+ CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
26+ COUNT(*) as session_count
27+FROM sessions
28+WHERE parent_session_id IS NULL
29+GROUP BY hour
30+ORDER BY hour;
31+
32+-- name: GetUsageByDayOfWeek :many
33+SELECT
34+ CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
35+ COUNT(*) as session_count,
36+ SUM(prompt_tokens) as prompt_tokens,
37+ SUM(completion_tokens) as completion_tokens
38+FROM sessions
39+WHERE parent_session_id IS NULL
40+GROUP BY day_of_week
41+ORDER BY day_of_week;
42+
43+-- name: GetTotalStats :one
44+SELECT
45+ COUNT(*) as total_sessions,
46+ COALESCE(SUM(prompt_tokens), 0) as total_prompt_tokens,
47+ COALESCE(SUM(completion_tokens), 0) as total_completion_tokens,
48+ COALESCE(SUM(cost), 0) as total_cost,
49+ COALESCE(SUM(message_count), 0) as total_messages,
50+ COALESCE(AVG(prompt_tokens + completion_tokens), 0) as avg_tokens_per_session,
51+ COALESCE(AVG(message_count), 0) as avg_messages_per_session
52+FROM sessions
53+WHERE parent_session_id IS NULL;
54+
55+-- name: GetRecentActivity :many
56+SELECT
57+ date(created_at, 'unixepoch') as day,
58+ COUNT(*) as session_count,
59+ SUM(prompt_tokens + completion_tokens) as total_tokens,
60+ SUM(cost) as cost
61+FROM sessions
62+WHERE parent_session_id IS NULL
63+ AND created_at >= strftime('%s', 'now', '-30 days')
64+GROUP BY date(created_at, 'unixepoch')
65+ORDER BY day ASC;
66+
67+-- name: GetAverageResponseTime :one
68+SELECT
69+ CAST(COALESCE(AVG(finished_at - created_at), 0) AS INTEGER) as avg_response_seconds
70+FROM messages
71+WHERE role = 'assistant'
72+ AND finished_at IS NOT NULL
73+ AND finished_at > created_at;
74+
75+-- name: GetToolUsage :many
76+SELECT
77+ json_extract(value, '$.data.name') as tool_name,
78+ COUNT(*) as call_count
79+FROM messages, json_each(parts)
80+WHERE json_extract(value, '$.type') = 'tool_call'
81+ AND json_extract(value, '$.data.name') IS NOT NULL
82+GROUP BY tool_name
83+ORDER BY call_count DESC;
84+
85+-- name: GetHourDayHeatmap :many
86+SELECT
87+ CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
88+ CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
89+ COUNT(*) as session_count
90+FROM sessions
91+WHERE parent_session_id IS NULL
92+GROUP BY day_of_week, hour
93+ORDER BY day_of_week, hour;
internal/db/stats.sql.gonew file+367
@@ -0,0 +1,367 @@
1+// Code generated by sqlc. DO NOT EDIT.
2+// versions:
3+// sqlc v1.30.0
4+// source: stats.sql
5+
6+package db
7+
8+import (
9+ "context"
10+ "database/sql"
11+)
12+
13+const getAverageResponseTime = `-- name: GetAverageResponseTime :one
14+SELECT
15+ CAST(COALESCE(AVG(finished_at - created_at), 0) AS INTEGER) as avg_response_seconds
16+FROM messages
17+WHERE role = 'assistant'
18+ AND finished_at IS NOT NULL
19+ AND finished_at > created_at
20+`
21+
22+func (q *Queries) GetAverageResponseTime(ctx context.Context) (int64, error) {
23+ row := q.queryRow(ctx, q.getAverageResponseTimeStmt, getAverageResponseTime)
24+ var avg_response_seconds int64
25+ err := row.Scan(&avg_response_seconds)
26+ return avg_response_seconds, err
27+}
28+
29+const getHourDayHeatmap = `-- name: GetHourDayHeatmap :many
30+SELECT
31+ CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
32+ CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
33+ COUNT(*) as session_count
34+FROM sessions
35+WHERE parent_session_id IS NULL
36+GROUP BY day_of_week, hour
37+ORDER BY day_of_week, hour
38+`
39+
40+type GetHourDayHeatmapRow struct {
41+ DayOfWeek int64 `json:"day_of_week"`
42+ Hour int64 `json:"hour"`
43+ SessionCount int64 `json:"session_count"`
44+}
45+
46+func (q *Queries) GetHourDayHeatmap(ctx context.Context) ([]GetHourDayHeatmapRow, error) {
47+ rows, err := q.query(ctx, q.getHourDayHeatmapStmt, getHourDayHeatmap)
48+ if err != nil {
49+ return nil, err
50+ }
51+ defer rows.Close()
52+ items := []GetHourDayHeatmapRow{}
53+ for rows.Next() {
54+ var i GetHourDayHeatmapRow
55+ if err := rows.Scan(&i.DayOfWeek, &i.Hour, &i.SessionCount); err != nil {
56+ return nil, err
57+ }
58+ items = append(items, i)
59+ }
60+ if err := rows.Close(); err != nil {
61+ return nil, err
62+ }
63+ if err := rows.Err(); err != nil {
64+ return nil, err
65+ }
66+ return items, nil
67+}
68+
69+const getRecentActivity = `-- name: GetRecentActivity :many
70+SELECT
71+ date(created_at, 'unixepoch') as day,
72+ COUNT(*) as session_count,
73+ SUM(prompt_tokens + completion_tokens) as total_tokens,
74+ SUM(cost) as cost
75+FROM sessions
76+WHERE parent_session_id IS NULL
77+ AND created_at >= strftime('%s', 'now', '-30 days')
78+GROUP BY date(created_at, 'unixepoch')
79+ORDER BY day ASC
80+`
81+
82+type GetRecentActivityRow struct {
83+ Day interface{} `json:"day"`
84+ SessionCount int64 `json:"session_count"`
85+ TotalTokens sql.NullFloat64 `json:"total_tokens"`
86+ Cost sql.NullFloat64 `json:"cost"`
87+}
88+
89+func (q *Queries) GetRecentActivity(ctx context.Context) ([]GetRecentActivityRow, error) {
90+ rows, err := q.query(ctx, q.getRecentActivityStmt, getRecentActivity)
91+ if err != nil {
92+ return nil, err
93+ }
94+ defer rows.Close()
95+ items := []GetRecentActivityRow{}
96+ for rows.Next() {
97+ var i GetRecentActivityRow
98+ if err := rows.Scan(
99+ &i.Day,
100+ &i.SessionCount,
101+ &i.TotalTokens,
102+ &i.Cost,
103+ ); err != nil {
104+ return nil, err
105+ }
106+ items = append(items, i)
107+ }
108+ if err := rows.Close(); err != nil {
109+ return nil, err
110+ }
111+ if err := rows.Err(); err != nil {
112+ return nil, err
113+ }
114+ return items, nil
115+}
116+
117+const getToolUsage = `-- name: GetToolUsage :many
118+SELECT
119+ json_extract(value, '$.data.name') as tool_name,
120+ COUNT(*) as call_count
121+FROM messages, json_each(parts)
122+WHERE json_extract(value, '$.type') = 'tool_call'
123+ AND json_extract(value, '$.data.name') IS NOT NULL
124+GROUP BY tool_name
125+ORDER BY call_count DESC
126+`
127+
128+type GetToolUsageRow struct {
129+ ToolName interface{} `json:"tool_name"`
130+ CallCount int64 `json:"call_count"`
131+}
132+
133+func (q *Queries) GetToolUsage(ctx context.Context) ([]GetToolUsageRow, error) {
134+ rows, err := q.query(ctx, q.getToolUsageStmt, getToolUsage)
135+ if err != nil {
136+ return nil, err
137+ }
138+ defer rows.Close()
139+ items := []GetToolUsageRow{}
140+ for rows.Next() {
141+ var i GetToolUsageRow
142+ if err := rows.Scan(&i.ToolName, &i.CallCount); err != nil {
143+ return nil, err
144+ }
145+ items = append(items, i)
146+ }
147+ if err := rows.Close(); err != nil {
148+ return nil, err
149+ }
150+ if err := rows.Err(); err != nil {
151+ return nil, err
152+ }
153+ return items, nil
154+}
155+
156+const getTotalStats = `-- name: GetTotalStats :one
157+SELECT
158+ COUNT(*) as total_sessions,
159+ COALESCE(SUM(prompt_tokens), 0) as total_prompt_tokens,
160+ COALESCE(SUM(completion_tokens), 0) as total_completion_tokens,
161+ COALESCE(SUM(cost), 0) as total_cost,
162+ COALESCE(SUM(message_count), 0) as total_messages,
163+ COALESCE(AVG(prompt_tokens + completion_tokens), 0) as avg_tokens_per_session,
164+ COALESCE(AVG(message_count), 0) as avg_messages_per_session
165+FROM sessions
166+WHERE parent_session_id IS NULL
167+`
168+
169+type GetTotalStatsRow struct {
170+ TotalSessions int64 `json:"total_sessions"`
171+ TotalPromptTokens interface{} `json:"total_prompt_tokens"`
172+ TotalCompletionTokens interface{} `json:"total_completion_tokens"`
173+ TotalCost interface{} `json:"total_cost"`
174+ TotalMessages interface{} `json:"total_messages"`
175+ AvgTokensPerSession interface{} `json:"avg_tokens_per_session"`
176+ AvgMessagesPerSession interface{} `json:"avg_messages_per_session"`
177+}
178+
179+func (q *Queries) GetTotalStats(ctx context.Context) (GetTotalStatsRow, error) {
180+ row := q.queryRow(ctx, q.getTotalStatsStmt, getTotalStats)
181+ var i GetTotalStatsRow
182+ err := row.Scan(
183+ &i.TotalSessions,
184+ &i.TotalPromptTokens,
185+ &i.TotalCompletionTokens,
186+ &i.TotalCost,
187+ &i.TotalMessages,
188+ &i.AvgTokensPerSession,
189+ &i.AvgMessagesPerSession,
190+ )
191+ return i, err
192+}
193+
194+const getUsageByDay = `-- name: GetUsageByDay :many
195+SELECT
196+ date(created_at, 'unixepoch') as day,
197+ SUM(prompt_tokens) as prompt_tokens,
198+ SUM(completion_tokens) as completion_tokens,
199+ SUM(cost) as cost,
200+ COUNT(*) as session_count
201+FROM sessions
202+WHERE parent_session_id IS NULL
203+GROUP BY date(created_at, 'unixepoch')
204+ORDER BY day DESC
205+`
206+
207+type GetUsageByDayRow struct {
208+ Day interface{} `json:"day"`
209+ PromptTokens sql.NullFloat64 `json:"prompt_tokens"`
210+ CompletionTokens sql.NullFloat64 `json:"completion_tokens"`
211+ Cost sql.NullFloat64 `json:"cost"`
212+ SessionCount int64 `json:"session_count"`
213+}
214+
215+func (q *Queries) GetUsageByDay(ctx context.Context) ([]GetUsageByDayRow, error) {
216+ rows, err := q.query(ctx, q.getUsageByDayStmt, getUsageByDay)
217+ if err != nil {
218+ return nil, err
219+ }
220+ defer rows.Close()
221+ items := []GetUsageByDayRow{}
222+ for rows.Next() {
223+ var i GetUsageByDayRow
224+ if err := rows.Scan(
225+ &i.Day,
226+ &i.PromptTokens,
227+ &i.CompletionTokens,
228+ &i.Cost,
229+ &i.SessionCount,
230+ ); err != nil {
231+ return nil, err
232+ }
233+ items = append(items, i)
234+ }
235+ if err := rows.Close(); err != nil {
236+ return nil, err
237+ }
238+ if err := rows.Err(); err != nil {
239+ return nil, err
240+ }
241+ return items, nil
242+}
243+
244+const getUsageByDayOfWeek = `-- name: GetUsageByDayOfWeek :many
245+SELECT
246+ CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
247+ COUNT(*) as session_count,
248+ SUM(prompt_tokens) as prompt_tokens,
249+ SUM(completion_tokens) as completion_tokens
250+FROM sessions
251+WHERE parent_session_id IS NULL
252+GROUP BY day_of_week
253+ORDER BY day_of_week
254+`
255+
256+type GetUsageByDayOfWeekRow struct {
257+ DayOfWeek int64 `json:"day_of_week"`
258+ SessionCount int64 `json:"session_count"`
259+ PromptTokens sql.NullFloat64 `json:"prompt_tokens"`
260+ CompletionTokens sql.NullFloat64 `json:"completion_tokens"`
261+}
262+
263+func (q *Queries) GetUsageByDayOfWeek(ctx context.Context) ([]GetUsageByDayOfWeekRow, error) {
264+ rows, err := q.query(ctx, q.getUsageByDayOfWeekStmt, getUsageByDayOfWeek)
265+ if err != nil {
266+ return nil, err
267+ }
268+ defer rows.Close()
269+ items := []GetUsageByDayOfWeekRow{}
270+ for rows.Next() {
271+ var i GetUsageByDayOfWeekRow
272+ if err := rows.Scan(
273+ &i.DayOfWeek,
274+ &i.SessionCount,
275+ &i.PromptTokens,
276+ &i.CompletionTokens,
277+ ); err != nil {
278+ return nil, err
279+ }
280+ items = append(items, i)
281+ }
282+ if err := rows.Close(); err != nil {
283+ return nil, err
284+ }
285+ if err := rows.Err(); err != nil {
286+ return nil, err
287+ }
288+ return items, nil
289+}
290+
291+const getUsageByHour = `-- name: GetUsageByHour :many
292+SELECT
293+ CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
294+ COUNT(*) as session_count
295+FROM sessions
296+WHERE parent_session_id IS NULL
297+GROUP BY hour
298+ORDER BY hour
299+`
300+
301+type GetUsageByHourRow struct {
302+ Hour int64 `json:"hour"`
303+ SessionCount int64 `json:"session_count"`
304+}
305+
306+func (q *Queries) GetUsageByHour(ctx context.Context) ([]GetUsageByHourRow, error) {
307+ rows, err := q.query(ctx, q.getUsageByHourStmt, getUsageByHour)
308+ if err != nil {
309+ return nil, err
310+ }
311+ defer rows.Close()
312+ items := []GetUsageByHourRow{}
313+ for rows.Next() {
314+ var i GetUsageByHourRow
315+ if err := rows.Scan(&i.Hour, &i.SessionCount); err != nil {
316+ return nil, err
317+ }
318+ items = append(items, i)
319+ }
320+ if err := rows.Close(); err != nil {
321+ return nil, err
322+ }
323+ if err := rows.Err(); err != nil {
324+ return nil, err
325+ }
326+ return items, nil
327+}
328+
329+const getUsageByModel = `-- name: GetUsageByModel :many
330+SELECT
331+ COALESCE(model, 'unknown') as model,
332+ COALESCE(provider, 'unknown') as provider,
333+ COUNT(*) as message_count
334+FROM messages
335+WHERE role = 'assistant'
336+GROUP BY model, provider
337+ORDER BY message_count DESC
338+`
339+
340+type GetUsageByModelRow struct {
341+ Model string `json:"model"`
342+ Provider string `json:"provider"`
343+ MessageCount int64 `json:"message_count"`
344+}
345+
346+func (q *Queries) GetUsageByModel(ctx context.Context) ([]GetUsageByModelRow, error) {
347+ rows, err := q.query(ctx, q.getUsageByModelStmt, getUsageByModel)
348+ if err != nil {
349+ return nil, err
350+ }
351+ defer rows.Close()
352+ items := []GetUsageByModelRow{}
353+ for rows.Next() {
354+ var i GetUsageByModelRow
355+ if err := rows.Scan(&i.Model, &i.Provider, &i.MessageCount); err != nil {
356+ return nil, err
357+ }
358+ items = append(items, i)
359+ }
360+ if err := rows.Close(); err != nil {
361+ return nil, err
362+ }
363+ if err := rows.Err(); err != nil {
364+ return nil, err
365+ }
366+ return items, nil
367+}