diff --git a/.gitignore b/.gitignore index 872f349..62bb8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ org/configs/** /public/ resources/_gen /content/configs/ +/.log/ diff --git a/content/posts/2023-04-13-emacs.md b/content/posts/2023-04-13-emacs.md new file mode 100644 index 0000000..ac57a79 --- /dev/null +++ b/content/posts/2023-04-13-emacs.md @@ -0,0 +1,164 @@ ++++ +title = "916 days of Emacs" +author = ["Pavel Korytov"] +date = 2023-04-13 +tags = ["emacs"] +draft = false +scripts = ["/js/chart.js", "/js/chartjs-adapter-date-fns.bundle.min.js", "/js/chartjs-plugin-datalabels.js", "/js/2023-04-13-emacs.js"] ++++ + + + +> Poof I made my free-time disappear + +
- Ellis Kenyő, on being called an "elisp mage"
+
+Little did I know on the fateful day of ****, when I had installed [GNU Emacs](https://www.gnu.org/software/emacs/). I wasn't thinking about the [ethical aspects](https://www.gnu.org/philosophy/philosophy.html) of free software, the [aesthetics of Lisp](https://www.webofstories.com/play/marvin.minsky/44), or these other things with which an occasional layperson might explain how an almost [half a century old](https://www.jwz.org/doc/emacs-timeline.html) program can still be in [active use](https://emacsconf.org/2022/talks/survey/).
+
+In fact, when considering using software X for anything, the most important question to me was: can X provide a better user experience? For Emacs, the answer to most of these questions turned out to be yes.
+
+So over time, Emacs has become my programming environment, email client, window manager, knowledge base, [and a lot more](https://sqrtminusone.xyz/configs/emacs/). I think I ended up using Emacs for almost as many things as possible; I even authored a few packages that implement certain parts of my workflows that weren't readily available.
+
+Among other things, the Emacs community is responsible for my introduction to [Zettelkasten](https://zettelkasten.de/), RSS, Lisps... Perhaps even my English became slightly less broken because Emacs is so text-centered. A lot has changed over the course of these short 2.5 years.
+
+Anyway, this post is an attempt to quantify some aspects of that story. The numbers mostly come from projects called [ActivityWatch](https://activitywatch.net/) and [WakaTime](https://wakatime.com/).
+
+Mostly I'm curious myself, but also every now and then I see Emacs people discussing their journeys through the Elisp-land, or a potential convert wondering whether this rabbit hole is worth investigating. If any of this applies to you, you might find something interesting in this document.
+
+
+
+
+## Everything goes into Emacs {#everything-goes-into-emacs}
+
+As I mentioned earlier, I use Emacs for a lot of things, which are described in my [Emacs config](https://sqrtminusone.xyz/configs/emacs/#introduction). Fig. 1 shows how Emacs replaced various programs over time.
+
+
+
+As you can see, I used Neovim for a little over a year. We'll get into some numbers on that later.
+
+The process of moving from knowing nothing about Emacs to using EXWM took about 13 months.
+
+Fig. 2 shows the dynamics of the direct screen time ratio spent in Emacs per month, i.e. the average number of non-AFK seconds in the Emacs window.
+
+
+
+It's hard to discern any general trend here. It appears that the ratio started at 0.2 in October 2020, oscillated around 0.3 for about 7 months, then moved closer to 0.4 until January 2023, after which jumped to 0.45-0.5.
+
+The three peaks in September 2021 (0.526), January 2022 (0.532), and August 2022 (0.568) may correspond to my vacations, during which I didn't have to spend time in Chrome DevTools (I do web development as my "primary" job), but I'm not entirely sure.
+
+The jump in January 2023 definitely matches my adoption of [telega.el](https://github.com/zevlg/telega.el) instead of the official desktop client. The time redistributes rather cleanly in the detailed ActivityWatch data.
+
+It's also interesting that switching from [i3](https://i3wm.org/) to [EXWM](https://github.com/ch11ng/exwm) didn't seem to have any distinguishable effects.
+
+The mean Emacs screen time ratios are 0.39 since October 2020 and 0.47 since January 2023. So, as you might infer, Emacs is quite prominent in my PC usage.
+
+
+## Time spent in Emacs {#time-spent-in-emacs}
+
+Now let's examine the structure of time spent in Emacs. Fig. 3 shows how many Emacs-hours per month I spent on different activities, and Fig. 4 shows the same in stacked form.
+
+Unlike Fig. 2, the time here is calculated with a 15-minute timeout preference, as [it's done in WakaTime](https://wakatime.com/faq#timeout). For instance, if I work on a project in Emacs for 10 minutes, then switch to something else for 10 minutes (i.e. no [heartbeats](https://wakatime.com/developers/#heartbeats) recorded during that time), then return to the project another 10 minutes, this will be counted as 30 minutes in that project.
+
+This is mostly so because it's the default format for the [WakaTime export](https://wakatime.com/faq#exporting), but I also believe it's reasonable since I may open package documentation during configuration, experiment in scratch buffers while working on a package, and so on. This time really has to be included in the final tally.
+
+Of course, this will also include all the times I was distracted by the [System Crafters](https://wiki.systemcrafters.net/community/chat-with-us/) Discord server, [emacs.ch](https://emacs.ch/) instance, or whatever else. Therefore, consider the numbers that follow as an upper bound.
+
+
+
+
+
+The categories are as follows:
+
+- **Config** ([REDACTED] total hours, [REDACTED]% of all time)
+ Time spent on actual Emacs configuration.
+- **Emacs Packages** ([REDACTED] total hours, [REDACTED]% of all time)
+ Time spent in other Emacs Lisp files, such as writing my packages or debugging other packages. See the [packages](#emacs-packages) section.
+- **Org Mode** ([REDACTED] total hours, [REDACTED]% of all time)
+ Time spent in my `org-mode` project, which is mostly [org-journal](https://github.com/bastibe/org-journal), [org-roam](https://www.orgroam.com/), and project management. By the way, guess the month in which I read [Sönke Ahrens' book](https://www.soenkeahrens.de/en/takesmartnotes) about Zettelkasten.
+- **sqrtminusone.xyz** ([REDACTED] total hours, [REDACTED]% of all time)
+ Working on this strange little website.
+- **Other Code** ([REDACTED] total hours, [REDACTED]% of all time)
+ Doing something marginally useful in Emacs, which is mostly work, education, and a few personal projects unrelated to Emacs.
+- **Misc** ([REDACTED] total hours, [REDACTED]% of all time)
+ Time spent in Emacs but not in an actual project (i.e. accounted by the [window watcher](https://github.com/ActivityWatch/aw-watcher-window) of ActivityWatch but not WakaTime, which watches for files). That includes reading RSS, writing emails, using messengers, doing some idle experimentation in scratch buffers, etc.
+
+The [REDACTED]% of time spent on configuration is actually less than I expected. Unsurprisingly, the first month had the highest value of around 20% (I used Emacs without WakaTime for a few days).
+
+By the way, I spent just 39.0 hours configuring Neovim, although the number is probably not representative anymore because Neovim has changed a lot over these 2 years.
+
+
+## Switching from Neovim {#switching-from-neovim}
+
+The period of my transition from Neovim to Emacs seems particularly interesting. Fig 5 zooms in on that, with the switch represented by "Other Code (Emacs)" replacing "Other Code (Vim)".
+
+
+
+It appears that getting from zero to somewhat productive took me about 11.1 hours over 4 days of just experimenting with Emacs, and one day with 3.8 hours on configuring and 4.4 hours on coding, apparently alternating between the two.
+
+
+## Configuration {#configuration}
+
+Now, let's examine where these [REDACTED] config hours went.
+
+Configuration sizes are a common topic of discussion among Emacs users. I'd guess that mine falls into the category of the longest, although maybe I'll do some research on that someday. Fig. 6 shows how my configuration size changed over time.
+
+
+
+So, my Emacs.org is [REDACTED] lines long, and the resulting init.el is [REDACTED] lines long.
+
+As you can see, I switched to [literate configuration](https://leanpub.com/lit-config) pretty early on, and so far, I have not regretted it. It's also interesting to note how the two sizes diverged as I was writing more elaborate commentary.
+
+Also, I never had any substantial issues with maintaining that configuration. Perhaps [Emacs Bankruptcies](https://www.emacswiki.org/emacs/DotEmacsBankruptcy) are just not that common nowadays.
+
+For the sake of completeness, let's compare that to my Neovim usage. Fig. 7 shows the dynamics of config size for the first 400 days of using both programs.
+
+
+
+As I previously mentioned, Neovim (or rather its ecosystem) seems to have undergone significant changes since I last used it, so my number of [REDACTED] init.vim lines may no longer be relevant. Nonetheless, it's quite interesting.
+
+
+## Emacs packages {#emacs-packages}
+
+Working with Emacs packages was an interesting experience, not least because it was my first experience with Lisp. Fig. 8 shows the breakdown of the [REDACTED] hours I spent on that.
+
+
+
+As I expected, my [org-journal-tags](https://github.com/SqrtMinusOne/org-journal-tags) tops the chart with [REDACTED] hours. The most interesting part was implementing set logic on the [org-journal](https://github.com/bastibe/org-journal) entities to create a query engine. I'm fairly certain that I'm the only user of this package, but I use it all the time.
+
+The second place, "Unknown project", stands for Emacs Lisp files that didn't belong to any project, which should be mostly built-in Emacs files.
+
+My [elfeed-summary](https://github.com/SqrtMinusOne/elfeed-summary) ([REDACTED] hours), [lyrics-fetcher](https://github.com/SqrtMinusOne/lyrics-fetcher.el) ([REDACTED] hours), and [reverso](https://github.com/SqrtMinusOne/reverso.el) ([REDACTED] hours) are also among the packages that I use almost daily. Thus, I do not regret investing time in developing any of those.
+
+
+## `org-roam` {#org-roam}
+
+It's not directly related to Emacs, but I include it here because it's highly unlikely that I would have heard the term "Zettelkasten" outside the Emacs space.
+
+I already mentioned [Sönke Ahrens' book](https://www.soenkeahrens.de/en/takesmartnotes), but I believe the website [zettelkasten.de](https://zettelkasten.de/posts/overview/) would be a better resource if you are curious about that. And I was initially made curious by [this stream](https://www.youtube.com/watch?v=-TpWahIzueg) of David Wilson.
+
+Anyway, Fig. 9 shows the dynamics of my [org-roam](https://github.com/org-roam/org-roam) node count over time. A significant fraction of my [REDACTED] hours spent on Org Mode went there. Although I don't have any particular goals in this regard.
+
+
+
+
+## Some observations {#some-observations}
+
+Let's see where all of that leads us.
+
+As I said, I started from the point of zero experience with Lisp. I had a degree in software engineering, but I don't feel like it has helped me in any direct sense. At most, it exposed me to different kinds and concepts of programming, but I am confident that it's anything but a prerequisite, as also shown by the story of [Protesilaos](https://protesilaos.com/).
+
+The number of [REDACTED] total hours of configuration may seem huge, but I don't think it's that much over 2.5 years and in comparison to the alternatives. For instance, it would take 6th place from the top if placed among my job projects. Also, my [AntennaPod](https://antennapod.org/) shows 196.9 hours of podcasts played since December 2021, and some of my friends report having spent thousands of hours on video games.
+
+And keep in mind that I use Emacs almost as extensively as it gets. You might as well spend much less time figuring it out for a more minimal use case. So, at least in my view, this weighs against describing Emacs usage in terms of sunk cost fallacy.
+
+However, my story is consistent with the perception of a [steep learning curve](https://stackoverflow.com/questions/10942008/what-does-emacs-learning-curve-actually-look-like) in the Emacs community. 19.3 hours over 5 days to get started is definitely a lot.
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 443deaa..9fe61e1 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,5 +1,8 @@
{{ define "main" }}
+{{ range $script := .Params.scripts }}
+
+{{ end}}
- Ellis Kenyő, on being called an "elisp mage"@@
+
+Little did I know on the fateful day of *[2020-10-09 Fri]*, when I had installed [[https://www.gnu.org/software/emacs/][GNU Emacs]]. I wasn't thinking about the [[https://www.gnu.org/philosophy/philosophy.html][ethical aspects]] of free software, the [[https://www.webofstories.com/play/marvin.minsky/44][aesthetics of Lisp]], or these other things with which an occasional layperson might explain how an almost [[https://www.jwz.org/doc/emacs-timeline.html][half a century old]] program can still be in [[https://emacsconf.org/2022/talks/survey/][active use]].
+
+In fact, when considering using software X for anything, the most important question to me was: can X provide a better user experience? For Emacs, the answer to most of these questions turned out to be yes.
+
+So over time, Emacs has become my programming environment, email client, window manager, knowledge base, [[https://sqrtminusone.xyz/configs/emacs/][and a lot more]]. I think I ended up using Emacs for almost as many things as possible; I even authored a few packages that implement certain parts of my workflows that weren't readily available.
+
+Among other things, the Emacs community is responsible for my introduction to [[https://zettelkasten.de/][Zettelkasten]], RSS, Lisps... Perhaps even my English became slightly less broken because Emacs is so text-centered. A lot has changed over the course of these short 2.5 years.
+
+Anyway, this post is an attempt to quantify some aspects of that story. The numbers mostly come from projects called [[https://activitywatch.net/][ActivityWatch]] and [[https://wakatime.com/][WakaTime]].
+
+Mostly I'm curious myself, but also every now and then I see Emacs people discussing their journeys through the Elisp-land, or a potential convert wondering whether this rabbit hole is worth investigating. If any of this applies to you, you might find something interesting in this document.
+
+#+begin_export html
+
+#+end_export
+
+* Everything goes into Emacs
+As I mentioned earlier, I use Emacs for a lot of things, which are described in my [[https://sqrtminusone.xyz/configs/emacs/#introduction][Emacs config]]. Fig. 1 shows how Emacs replaced various programs over time.
+
+#+begin_export html
+
+#+end_export
+
+As you can see, I used Neovim for a little over a year. We'll get into some numbers on that later.
+
+The process of moving from knowing nothing about Emacs to using EXWM took about 13 months.
+
+Fig. 2 shows the dynamics of the direct screen time ratio spent in Emacs per month, i.e. the average number of non-AFK seconds in the Emacs window.
+
+#+begin_export html
+
+#+end_export
+
+It's hard to discern any general trend here. It appears that the ratio started at 0.2 in October 2020, oscillated around 0.3 for about 7 months, then moved closer to 0.4 until January 2023, after which jumped to 0.45-0.5.
+
+The three peaks in September 2021 (0.526), January 2022 (0.532), and August 2022 (0.568) may correspond to my vacations, during which I didn't have to spend time in Chrome DevTools (I do web development as my "primary" job), but I'm not entirely sure.
+
+The jump in January 2023 definitely matches my adoption of [[https://github.com/zevlg/telega.el][telega.el]] instead of the official desktop client. The time redistributes rather cleanly in the detailed ActivityWatch data.
+
+It's also interesting that switching from [[https://i3wm.org/][i3]] to [[https://github.com/ch11ng/exwm][EXWM]] didn't seem to have any distinguishable effects.
+
+The mean Emacs screen time ratios are 0.39 since October 2020 and 0.47 since January 2023. So, as you might infer, Emacs is quite prominent in my PC usage.
+
+* Time spent in Emacs
+Now let's examine the structure of time spent in Emacs. Fig. 3 shows how many Emacs-hours per month I spent on different activities, and Fig. 4 shows the same in stacked form.
+
+Unlike Fig. 2, the time here is calculated with a 15-minute timeout preference, as [[https://wakatime.com/faq#timeout][it's done in WakaTime]]. For instance, if I work on a project in Emacs for 10 minutes, then switch to something else for 10 minutes (i.e. no [[https://wakatime.com/developers/#heartbeats][heartbeats]] recorded during that time), then return to the project another 10 minutes, this will be counted as 30 minutes in that project.
+
+This is mostly so because it's the default format for the [[https://wakatime.com/faq#exporting][WakaTime export]], but I also believe it's reasonable since I may open package documentation during configuration, experiment in scratch buffers while working on a package, and so on. This time really has to be included in the final tally.
+
+Of course, this will also include all the times I was distracted by the [[https://wiki.systemcrafters.net/community/chat-with-us/][System Crafters]] Discord server, [[https://emacs.ch/][emacs.ch]] instance, or whatever else. Therefore, consider the numbers that follow as an upper bound.
+
+#+begin_export html
+
+#+end_export
+
+#+begin_export html
+
+#+end_export
+
+The categories are as follows:
+
+- *Config* ({{{num("config_hours_total")}}} total hours, {{{num("config_hours_percent")}}}% of all time)\\
+ Time spent on actual Emacs configuration.
+- *Emacs Packages* ({{{num("package_hours_total")}}} total hours, {{{num("package_hours_percent")}}}% of all time)\\
+ Time spent in other Emacs Lisp files, such as writing my packages or debugging other packages. See the [[*Emacs packages][packages]] section.
+- *Org Mode* ({{{num("orgmode_hours_total")}}} total hours, {{{num("orgmode_hours_percent")}}}% of all time)\\
+ Time spent in my =org-mode= project, which is mostly [[https://github.com/bastibe/org-journal][org-journal]], [[https://www.orgroam.com/][org-roam]], and project management. By the way, guess the month in which I read [[https://www.soenkeahrens.de/en/takesmartnotes][Sönke Ahrens' book]] about Zettelkasten.
+- *sqrtminusone.xyz* ({{{num("sqrt_hours_total")}}} total hours, {{{num("sqrt_hours_percent")}}}% of all time)\\
+ Working on this strange little website.
+- *Other Code* ({{{num("other_code_hours_total")}}} total hours, {{{num("other_code_hours_percent")}}}% of all time)\\
+ Doing something marginally useful in Emacs, which is mostly work, education, and a few personal projects unrelated to Emacs.
+- *Misc* ({{{num("misc_hours_total")}}} total hours, {{{num("misc_hours_percent")}}}% of all time)
+ Time spent in Emacs but not in an actual project (i.e. accounted by the [[https://github.com/ActivityWatch/aw-watcher-window][window watcher]] of ActivityWatch but not WakaTime, which watches for files). That includes reading RSS, writing emails, using messengers, doing some idle experimentation in scratch buffers, etc.
+
+The {{{num("config_hours_percent")}}}% of time spent on configuration is actually less than I expected. Unsurprisingly, the first month had the highest value of around 20% (I used Emacs without WakaTime for a few days).
+
+By the way, I spent just 39.0 hours configuring Neovim, although the number is probably not representative anymore because Neovim has changed a lot over these 2 years.
+
+* Switching from Neovim
+The period of my transition from Neovim to Emacs seems particularly interesting. Fig 5 zooms in on that, with the switch represented by "Other Code (Emacs)" replacing "Other Code (Vim)".
+
+#+begin_export html
+
+#+end_export
+
+It appears that getting from zero to somewhat productive took me about 11.1 hours over 4 days of just experimenting with Emacs, and one day with 3.8 hours on configuring and 4.4 hours on coding, apparently alternating between the two.
+
+* Configuration
+Now, let's examine where these {{{num("config_hours_total")}}} config hours went.
+
+Configuration sizes are a common topic of discussion among Emacs users. I'd guess that mine falls into the category of the longest, although maybe I'll do some research on that someday. Fig. 6 shows how my configuration size changed over time.
+
+#+begin_export html
+
+#+end_export
+
+So, my Emacs.org is {{{num("emacs_org_length")}}} lines long, and the resulting init.el is {{{num("init_el_length")}}} lines long.
+
+As you can see, I switched to [[https://leanpub.com/lit-config][literate configuration]] pretty early on, and so far, I have not regretted it. It's also interesting to note how the two sizes diverged as I was writing more elaborate commentary.
+
+Also, I never had any substantial issues with maintaining that configuration. Perhaps [[https://www.emacswiki.org/emacs/DotEmacsBankruptcy][Emacs Bankruptcies]] are just not that common nowadays.
+
+For the sake of completeness, let's compare that to my Neovim usage. Fig. 7 shows the dynamics of config size for the first 400 days of using both programs.
+
+#+begin_export html
+
+#+end_export
+
+As I previously mentioned, Neovim (or rather its ecosystem) seems to have undergone significant changes since I last used it, so my number of {{{num("init_vim_length")}}} init.vim lines may no longer be relevant. Nonetheless, it's quite interesting.
+
+* Emacs packages
+Working with Emacs packages was an interesting experience, not least because it was my first experience with Lisp. Fig. 8 shows the breakdown of the {{{num("package_hours_total")}}} hours I spent on that.
+
+#+begin_export html
+
+#+end_export
+
+As I expected, my [[https://github.com/SqrtMinusOne/org-journal-tags][org-journal-tags]] tops the chart with {{{num("org-journal-tags_total")}}} hours. The most interesting part was implementing set logic on the [[https://github.com/bastibe/org-journal][org-journal]] entities to create a query engine. I'm fairly certain that I'm the only user of this package, but I use it all the time.
+
+The second place, "Unknown project", stands for Emacs Lisp files that didn't belong to any project, which should be mostly built-in Emacs files.
+
+My [[https://github.com/SqrtMinusOne/elfeed-summary][elfeed-summary]] ({{{num("elfeed-summary_total")}}} hours), [[https://github.com/SqrtMinusOne/lyrics-fetcher.el][lyrics-fetcher]] ({{{num("lyrics-fetcher_total")}}} hours), and [[https://github.com/SqrtMinusOne/reverso.el][reverso]] ({{{num("reverso_total")}}} hours) are also among the packages that I use almost daily. Thus, I do not regret investing time in developing any of those.
+
+* =org-roam=
+It's not directly related to Emacs, but I include it here because it's highly unlikely that I would have heard the term "Zettelkasten" outside the Emacs space.
+
+I already mentioned [[https://www.soenkeahrens.de/en/takesmartnotes][Sönke Ahrens' book]], but I believe the website [[https://zettelkasten.de/posts/overview/][zettelkasten.de]] would be a better resource if you are curious about that. And I was initially made curious by [[https://www.youtube.com/watch?v=-TpWahIzueg][this stream]] of David Wilson.
+
+Anyway, Fig. 9 shows the dynamics of my [[https://github.com/org-roam/org-roam][org-roam]] node count over time. A significant fraction of my {{{num("orgmode_hours_total")}}} hours spent on Org Mode went there. Although I don't have any particular goals in this regard.
+
+#+begin_export html
+
+#+end_export
+
+* Some observations
+Let's see where all of that leads us.
+
+As I said, I started from the point of zero experience with Lisp. I had a degree in software engineering, but I don't feel like it has helped me in any direct sense. At most, it exposed me to different kinds and concepts of programming, but I am confident that it's anything but a prerequisite, as also shown by the story of [[https://protesilaos.com/][Protesilaos]].
+
+The number of {{{num("config_hours_total")}}} total hours of configuration may seem huge, but I don't think it's that much over 2.5 years and in comparison to the alternatives. For instance, it would take 6th place from the top if placed among my job projects. Also, my [[https://antennapod.org/][AntennaPod]] shows 196.9 hours of podcasts played since December 2021, and some of my friends report having spent thousands of hours on video games.
+
+And keep in mind that I use Emacs almost as extensively as it gets. You might as well spend much less time figuring it out for a more minimal use case. So, at least in my view, this weighs against describing Emacs usage in terms of sunk cost fallacy.
+
+However, my story is consistent with the perception of a [[https://stackoverflow.com/questions/10942008/what-does-emacs-learning-curve-actually-look-like][steep learning curve]] in the Emacs community. 19.3 hours over 5 days to get started is definitely a lot.
diff --git a/repos/dotfiles b/repos/dotfiles
index 17d6192..f12737b 160000
--- a/repos/dotfiles
+++ b/repos/dotfiles
@@ -1 +1 @@
-Subproject commit 17d6192394e6321e80fde5417954f84256fb6f57
+Subproject commit f12737bb44edafecec2b79b8d9a70d5ed1a1ff99
diff --git a/static/data/2023-03-13-emacs/emacs-packages.json b/static/data/2023-03-13-emacs/emacs-packages.json
new file mode 100644
index 0000000..afd1b90
--- /dev/null
+++ b/static/data/2023-03-13-emacs/emacs-packages.json
@@ -0,0 +1,78 @@
+[
+{"name":"org-journal-tags","hours":45.80413027777777},
+{"name":"Unknown Project","hours":30.883538055555544},
+{"name":"elfeed-summary","hours":24.781949999999995},
+{"name":"lyrics-fetcher","hours":19.423725},
+{"name":"reverso","hours":16.14068888888889},
+{"name":"pomm","hours":15.724073888888888},
+{"name":"elfeed_sync","hours":10.33835},
+{"name":"perspective-exwm","hours":7.68676111111111},
+{"name":"ivy-pass","hours":4.8407888888888895},
+{"name":"exwm-modeline","hours":4.785227777777777},
+{"name":"elfeed","hours":1.9590416666666668},
+{"name":"elfeed-recommender","hours":1.606401111111111},
+{"name":"avy-dired","hours":1.5198916666666664},
+{"name":"sqrtminusone.xyz","hours":1.4861027777777778},
+{"name":"copilot","hours":1.393622222222222},
+{"name":"SEM10_DataP","hours":1.3383138888888888},
+{"name":"org-mode","hours":1.285122222222222},
+{"name":"emms","hours":1.2402194444444448},
+{"name":"digital-trajectories-backend","hours":0.817338888888889},
+{"name":"SEM11_SD","hours":0.6001722222222221},
+{"name":"dank-mode","hours":0.5951249999999999},
+{"name":"org-roam","hours":0.5180888888888888},
+{"name":"sqrtminusone.github.io","hours":0.4424444444444445},
+{"name":"eshell-info-banner","hours":0.3441305555555555},
+{"name":"org-ref","hours":0.3417222222222222},
+{"name":"org","hours":0.33160555555555554},
+{"name":"org-contrib","hours":0.2974138888888889},
+{"name":"perspective-el","hours":0.291275},
+{"name":"wakatime-mode","hours":0.2859333333333333},
+{"name":"exwm","hours":0.2593944444444445},
+{"name":"elcord","hours":0.25727777777777777},
+{"name":"general","hours":0.2553944444444444},
+{"name":"digital-trajectories-frontend","hours":0.25507222222222226},
+{"name":"flycheck-mix-alphabets","hours":0.1779611111111111},
+{"name":"evil-collection","hours":0.17116388888888892},
+{"name":"lispy","hours":0.16847222222222222},
+{"name":"devdocs","hours":0.16563333333333333},
+{"name":"mmm-mode","hours":0.14494444444444443},
+{"name":"posframe","hours":0.13803333333333334},
+{"name":"ytel","hours":0.13270833333333334},
+{"name":"melpa","hours":0.11238055555555555},
+{"name":"tldr","hours":0.11088888888888888},
+{"name":"org-journal","hours":0.10692777777777777},
+{"name":"deft","hours":0.09949999999999999},
+{"name":"org-transclusion","hours":0.08256666666666668},
+{"name":"transient","hours":0.08187777777777777},
+{"name":"treemacs","hours":0.08161666666666667},
+{"name":"lsp-treemacs","hours":0.07749722222222223},
+{"name":"web-mode","hours":0.07611666666666667},
+{"name":"dap-mode","hours":0.070775},
+{"name":"themes","hours":0.06796666666666668},
+{"name":"Emacs-langtool","hours":0.06696388888888888},
+{"name":"projectile","hours":0.0635},
+{"name":"doom-modeline","hours":0.06344999999999999},
+{"name":"package-build","hours":0.06199444444444445},
+{"name":"emacs-which-key","hours":0.06048055555555555},
+{"name":"jest-test-mode","hours":0.05506944444444444},
+{"name":"gazprom-classes-frontend","hours":0.04866388888888889},
+{"name":"digital-schedule-backend","hours":0.04549166666666667},
+{"name":"company-mode","hours":0.04083888888888889},
+{"name":"emacs-jupyter","hours":0.03719166666666666},
+{"name":"swiper","hours":0.03139444444444444},
+{"name":"org-habit-stats","hours":0.028275},
+{"name":"SEM9_AMOS","hours":0.016411111111111112},
+{"name":"elfeed-org","hours":0.014444444444444446},
+{"name":"org-agenda-conflict","hours":0.013563888888888887},
+{"name":"org-ql","hours":0.013541666666666667},
+{"name":"test","hours":0.013236111111111112},
+{"name":"alert","hours":0.012311111111111111},
+{"name":"prodigy","hours":0.0079},
+{"name":"lsp-mode","hours":0.007405555555555556},
+{"name":"google-translate","hours":0.007016666666666668},
+{"name":"err","hours":0.005344444444444444},
+{"name":"testing","hours":0.004497222222222223},
+{"name":"dired-plus","hours":0.003427777777777778},
+{"name":"magit","hours":0.0}
+]
\ No newline at end of file
diff --git a/static/data/2023-03-13-emacs/emacs-related-time-per-month.json b/static/data/2023-03-13-emacs/emacs-related-time-per-month.json
new file mode 100644
index 0000000..4a8190c
--- /dev/null
+++ b/static/data/2023-03-13-emacs/emacs-related-time-per-month.json
@@ -0,0 +1,33 @@
+[
+{"period":"2020-10-01T00:00:00Z","misc_hours":21.499994166666667,"other_code_hours":45.492286944444444,"config_hours":16.605819444444446,"orgmode_hours":7.039610277777778,"package_hours":0.4319083333333334,"sqrt_hours":0.0},
+{"period":"2020-11-01T00:00:00Z","misc_hours":7.922545277777687,"other_code_hours":130.25115500000007,"config_hours":12.954636111111114,"orgmode_hours":8.673049444444446,"package_hours":0.6693083333333334,"sqrt_hours":0.0},
+{"period":"2020-12-01T00:00:00Z","misc_hours":44.62867111111112,"other_code_hours":172.2617105555556,"config_hours":7.404536111111111,"orgmode_hours":5.94598888888889,"package_hours":0.016411111111111112,"sqrt_hours":0.0},
+{"period":"2021-01-01T00:00:00Z","misc_hours":40.97078361111109,"other_code_hours":108.33508166666668,"config_hours":6.398185833333335,"orgmode_hours":1.7350899999999998,"package_hours":0.0,"sqrt_hours":0.0},
+{"period":"2021-02-01T00:00:00Z","misc_hours":23.105469444444452,"other_code_hours":103.90097305555558,"config_hours":9.639255277777778,"orgmode_hours":6.35959,"package_hours":0.1454027777777778,"sqrt_hours":9.579580555555557},
+{"period":"2021-03-01T00:00:00Z","misc_hours":85.43768361111111,"other_code_hours":70.83901499999999,"config_hours":5.351164444444444,"orgmode_hours":3.7601916666666666,"package_hours":0.050147222222222225,"sqrt_hours":0.0},
+{"period":"2021-04-01T00:00:00Z","misc_hours":39.610666111111044,"other_code_hours":125.15684861111119,"config_hours":17.82253972222222,"orgmode_hours":5.481723333333335,"package_hours":0.0683388888888889,"sqrt_hours":9.427069444444443},
+{"period":"2021-05-01T00:00:00Z","misc_hours":57.33526833333332,"other_code_hours":113.36815361111115,"config_hours":20.12919444444444,"orgmode_hours":9.530327777777776,"package_hours":3.1570388888888887,"sqrt_hours":0.85215},
+{"period":"2021-06-01T00:00:00Z","misc_hours":19.274042777777794,"other_code_hours":126.66362527777778,"config_hours":6.006847222222222,"orgmode_hours":1.051963888888889,"package_hours":0.0,"sqrt_hours":0.0},
+{"period":"2021-07-01T00:00:00Z","misc_hours":81.67501916666666,"other_code_hours":51.52624416666663,"config_hours":22.17445277777778,"orgmode_hours":12.676333333333334,"package_hours":0.6769444444444445,"sqrt_hours":0.0},
+{"period":"2021-08-01T00:00:00Z","misc_hours":61.93839333333341,"other_code_hours":130.07233138888884,"config_hours":11.854841666666667,"orgmode_hours":11.899877777777776,"package_hours":17.619797222222225,"sqrt_hours":2.2672416666666666},
+{"period":"2021-09-01T00:00:00Z","misc_hours":71.1573447222222,"other_code_hours":120.12417027777782,"config_hours":9.464760000000004,"orgmode_hours":12.50451666666667,"package_hours":0.01851111111111111,"sqrt_hours":6.370205555555555},
+{"period":"2021-10-01T00:00:00Z","misc_hours":81.92015388888885,"other_code_hours":116.64286166666663,"config_hours":11.370164166666664,"orgmode_hours":7.676310277777775,"package_hours":0.29834166666666667,"sqrt_hours":2.6114666666666664},
+{"period":"2021-11-01T00:00:00Z","misc_hours":54.09148222222214,"other_code_hours":83.06970250000002,"config_hours":26.667271388888892,"orgmode_hours":17.463530277777775,"package_hours":12.023868333333331,"sqrt_hours":2.957238888888889},
+{"period":"2021-12-01T00:00:00Z","misc_hours":73.14686083333333,"other_code_hours":98.72174722222223,"config_hours":18.940516666666674,"orgmode_hours":9.036408333333334,"package_hours":8.266713888888889,"sqrt_hours":2.5470305555555557},
+{"period":"2022-01-01T00:00:00Z","misc_hours":78.7037844444445,"other_code_hours":90.03770083333329,"config_hours":9.120791666666667,"orgmode_hours":12.36731388888889,"package_hours":20.481719166666664,"sqrt_hours":5.263049999999999},
+{"period":"2022-02-01T00:00:00Z","misc_hours":65.48075472222229,"other_code_hours":59.16844611111107,"config_hours":6.861180555555555,"orgmode_hours":11.32403333333334,"package_hours":22.03164722222222,"sqrt_hours":3.680427777777778},
+{"period":"2022-03-01T00:00:00Z","misc_hours":59.85770472222208,"other_code_hours":101.48262166666677,"config_hours":3.2610216666666663,"orgmode_hours":7.583500000000001,"package_hours":18.58566944444444,"sqrt_hours":0.11891944444444444},
+{"period":"2022-04-01T00:00:00Z","misc_hours":68.30733527777787,"other_code_hours":112.87104388888886,"config_hours":7.927665277777777,"orgmode_hours":7.156380555555556,"package_hours":6.058352777777777,"sqrt_hours":0.0},
+{"period":"2022-05-01T00:00:00Z","misc_hours":72.09807583333335,"other_code_hours":109.0747988888889,"config_hours":2.0066166666666665,"orgmode_hours":4.990799999999998,"package_hours":12.661681666666665,"sqrt_hours":5.370564722222222},
+{"period":"2022-06-01T00:00:00Z","misc_hours":79.17945000000002,"other_code_hours":99.92501694444441,"config_hours":2.295294722222222,"orgmode_hours":4.66531138888889,"package_hours":1.937625,"sqrt_hours":4.099763888888889},
+{"period":"2022-07-01T00:00:00Z","misc_hours":100.25373388888889,"other_code_hours":80.96754916666667,"config_hours":7.048831944444444,"orgmode_hours":6.63810111111111,"package_hours":8.259250000000002,"sqrt_hours":0.30644166666666667},
+{"period":"2022-08-01T00:00:00Z","misc_hours":51.45677333333333,"other_code_hours":42.76726638888889,"config_hours":5.659562777777778,"orgmode_hours":33.62366111111111,"package_hours":25.84174444444444,"sqrt_hours":0.007108333333333333},
+{"period":"2022-09-01T00:00:00Z","misc_hours":93.71000527777774,"other_code_hours":59.957424166666726,"config_hours":2.910955555555555,"orgmode_hours":20.163738888888883,"package_hours":0.0,"sqrt_hours":5.0835},
+{"period":"2022-10-01T00:00:00Z","misc_hours":100.06510222222227,"other_code_hours":75.89180972222216,"config_hours":1.3981391666666667,"orgmode_hours":16.778726111111112,"package_hours":0.03719166666666666,"sqrt_hours":0.31931388888888895},
+{"period":"2022-11-01T00:00:00Z","misc_hours":72.92531194444443,"other_code_hours":88.36294638888896,"config_hours":0.3248416666666667,"orgmode_hours":19.864126388888884,"package_hours":0.71435,"sqrt_hours":0.16440277777777776},
+{"period":"2022-12-01T00:00:00Z","misc_hours":90.02505416666664,"other_code_hours":70.48672027777783,"config_hours":3.6556722222222215,"orgmode_hours":24.646485833333337,"package_hours":6.301308333333334,"sqrt_hours":0.0},
+{"period":"2023-01-01T00:00:00Z","misc_hours":81.74121027777785,"other_code_hours":74.15600861111108,"config_hours":8.502313888888889,"orgmode_hours":23.546456388888878,"package_hours":1.2940805555555555,"sqrt_hours":3.091511111111111},
+{"period":"2023-02-01T00:00:00Z","misc_hours":59.22556611111115,"other_code_hours":71.66723777777779,"config_hours":6.266827777777776,"orgmode_hours":21.286059722222213,"package_hours":1.6511055555555558,"sqrt_hours":0.0},
+{"period":"2023-03-01T00:00:00Z","misc_hours":80.38888166666672,"other_code_hours":65.02923749999997,"config_hours":1.528583333333333,"orgmode_hours":56.1532963888889,"package_hours":0.737786111111111,"sqrt_hours":0.027744444444444447},
+{"period":"2023-04-01T00:00:00Z","misc_hours":6.3998452777777715,"other_code_hours":0.0,"config_hours":10.446358333333334,"orgmode_hours":9.446027777777772,"package_hours":0.7153416666666667,"sqrt_hours":15.621758333333334}
+]
\ No newline at end of file
diff --git a/static/data/2023-03-13-emacs/emacs-screen-time.json b/static/data/2023-03-13-emacs/emacs-screen-time.json
new file mode 100644
index 0000000..021aff2
--- /dev/null
+++ b/static/data/2023-03-13-emacs/emacs-screen-time.json
@@ -0,0 +1,33 @@
+[
+{"date_trunc":"2020-10-01T00:00:00Z","percent":0.20421706158872063},
+{"date_trunc":"2020-11-01T00:00:00Z","percent":0.2656396332934231},
+{"date_trunc":"2020-12-01T00:00:00Z","percent":0.328156158373562},
+{"date_trunc":"2021-01-01T00:00:00Z","percent":0.30293494692052564},
+{"date_trunc":"2021-02-01T00:00:00Z","percent":0.29825278394208066},
+{"date_trunc":"2021-03-01T00:00:00Z","percent":0.24318066017980156},
+{"date_trunc":"2021-04-01T00:00:00Z","percent":0.3774396720741769},
+{"date_trunc":"2021-05-01T00:00:00Z","percent":0.2907218886830386},
+{"date_trunc":"2021-06-01T00:00:00Z","percent":0.37853346779023606},
+{"date_trunc":"2021-07-01T00:00:00Z","percent":0.3451648046146705},
+{"date_trunc":"2021-08-01T00:00:00Z","percent":0.5261220707445486},
+{"date_trunc":"2021-09-01T00:00:00Z","percent":0.4095219799672908},
+{"date_trunc":"2021-10-01T00:00:00Z","percent":0.3562719759085607},
+{"date_trunc":"2021-11-01T00:00:00Z","percent":0.3946809530892407},
+{"date_trunc":"2021-12-01T00:00:00Z","percent":0.46327503042546997},
+{"date_trunc":"2022-01-01T00:00:00Z","percent":0.5318326577174478},
+{"date_trunc":"2022-02-01T00:00:00Z","percent":0.4358549401255391},
+{"date_trunc":"2022-03-01T00:00:00Z","percent":0.41948172412528684},
+{"date_trunc":"2022-04-01T00:00:00Z","percent":0.4430246367606649},
+{"date_trunc":"2022-05-01T00:00:00Z","percent":0.39880827117107315},
+{"date_trunc":"2022-06-01T00:00:00Z","percent":0.39962422579568685},
+{"date_trunc":"2022-07-01T00:00:00Z","percent":0.3741313993218909},
+{"date_trunc":"2022-08-01T00:00:00Z","percent":0.5678526580569381},
+{"date_trunc":"2022-09-01T00:00:00Z","percent":0.3912379067398905},
+{"date_trunc":"2022-10-01T00:00:00Z","percent":0.3807843143331747},
+{"date_trunc":"2022-11-01T00:00:00Z","percent":0.36358283951988357},
+{"date_trunc":"2022-12-01T00:00:00Z","percent":0.3664672426322652},
+{"date_trunc":"2023-01-01T00:00:00Z","percent":0.5015832592260838},
+{"date_trunc":"2023-02-01T00:00:00Z","percent":0.48874221007685836},
+{"date_trunc":"2023-03-01T00:00:00Z","percent":0.43940966116785446},
+{"date_trunc":"2023-04-01T00:00:00Z","percent":0.5047683251058214}
+]
\ No newline at end of file
diff --git a/static/data/2023-03-13-emacs/emacs-vim-switch.json b/static/data/2023-03-13-emacs/emacs-vim-switch.json
new file mode 100644
index 0000000..cd34d8f
--- /dev/null
+++ b/static/data/2023-03-13-emacs/emacs-vim-switch.json
@@ -0,0 +1,42 @@
+[
+{"period":"2020-10-01T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":4.593828333333334,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-02T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":5.804007777777778,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-03T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":0.7722222222222223,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-04T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":4.997453333333334,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-05T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":3.792777777777778,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-06T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":1.2219444444444443,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-07T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":0.6566666666666666,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-08T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":2.1977777777777776,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-09T00:00:00Z","misc_emacs_hours":1.544538888888889,"emacs_other_code_hours":0.0,"vim_other_code_hours":2.2808333333333333,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-10T00:00:00Z","misc_emacs_hours":2.166045,"emacs_other_code_hours":0.0,"vim_other_code_hours":2.765833333333333,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-11T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":1.522777777777778,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-12T00:00:00Z","misc_emacs_hours":3.373538055555555,"emacs_other_code_hours":0.0,"vim_other_code_hours":2.8524999999999996,"config_hours":1.1968416666666668,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-13T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.0,"vim_other_code_hours":3.1955855555555557,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-14T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.6688305555555559,"vim_other_code_hours":0.07459444444444445,"config_hours":2.822041666666667,"orgmode_hours":0.0,"package_hours":0.06048055555555555},
+{"period":"2020-10-15T00:00:00Z","misc_emacs_hours":1.0370783333333335,"emacs_other_code_hours":4.3661255555555565,"vim_other_code_hours":0.24187555555555554,"config_hours":3.7891083333333335,"orgmode_hours":0.0,"package_hours":0.2898111111111111},
+{"period":"2020-10-16T00:00:00Z","misc_emacs_hours":1.2085813888888888,"emacs_other_code_hours":2.804672222222222,"vim_other_code_hours":0.0020166666666666666,"config_hours":0.4711361111111111,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-10-17T00:00:00Z","misc_emacs_hours":1.5149327777777772,"emacs_other_code_hours":1.431163888888889,"vim_other_code_hours":0.24356111111111112,"config_hours":2.4144055555555557,"orgmode_hours":1.0415694444444443,"package_hours":0.0},
+{"period":"2020-10-18T00:00:00Z","misc_emacs_hours":1.185498611111111,"emacs_other_code_hours":4.190124999999999,"vim_other_code_hours":0.0,"config_hours":0.1758361111111111,"orgmode_hours":0.5317666666666666,"package_hours":0.0},
+{"period":"2020-10-19T00:00:00Z","misc_emacs_hours":1.0136511111111104,"emacs_other_code_hours":2.7192686111111115,"vim_other_code_hours":0.0022222222222222222,"config_hours":0.03091111111111111,"orgmode_hours":0.3985694444444444,"package_hours":0.0},
+{"period":"2020-10-20T00:00:00Z","misc_emacs_hours":1.6019416666666655,"emacs_other_code_hours":1.8278999999999996,"vim_other_code_hours":0.0,"config_hours":0.09761388888888889,"orgmode_hours":1.1227472222222223,"package_hours":0.0},
+{"period":"2020-10-21T00:00:00Z","misc_emacs_hours":0.10150999999999932,"emacs_other_code_hours":4.24669138888889,"vim_other_code_hours":0.014744444444444444,"config_hours":0.4583833333333333,"orgmode_hours":0.1297222222222222,"package_hours":0.0},
+{"period":"2020-10-22T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":5.37636388888889,"vim_other_code_hours":0.05089722222222222,"config_hours":0.024694444444444446,"orgmode_hours":0.21722777777777777,"package_hours":0.0},
+{"period":"2020-10-23T00:00:00Z","misc_emacs_hours":0.40990444444444485,"emacs_other_code_hours":4.576274999999999,"vim_other_code_hours":0.09225833333333333,"config_hours":0.6420833333333333,"orgmode_hours":0.5016444444444444,"package_hours":0.08161666666666667},
+{"period":"2020-10-24T00:00:00Z","misc_emacs_hours":0.07689472222222271,"emacs_other_code_hours":1.2494466666666666,"vim_other_code_hours":0.0061111111111111106,"config_hours":0.4475111111111111,"orgmode_hours":0.8585111111111111,"package_hours":0.0},
+{"period":"2020-10-25T00:00:00Z","misc_emacs_hours":1.3529136111111115,"emacs_other_code_hours":2.2984227777777777,"vim_other_code_hours":0.0,"config_hours":0.22775833333333334,"orgmode_hours":0.03581666666666667,"package_hours":0.0},
+{"period":"2020-10-26T00:00:00Z","misc_emacs_hours":2.2822991666666663,"emacs_other_code_hours":1.8299355555555556,"vim_other_code_hours":0.21062777777777777,"config_hours":0.5299861111111112,"orgmode_hours":0.9724463888888889,"package_hours":0.0},
+{"period":"2020-10-27T00:00:00Z","misc_emacs_hours":2.4492977777777787,"emacs_other_code_hours":1.3149833333333336,"vim_other_code_hours":0.0,"config_hours":1.6067777777777779,"orgmode_hours":0.7547583333333333,"package_hours":0.0},
+{"period":"2020-10-28T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":0.9042833333333333,"vim_other_code_hours":0.08348333333333334,"config_hours":0.7079055555555556,"orgmode_hours":0.14482499999999998,"package_hours":0.0},
+{"period":"2020-10-29T00:00:00Z","misc_emacs_hours":0.328835555555556,"emacs_other_code_hours":3.784140277777778,"vim_other_code_hours":0.15638888888888888,"config_hours":0.4212972222222222,"orgmode_hours":0.07462222222222221,"package_hours":0.0},
+{"period":"2020-10-30T00:00:00Z","misc_emacs_hours":0.27459194444444435,"emacs_other_code_hours":0.07239999999999996,"vim_other_code_hours":0.2136111111111111,"config_hours":0.38052222222222226,"orgmode_hours":0.20900277777777776,"package_hours":0.0},
+{"period":"2020-10-31T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":2.46487,"vim_other_code_hours":0.0,"config_hours":0.16100555555555557,"orgmode_hours":0.04638055555555556,"package_hours":0.0},
+{"period":"2020-11-01T00:00:00Z","misc_emacs_hours":0.609663055555556,"emacs_other_code_hours":5.329877777777778,"vim_other_code_hours":0.0,"config_hours":0.02627777777777778,"orgmode_hours":0.30374999999999996,"package_hours":0.0},
+{"period":"2020-11-02T00:00:00Z","misc_emacs_hours":1.6059166666666673,"emacs_other_code_hours":2.984023055555556,"vim_other_code_hours":0.02325,"config_hours":0.8176666666666665,"orgmode_hours":0.016177777777777777,"package_hours":0.003427777777777778},
+{"period":"2020-11-03T00:00:00Z","misc_emacs_hours":0.3323786111111109,"emacs_other_code_hours":2.076485,"vim_other_code_hours":0.0,"config_hours":0.0,"orgmode_hours":0.44376611111111114,"package_hours":0.0},
+{"period":"2020-11-04T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":5.921964722222222,"vim_other_code_hours":0.0,"config_hours":0.500686111111111,"orgmode_hours":1.411311111111111,"package_hours":0.0},
+{"period":"2020-11-05T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":7.012325,"vim_other_code_hours":0.0,"config_hours":0.3160166666666667,"orgmode_hours":0.008994444444444446,"package_hours":0.0},
+{"period":"2020-11-06T00:00:00Z","misc_emacs_hours":0.8303497222222229,"emacs_other_code_hours":1.9601530555555557,"vim_other_code_hours":0.0,"config_hours":0.0,"orgmode_hours":1.155611111111111,"package_hours":0.0},
+{"period":"2020-11-07T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":5.815349444444445,"vim_other_code_hours":0.0,"config_hours":0.0,"orgmode_hours":0.0,"package_hours":0.0},
+{"period":"2020-11-08T00:00:00Z","misc_emacs_hours":0.5992686111111123,"emacs_other_code_hours":7.439156111111109,"vim_other_code_hours":0.0,"config_hours":0.0,"orgmode_hours":0.08499444444444444,"package_hours":0.0},
+{"period":"2020-11-09T00:00:00Z","misc_emacs_hours":0.0,"emacs_other_code_hours":2.465256666666667,"vim_other_code_hours":0.0,"config_hours":0.0,"orgmode_hours":0.620813888888889,"package_hours":0.0}
+]
\ No newline at end of file
diff --git a/static/data/2023-03-13-emacs/lengths.csv b/static/data/2023-03-13-emacs/lengths.csv
new file mode 100644
index 0000000..da2fd24
--- /dev/null
+++ b/static/data/2023-03-13-emacs/lengths.csv
@@ -0,0 +1,685 @@
+commit,date,Emacs.org,init.el,init.vim,Desktop.org,Console.org,Mail.org,Guix.org
+19911d3c96fda1f2eb0d6b0b9ca863498eebae7f,2023-04-03T11:30:26+03:00,8867,6235,1053,3747,1018,616,726
+516f7b0ffde496e5b6f073fde840f048132993ea,2023-04-03T11:28:32+03:00,8867,6235,1053,3747,1018,616,726
+d7f69b10715ddc43a38c3c9e84804dfd25f62cd2,2023-04-03T11:28:01+03:00,8867,6235,1053,3747,1018,616,726
+2a69f52ca0979437f5f8872a180c4fc5fa46257c,2023-03-20T13:29:04+03:00,8866,6234,1053,3747,1018,616,726
+cd7e9934a7f2e4b8cf3633a4c546ede9d7ac0ef4,2023-03-15T17:38:28+03:00,8866,6234,1053,3747,1018,616,726
+89d9a729e091c8bffadce98ddd598cbde7af0cbc,2023-03-14T12:34:56+03:00,8866,6234,1053,3747,1018,616,726
+9b52defcc8df025f6f80b59ce7bbd5018b5019af,2023-03-14T12:31:41+03:00,8866,6234,1053,3747,1018,616,726
+aefff14a6a25b2afcce3048e3ded8fc309b00423,2023-03-14T12:31:28+03:00,8866,6234,1053,3747,1018,616,726
+128c7d8020e52b22acd9d97ef7e661c3583bb1a4,2023-03-14T12:31:06+03:00,8866,6234,1053,3747,1018,616,726
+c8b995d6db6c83e326f13f908a11ad27a2f05e81,2023-03-07T23:06:01+03:00,8855,6227,1053,3747,1018,616,726
+5e0d3dc8e28cb8cecf1aec536e1c2fb867efc986,2023-03-01T22:16:33+03:00,8856,6227,1053,3747,1018,616,726
+a346ca31760f7367d41b2b6054a2b4142adb1cd6,2023-03-01T18:18:37+03:00,8835,6211,1053,3747,1018,616,726
+8017eea0ca1e9d4e9ec4da0175625370b25ea5cb,2023-03-01T18:18:16+03:00,8835,6211,1053,3747,1017,616,726
+f1780832f0f2065324fad65e242815e7f0c1b5b1,2023-03-01T18:17:57+03:00,8835,6211,1053,3743,1017,616,726
+018c35dba99112e8e444fda9408ca80e32e85104,2023-03-01T11:06:42+03:00,8831,6207,1053,3743,1017,616,726
+8a82a52ed017516c00a1d6753cea989253ae78e1,2023-02-22T18:54:45+03:00,8831,6207,1053,3741,1017,616,726
+ce2b447f15e7f1d790870abccc787cbbe3ce9115,2023-02-20T15:12:44+03:00,8814,6196,1053,3741,1017,616,726
+3adca25f883641cc7d43a7e8b8774fb6316aa399,2023-02-19T23:58:25+03:00,8813,6196,1053,3741,1017,616,726
+978e5f682676d2546506f9b26a8d3f1198f4f91a,2023-02-19T23:57:30+03:00,8813,6196,1053,3740,1017,616,726
+9831d1909245c818551660d1df6ed2e572445c3f,2023-02-18T17:33:37+03:00,8788,6178,1053,3740,1017,616,726
+6bbf74279c1e4f8c246bedb737318f02ddde75bd,2023-02-18T17:33:11+03:00,8788,6178,1053,3740,1017,616,726
+bd718b254d9bfb0d14c4f408350087eb220cf5d6,2023-02-17T21:07:13+03:00,8670,6087,1053,3740,1017,616,726
+739d92c5ed11d011852f9e2c18e45393d266c92e,2023-02-17T20:45:32+03:00,8670,6087,1053,3767,1017,616,726
+5056dceda84def0c791601f3d32196c7065ec466,2023-02-14T23:52:48+03:00,8657,6076,1053,3740,1017,616,726
+5ec42f4356a34f8577adfab5645f6a7181acd103,2023-02-13T18:38:57+03:00,8657,6076,1053,3740,1014,616,726
+45cc0e249d450a228211919c288ceca6a40dfd40,2023-02-13T18:30:50+03:00,8657,6076,1053,3740,1014,616,726
+868e94ef20694e583c9fad77d896ad371dc33bf6,2023-02-13T18:30:33+03:00,8657,6076,1053,3740,1014,616,726
+d2620549b86ce8beaeba45a88296946853183ae7,2023-02-12T23:37:13+03:00,8636,6061,1053,3740,1014,616,726
+41464749cfcdd17640b1ca8272cae373abf966c3,2023-02-08T23:54:00+03:00,8526,5998,1053,3740,1014,616,726
+5fe019fbd5cc653c73bb8702bcb59135350367df,2023-02-08T23:52:16+03:00,8509,5985,1053,3728,1009,616,726
+a1b77e233021fe22c6fcf1c2bc33da13586fe0c3,2023-02-08T13:08:16+03:00,8526,5998,1053,3740,1014,616,726
+b96a7f62fb09f662336676cbcb40430ea91ac95f,2023-02-08T13:02:35+03:00,8526,5998,1053,3740,1009,616,726
+8b954419fe17d0a32093d7b1b72eefbb555a5e68,2023-02-08T13:02:26+03:00,8526,5998,1053,3728,1009,616,726
+87626e053967305056f0d9c4463ababe63282368,2023-01-30T22:50:09+03:00,8509,5985,1053,3728,1009,616,726
+49398d4cb8f216858b0d0ce9c000ba2e8affd24f,2023-01-30T01:37:41+03:00,8509,5985,1053,3728,1002,616,726
+e966318c57215f6678eefbe1807520d98def61d7,2023-01-30T01:09:21+03:00,8488,5968,1053,3728,1002,616,726
+2b11ae1f67b2e7c1ef3e64f4076e45ac9b8095c2,2023-01-30T01:07:51+03:00,8388,5897,1053,3728,1001,616,726
+8516c33edccf7e60942344459f5842d9a6885b10,2023-01-27T13:52:21+03:00,8475,5958,1053,3728,1002,616,726
+be08c8b2b6f5dd021567d65a390746d6abbe5b33,2023-01-27T13:49:36+03:00,8474,5957,1053,3728,1002,616,726
+1b6951cf398a9ac04f5a8839d5a9fb2d7ad5d8d1,2023-01-27T13:48:45+03:00,8474,5957,1053,3728,1002,616,726
+2136be197ff9a9235cca896d8aa13423dd75b049,2023-01-25T17:30:47+03:00,8474,5957,1053,3728,1002,616,726
+c1532698cdb86c982a17e50b784af20b3205fbe9,2023-01-24T23:33:42+03:00,8474,5957,1053,3728,1001,616,726
+f5255ccecb0519a2dd21dd51c3a44e00f8eeddfe,2023-01-24T11:46:06+03:00,8375,5885,1053,3728,1001,616,726
+c8ba987151e70c01f4821b7a79da5f0bd1c88c35,2023-01-24T08:13:45+00:00,8375,5885,1053,3728,1001,616,726
+b2536657d2aba6975e286dd7a719ebe34683d11e,2023-01-21T23:53:09+03:00,8375,5885,1053,3728,1001,616,726
+44142f3c4b7a9f21d9281de00125f35ab382a512,2023-01-14T23:39:28+03:00,8353,5878,1053,3728,1001,616,726
+2cc69241abe26f090418006c10b906ddf53f8887,2023-01-14T23:39:21+03:00,8353,5878,1053,3728,1001,616,726
+0c6c2e6acfa4707426429c0dbe887ad57c1e2c4e,2023-01-14T23:39:07+03:00,8353,5878,1053,3728,1001,616,726
+86798c2875c81c6f89196efbd3dc77b781d62236,2023-01-08T23:52:07+03:00,8327,5856,1053,3728,1001,616,726
+2009a87910aa21337afeee73dd0e36190b8b7d6a,2023-01-07T23:13:43+03:00,8304,5840,1053,3728,1001,616,726
+eb20f672ebb17a1619a96108b2f6c5ab9b448968,2023-01-05T00:03:39+03:00,8146,5716,1053,3728,1001,616,726
+3f5967a5f63928ea9c8567d8d9f31e84cdbbc21f,2023-01-03T18:31:37+03:00,8142,5715,1053,3728,1001,616,726
+66c1734309a4c0b1655b99e24f79ac94cbaadee0,2023-01-02T12:05:25+03:00,8037,5688,1053,3728,1001,616,726
+33bac98368bf7f78482b843722bb6fa26dcd006a,2023-01-02T12:01:39+03:00,8037,5688,1053,3728,1001,616,726
+e7391ff0888d21b0f485bd1498ae37fd41a7349e,2023-01-02T12:01:25+03:00,8027,5683,1053,3728,1001,616,726
+1e5a588ef5c4e71466a3c09e1061c329eb4bc441,2022-12-27T10:25:02+03:00,8027,5683,1053,3728,1040,616,726
+fc68c8d0eb8ce9455a8fb12358d83515d073e82c,2022-12-27T10:24:40+03:00,7857,5538,1053,3728,1040,616,726
+33ecd0197e0ebbeb996ad0c98ee231d2cc770248,2022-12-03T23:35:48+03:00,7857,5538,1053,3728,1040,616,726
+d0be119ad6b38bf30dd313ece7de474d0c0af3a3,2022-12-03T23:35:27+03:00,7827,5513,1053,3728,1040,616,726
+f5e612afe9fdcd999e07cc9c479e7db4ee68385a,2022-12-02T15:26:27+03:00,7827,5513,1053,3730,1040,616,726
+d9cc1e6690ceb3ad5612233f7d1f8f6991631e6b,2022-12-02T15:21:55+03:00,7827,5513,1053,3730,1040,616,726
+e9e3899c9ecf07ed57dcc87cc8889ff6d0193527,2022-12-02T15:21:40+03:00,7827,5513,1053,3730,1040,616,726
+a05697a4236674aab9f1df3612ce08862a9a2687,2022-11-15T22:46:44+03:00,7827,5513,1053,3745,1040,616,726
+12ea14e42b0e938d6ae9644eb4e0a21e264115f5,2022-10-28T09:45:20+03:00,7720,5429,1053,3745,1040,616,726
+bf70b39efea5e957690e5d2cde668ddbe353db28,2022-10-28T09:44:59+03:00,7720,5429,1053,3745,1040,633,726
+d093e755fd97a88157d10f4df7353a1729071ee5,2022-10-22T13:29:27+03:00,7720,5429,1053,3745,1040,633,726
+cf592a86e2e4d034e2d966116683dca98bf796d7,2022-10-13T23:00:11+03:00,7720,5429,1053,3745,1040,633,726
+e855da1a9f7a8148a2a4fc880b4157c1f10f005e,2022-10-13T22:51:59+03:00,7699,5413,1053,3745,1040,633,726
+dee410617f609530771f94f6f42c429b00ef4a98,2022-09-23T16:32:30+03:00,7699,5413,1053,3744,1040,633,726
+1d3e2940b419f96ac1957647387154132071962e,2022-09-18T18:33:36+03:00,7678,5399,1053,3744,1040,633,726
+ca3b1781eb70346e0e253ca72fb40d68e34e4e30,2022-09-15T12:44:33+03:00,7599,5394,1053,3744,1040,633,726
+56b2711f52b201497582b1d884f63567d96b500f,2022-09-15T12:43:53+03:00,7599,5394,1053,3744,1040,633,726
+44cf90eb363e4c8b2649800272d31321e1c20938,2022-09-15T12:43:32+03:00,7599,5394,1053,3744,1040,633,726
+7c0e26d42c4385bd4e967d02f72dd0e2438a2ad8,2022-09-15T12:43:02+03:00,7559,5360,1053,3744,1040,633,726
+71c78397bb3b2fb479ff214348bc9a226aae5a1d,2022-09-03T12:49:12+03:00,7559,5360,1053,3743,1040,633,726
+86ed4185e13a4b1f95321e431b8e4fe27f34174e,2022-08-31T21:07:19+03:00,7493,5316,1053,3743,1040,625,726
+4c52cf6e80c3b540a778c601d128bef8e659309b,2022-08-31T16:22:43+03:00,7493,5316,1053,3743,1040,625,723
+804e6c2932477169a6374661d614e2424e55479e,2022-08-28T18:38:43+03:00,7489,5312,1053,3743,1040,625,723
+07cc13ad5c098e9ba3a9b1a0f5f63dbcb498e667,2022-08-19T10:08:00+05:00,7385,5228,1053,3743,1040,625,723
+46904ca73bec195a5a845e1433973e94abd42175,2022-08-19T10:04:54+05:00,7385,5228,1053,3743,1040,625,723
+749c354ef369e6376dfd4f76108426f5daf964ac,2022-08-19T10:04:38+05:00,7386,5229,1053,3743,1040,625,723
+182d01ace4468f53c8014ddd602946bd220721d9,2022-08-15T19:01:17+05:00,7386,5229,1053,3743,1040,625,723
+7f69c7851ee48f9ceede4d0d68c69bd1d0c9500e,2022-08-15T19:00:37+05:00,7386,5229,1053,3743,1040,625,723
+b5a3ed89e30e9f3dbfe8648a7f1cc06239f3d79e,2022-08-15T19:00:03+05:00,7386,5229,1053,3743,1035,625,723
+3a9eaa14421993917cd45758ed41f246c31f31df,2022-08-15T18:59:26+05:00,7308,5171,1053,3743,1035,625,723
+22762966dca788e0b88092cb52eb644b6d4fb237,2022-08-03T20:24:05+03:00,7308,5171,1053,3743,1035,625,723
+fbe878c3121ac4d3ab796b066cdb88a7050d08c7,2022-08-03T14:45:30+03:00,7308,5171,1053,3743,1035,625,723
+973be91ef9efec381e374fc0d38a577d5ee63ba6,2022-08-03T14:45:16+03:00,7308,5171,1053,3743,1025,625,723
+e2717a0ca8b3501ddd007003b34aad3784181e14,2022-07-28T23:20:51+03:00,7308,5171,1053,3741,1025,625,722
+ed580177698f2e65656335fafe33c1c0e5812341,2022-07-25T23:34:39+03:00,7291,5158,1053,3741,1025,625,722
+1af534fcd24c14cbe65d22301cb85821008210eb,2022-07-25T23:34:24+03:00,7291,5158,1053,3741,1025,625,722
+194aadcd1da9a68fb3e1aed4eb40a4f6218efacc,2022-07-25T00:15:53+03:00,7287,5154,1053,3741,1025,625,722
+36eccc1af1c85a01511d239f03626ea8be86e2dd,2022-07-24T23:30:41+03:00,7271,5138,1053,3741,1025,625,722
+ae469d99c9c172e1eedb6868abe936e404ee9db8,2022-07-24T23:30:23+03:00,7239,5113,1053,3741,1025,625,722
+7954f46715baf611f9bcf90586edee83e0dfa4f1,2022-07-24T20:53:41+03:00,7239,5113,1053,3626,1025,625,722
+bd688bdc866d3bba3bd6672e091746127ca54734,2022-07-24T19:36:39+03:00,7484,5113,1053,3760,1062,648,753
+4c97ef1a9c8c31d225bcee1ec49b5184c1936c53,2022-07-20T22:36:10+03:00,7469,5103,1053,3760,1062,648,753
+ce79da5b3f20539c4e29ed375c99ec4c0965cc39,2022-07-20T16:19:01+03:00,7462,5130,1053,3760,1062,648,753
+777c37245b62c326edee3ff60f7defd980c54b14,2022-07-14T23:01:01+03:00,7422,5120,1053,3760,1062,648,753
+23cb747ae8b560adfd416bc22a12aa025b6a6b34,2022-07-11T12:56:33+03:00,7386,5076,1053,3760,1062,648,753
+82ab1fa96e98e2e2331f954454262f702f7fb96e,2022-07-09T23:12:54+03:00,7386,5076,1053,3759,1062,648,753
+977c0c2be111287d056937827d569b5cbbcf77f0,2022-07-09T23:12:07+03:00,7386,5076,1053,3755,1062,648,753
+ae66dcacc14c9ca018cbe26a46b6546dfb55b906,2022-07-09T23:11:37+03:00,7372,5096,1053,3755,1062,648,753
+460e6a8d32b845fbebd51d0f07485ec349083abd,2022-07-02T14:56:16+03:00,7372,5096,1053,3755,1060,648,753
+7de55fa15f09b8e5229fc54471dcfcb642a8ff93,2022-06-26T22:03:18+03:00,7372,5096,1053,3755,1060,570,753
+f12737bb44edafecec2b79b8d9a70d5ed1a1ff99,2022-06-26T21:53:26+03:00,7372,5096,1053,3755,1060,570,753
+fbca334a3585ef6a1d595402ed708917a785789d,2022-06-26T21:53:11+03:00,7372,5096,1053,3756,1062,572,753
+3d1df15f9adf7d9ed734c2cd3664e3dd6c3e989c,2022-06-26T21:52:54+03:00,7372,5096,1053,3756,1062,572,755
+17d6192394e6321e80fde5417954f84256fb6f57,2022-06-17T23:36:47+03:00,7396,5092,1053,3756,1062,572,755
+0b1d5457a6a942d8b2f1c20400d09d4ffd0cfb81,2022-06-17T23:36:29+03:00,7396,5092,1053,3756,1062,572,755
+ca3ee40b6eb65e49f140c890853ef6e885aa210b,2022-06-09T22:26:56+03:00,7401,5097,1053,3756,1062,572,755
+a2c6f501ea650454dd1eebce9beec9dd67c1afd6,2022-06-06T22:31:53+03:00,7393,5089,1053,3756,1062,572,755
+95ac6c9e27eacf96208fac83763be6211f5ddf47,2022-06-06T22:29:27+03:00,7393,5089,1053,3756,1062,572,755
+8e591e0d2afd909ae5be00caf17f9b17c6cd8b61,2022-05-29T23:01:58+03:00,7408,5114,1053,3756,1062,572,755
+062233413d50c91bc4665ce3f6470e5bc7a425c6,2022-05-29T23:01:38+03:00,7408,5114,1053,3756,1062,572,755
+4b176a5bb1a5e20a7fdd7398b74df79701267a7e,2022-05-14T21:53:15+03:00,7322,5045,1053,3756,1062,572,755
+c838c4ca10392e6786d9f22d31bbd41196e4b1d9,2022-05-14T20:32:31+03:00,7153,4949,1053,3756,1062,572,755
+bf3a0c19d7aedb6cf35d1421113cfb1170fad053,2022-05-14T20:31:16+03:00,7153,4949,1053,3756,1062,572,755
+cbf772803b505ef7ca72b01c7e78aff91fee8605,2022-05-14T20:31:01+03:00,7153,4949,1053,3754,1062,572,755
+c6e3c19c31cd0e2ccfd42903bb21788276444798,2022-05-03T23:16:37+03:00,7145,4939,1053,3754,1062,572,755
+9010944b8b42c6d193896a29b2867126f2cf4c00,2022-05-03T23:15:53+03:00,7145,4939,1053,3753,1062,572,755
+586d0c9cd51e248b2e8cb4b4656d20c1182f8b42,2022-05-03T23:15:31+03:00,7103,4900,1053,3753,1062,572,755
+c42b693c51dcf11179573439ebfc9fe40adb1a59,2022-04-30T20:21:07+03:00,7103,4900,1053,3753,1062,572,755
+a33abd485d58bf20be4c3667feaa6897c7f401a4,2022-04-30T20:20:16+03:00,7103,4900,1053,3753,1062,572,755
+86bb113b322dcd94bc865c89b5a18836f5dd0fa0,2022-04-19T20:36:47+03:00,6825,4663,1053,3753,1062,572,755
+4d10d68737842c9629b678bb58b4d1878f9f6c10,2022-04-19T20:32:42+03:00,6825,4663,1053,3751,1062,572,755
+e6ce327e69cb1a7609a71a58bac62859e5efff8d,2022-04-16T12:47:29+03:00,6779,4629,1053,3751,1062,572,755
+cded48d484676b2a85a71a305a0a43c7a44ba3d9,2022-04-14T22:59:58+03:00,6831,4676,1053,3751,1062,572,755
+9b1a3b4b43986d5b0c9c2b96ac1f55fb1c3deb3e,2022-04-14T12:34:51+03:00,6831,4676,1053,3751,1062,572,755
+53eb9132dc38e042badd77fe63cf619141d4a895,2022-04-14T12:33:33+03:00,6714,4570,1053,3751,1062,572,755
+efe1aadaa1bb5b77607840c82405d3fab1abd2fd,2022-04-14T12:33:24+03:00,6714,4570,1053,3751,1062,551,755
+a1eef2a025e25fa1d58da52475e2fefe57c27943,2022-04-09T12:53:58+03:00,6714,4570,1053,3747,1062,551,755
+33a8a2b3382b0cd866b07d2c347b56036080a571,2022-04-09T12:51:02+03:00,6714,4570,1053,3747,1062,551,755
+9028fc32356e6874709bbff1883176fa9f2ae682,2022-04-09T12:20:05+03:00,6714,4570,1053,3747,1062,551,755
+24665dea142b613a6317c89bf215fef8823cac6b,2022-04-09T12:18:36+03:00,6714,4570,1053,3747,1062,551,755
+7190f2c42bdbd8233e734221f9676dfdcbd03fa8,2022-04-08T23:17:37+03:00,6714,4570,1053,3765,1062,551,755
+8145157f01ca6579e5909725ac78b774e89f3f7e,2022-04-08T23:17:01+03:00,6714,4570,1053,3765,1062,551,731
+ac1b6a54341bacce0c52a1674e56f695ae7c85dd,2022-04-01T00:11:48+03:00,6640,4449,1053,3765,1062,551,731
+93ef763b716832b852b35613543e474d8785af4d,2022-03-31T23:40:56+03:00,6588,4449,1053,3765,1062,551,731
+fb88d105ea4cbc0943d2164fae6d9776e01de32e,2022-03-30T14:48:38+03:00,6573,4449,1053,3765,1062,551,731
+64020613192947d106659c30e655619b5f67bf88,2022-03-30T14:48:22+03:00,6573,4449,1053,3765,1058,551,731
+f22856746acf6313ae0e48116c78e035ca9b41aa,2022-03-28T12:17:32+03:00,6573,4449,1053,3762,1058,551,731
+7380dfeb2b9ba65079bc02321de9a82358aa9ade,2022-03-28T12:14:04+03:00,6573,4449,1053,3762,1058,551,731
+025278a1e180e86f3aade20242e4ac1cdc1a2f13,2022-03-22T11:14:12+03:00,6682,4541,1053,3762,1058,551,731
+fc758b407365f7a582ab6c08c3c24a82afcada78,2022-03-22T11:11:08+03:00,6667,4533,1053,3762,1058,551,731
+5aba1733029458ddd880575e89cf5826ef167b70,2022-03-21T22:56:53+03:00,6667,4533,1053,3761,1058,551,731
+97f41fdca43b844b29f92bb767f6f8f24390305a,2022-03-19T23:05:35+03:00,6667,4533,1053,3761,1058,551,731
+c0957bacc87f56ed517d55904e0b46dfc2c34e96,2022-03-17T16:43:50+03:00,6667,4533,1053,3761,1058,551,731
+026f211498252ba4756170f7f243d18c928443af,2022-03-17T16:43:26+03:00,6667,4533,1053,3741,1058,551,731
+1a6c6cf01edcb351c41791e0e27ecce3564175bd,2022-02-25T10:10:00+03:00,6638,4514,1053,3741,1058,551,731
+68d2b3317dc38231d6ee441eaa189d3c798fda98,2022-02-17T23:01:26+03:00,6608,4496,1053,3741,1058,551,731
+4d922dad493f73994b6d7625e19f9456dbbcfa4f,2022-02-17T22:58:22+03:00,6608,4496,1053,3741,1058,551,731
+00ca2648ed3c3c7f926646f319a2064f80bfa691,2022-02-17T22:57:31+03:00,6608,4496,1053,3741,1058,548,731
+78447d47496920c06a47dac0249bc3da26474966,2022-02-15T21:56:26+03:00,6608,4496,1053,3728,1058,548,731
+a02a8c1466fb8362601b352a5f79361f64bd22b8,2022-02-13T18:36:34+03:00,6600,4489,1053,3728,1058,548,731
+33e22565a0c33d37f7547f1863cd4d4dc95f5106,2022-02-13T14:30:27+03:00,6588,4478,1053,3728,1058,548,731
+bb976c89dfb954ff178b8a202423b6f686007de2,2022-02-12T23:11:17+03:00,6588,4478,1053,3705,1058,548,731
+53e45a5e38f0fa2c8ec5372358e95955c5cbccf0,2022-02-12T23:10:16+03:00,6523,4475,1053,3705,1058,548,731
+fa4856faef8f8b2f0d7111c079132a1fd6068410,2022-02-12T23:09:39+03:00,6523,4475,1053,3589,1058,548,731
+f2ab0a59cf1ce70554c42952a9bf3c23d4db87f5,2022-02-10T11:09:40+03:00,6523,4475,1053,3589,1058,548,731
+51ba1ce4d91f46d00eb7445eb94a183a9445f606,2022-02-09T22:31:04+03:00,6523,4475,1053,3570,1058,548,731
+906f66c9e50b7074776568c466a985606414dfe3,2022-02-07T23:00:19+03:00,6523,4475,1053,3570,1058,548,731
+840c3607d1b070d2b296d19a826afc5cab547543,2022-02-02T23:35:19+03:00,6501,4459,1053,3570,1058,548,731
+a3690db9567574bbea77a85fecce20bb4c5cf349,2022-01-31T10:54:36+03:00,6501,4459,1053,3570,1058,548,731
+d2648918fcc338bd5c1cd6d5c0aa60a65077ccf7,2022-01-24T12:40:41+03:00,6802,4677,1053,3570,1058,548,731
+8c32db93f31b72454ecf7002e083e044dec3cfd3,2022-01-24T12:40:00+03:00,6796,4665,1053,3570,1058,545,731
+f3c770650359ba851c2a4f562ae60ee7de59c881,2022-01-22T22:28:23+03:00,6796,4665,1053,3570,1058,543,731
+c83041584d44537c35d2d8beb7b19911db258991,2022-01-22T22:27:27+03:00,6796,4665,1053,3570,1058,542,731
+cea6bbf45c11f675f6be66bdb7de9460ff8dd651,2022-01-20T00:00:25+03:00,6772,4624,1053,3570,1058,542,731
+9612c69ffc2dba30bfa8a697e032e7a04913b2be,2022-01-19T22:34:11+03:00,6772,4624,1053,3570,1042,542,731
+7971eb63e5c684757215a852dba8b53e1297f86e,2022-01-18T18:31:26+03:00,6739,4612,1053,3570,1042,540,731
+90d7c91f0c319554edbfc434419960a175ba21cf,2022-01-17T14:41:31+03:00,6739,4612,1053,3570,1042,540,731
+5b9d5db173b0d16e2485c8a18bb900e37dafe464,2022-01-17T14:41:18+03:00,6739,4612,1053,3569,1042,540,731
+2733147293b7f5b39f0b1a8c814414ebf48b4408,2022-01-17T11:00:52+03:00,6739,4612,1053,3569,1037,540,731
+2210e8f81b0ba08f69af3ee0cdbccf520fbcc69b,2022-01-15T18:34:06+03:00,6725,4605,1053,3569,1037,540,731
+3d87852745caacc0863c747f1fa9871d367240d2,2022-01-15T13:26:12+03:00,6725,4629,1053,3569,1037,540,731
+0f0b664922416ec4a409df3abecdb1d8c1161aff,2022-01-13T11:24:11+03:00,6718,4622,1053,3569,1037,540,731
+e606c96d2b3c35b3d107a25a889c68bd04e1deb7,2022-01-13T11:23:50+03:00,6718,4622,1053,3546,1037,540,731
+269a416e5b1c595927ed9da9f351521dc0792bd1,2022-01-13T11:23:19+03:00,6717,4621,1053,3546,1037,540,731
+e68db3ed0da46f27ea2e84ca3da9cd8230ef2de5,2022-01-12T12:01:05+03:00,6717,4621,1053,3546,1037,540,716
+d697aab011bb08f4b58b2833823ebdcdc431117d,2022-01-11T10:19:16+03:00,6717,4621,1053,3546,1037,540,716
+7d1d5b5b725dee8fcb83fa987abd6ac350643353,2022-01-11T08:56:47+03:00,6717,4621,1053,3546,1037,540,716
+aff8463412f03195747071c7d19e610487d5adee,2022-01-11T08:55:30+03:00,6717,4621,1053,3546,1037,540,716
+fcca97d5547876ec6dfa3347ef57bd890d26db00,2022-01-11T08:54:57+03:00,6717,4621,1053,3535,1037,540,716
+d5409891f023ea22d7f7384e0497ef79205fe3f5,2022-01-11T08:54:25+03:00,6696,4604,1053,3535,1037,540,716
+a4d42098976e591bd95096c713e956118f49a199,2022-01-09T21:52:55+03:00,6696,4604,1053,3535,1037,540,706
+b02ccf4aa79ee83eb8c79629c299462e4fe34755,2022-01-09T21:51:44+03:00,6696,4604,1053,3518,1037,540,706
+aaf9b8725f6fa8ff7c9f4da8edfec756dd5ad4a8,2022-01-09T21:19:39+03:00,6696,4604,1053,3518,1037,540,706
+b7896679f5d11e2371648e55bd20c09778b95f35,2022-01-09T21:19:01+03:00,6690,4596,1053,3518,1037,540,706
+49add5c0fbb0105f139e458131886145fcb41fe4,2022-01-07T00:27:09+03:00,6685,4593,1053,3518,1037,536,706
+803ab24b1e16760e1ac8dd0c3bc83e3176359ef6,2022-01-05T10:44:17+03:00,6679,4585,1053,3518,1037,540,706
+d8d1bb83edd3f44fb4d2c473f474547a5867c186,2022-01-05T10:15:34+03:00,6679,4585,1053,3518,1037,536,706
+4b1e141a6ee2a3039382619b39877cda36926318,2022-01-04T22:09:43+03:00,6679,4585,1053,3518,1031,536,706
+35ea3ab7964ea1c58411bd8167082814d5ed6798,2022-01-04T15:44:48+03:00,6679,4585,1053,3518,1031,535,706
+554c8b85ebff5952a6442b3653e660eefe2f5e98,2022-01-04T12:05:35+03:00,6679,4585,1053,3518,1031,535,706
+82aca7bad4a42334c885405de6710de586dd67af,2022-01-04T12:05:13+03:00,6679,4585,1053,3518,1024,535,706
+941c1d44ee5527bd5a037993c6f7c0ee939d53ad,2022-01-04T12:03:45+03:00,6679,4585,1053,3448,1024,535,706
+4617e07cfdce1cbcaf4da2abc7ca01681cf65891,2022-01-02T13:33:01+03:00,6634,4552,1053,3448,1024,535,706
+03c986cfb8246c3509a9010508ce953a7760de1a,2022-01-01T17:59:04+03:00,6634,4553,1053,3448,1024,535,706
+135b3419e4174754e9fcb173a36d29d42a9c0bd0,2022-01-01T17:58:21+03:00,6632,4551,1053,3448,1024,535,706
+ba38d54cf6366c742eb1f68fd2861911a292173a,2022-01-01T17:53:01+03:00,6633,4551,1053,3448,1024,535,706
+1121bd865cb9ed019e9e4c257155e2fb483d98c5,2021-12-29T13:22:38+03:00,6635,4553,1053,3379,1024,535,706
+623df333e4e115ddd540478b46b603ddbfb85f2f,2021-12-28T23:10:44+03:00,6633,4551,1053,3379,1024,535,706
+79bb3e8a687d4281f84f6e2497b2cc678b7ccf18,2021-12-28T23:10:27+03:00,6633,4551,1053,3384,1024,535,706
+5a3ff8d2554b4c9a18a8b088d4717010e73fa79d,2021-12-22T22:10:24+03:00,6625,4541,1053,3384,1024,535,706
+62eba36159f8cd6eb15faece59cb4904ead2105b,2021-12-20T17:12:33+03:00,6625,4541,1053,3383,1024,535,706
+a3ac781355ec59c44e7cbdad8f7d92bb36433bbc,2021-12-19T22:10:27+03:00,6562,4488,1053,3383,1024,535,706
+40c5ef92a017856f89a00862ded93382894d5fc6,2021-12-18T15:45:28+03:00,6554,4482,1053,3383,1024,535,706
+b0e93e10eecc2e7cbb703dca423dddc4ed130d48,2021-12-14T23:01:28+03:00,6091,4168,1053,3383,1024,535,706
+f4476648fad0b6be8675d74fb06efe23a372ad86,2021-12-12T22:28:56+03:00,6054,4146,1053,3383,1024,535,706
+f8eb4f63ceb9485e4c31dc91981ccd34e7ece12a,2021-12-08T21:56:14+03:00,6053,4145,1053,3356,1024,535,706
+5ae655b39c6f33eed21567023841047f77a919b8,2021-12-08T21:55:55+03:00,6043,4138,1053,3356,1024,535,706
+dcdb7d0109fb27b0610888320eecc1d46bf73982,2021-12-07T22:14:37+03:00,6043,4138,1053,3328,1024,535,706
+3c02a9ee3da300d58fece97f39e5773f94677981,2021-12-07T22:13:57+03:00,6032,4134,1053,3328,1024,535,706
+2cf8314c1f222f3f18a0ab16b3d6e8cfef7d9371,2021-12-06T23:38:47+03:00,6043,4138,1053,3328,1024,535,706
+5be9577a2eade9ee13f2f4c0cc641a9572a51467,2021-12-06T14:56:49+03:00,6032,4134,1053,3328,1024,535,706
+bcbea86087c7103de1780ba081aa251313abb327,2021-12-04T00:08:06+03:00,6035,4134,1053,3328,1024,535,706
+c6987720e980de48461f1682e5d6323a66950bca,2021-12-04T00:07:43+03:00,6035,4134,1053,3322,1024,535,706
+df2f07f949e9ec3efccc9af3f4ba082362e6520f,2021-12-03T17:57:42+03:00,6037,4120,1053,3322,1024,535,706
+9b0bee3ddd4a285b468e2279388dc8b599e1c985,2021-12-03T17:55:00+03:00,6037,4120,1053,3322,1024,535,706
+ff990dc88990a6b1079f5e73e25ad31c2a9408a7,2021-12-02T22:31:31+03:00,6033,4120,1053,3322,1024,535,706
+3c22b441befa8d4ed552f0d8432895ef967a92cf,2021-12-02T22:29:39+03:00,6033,4120,1053,3311,1024,535,706
+a17dee9be51d7f9e62f50ccd414ae0a3bdd8d0eb,2021-12-01T12:59:19+03:00,5959,4070,1053,3311,1024,535,706
+267fb8a98ed4bd60a46b627fb8d7befe5a27f785,2021-12-01T12:24:09+03:00,5959,4070,1053,3311,1024,535,706
+1bd1d0fe95f81bd860e7065c5697ca222f7a3c33,2021-12-01T12:23:02+03:00,5959,4070,1053,3328,1024,535,706
+8594d6f53e42c70bbf903e168607841854818a38,2021-11-27T14:44:54+03:00,6162,4213,1053,3328,1024,535,706
+19ff54db9fe21fd5bdf404a8d2612176baa8a6f5,2021-11-26T22:49:34+03:00,6312,4332,1053,3328,1024,535,706
+78ecd7e1bba152ac73ea6206906384aea384c58a,2021-11-26T21:01:20+03:00,6311,4330,1053,3327,1024,535,706
+ba92551ade9d231b2c13663f815b82804bcc60d3,2021-11-26T17:46:40+03:00,6311,4330,1053,3327,1024,535,706
+c30062c70f8a0b7ef2454996a670ab9eb6193c86,2021-11-25T09:37:31+03:00,6311,4330,1053,3327,1024,535,706
+739e0f69d928eccdcd7e7eec3d039d8b7d1e0d7d,2021-11-25T09:36:56+03:00,6184,4227,1053,3327,1024,535,706
+f31ada645dfd9f90fb09447e6b527af201e3a475,2021-11-23T18:24:51+03:00,6184,4227,1053,3326,1024,535,706
+b85731122cb10b324db0f511218ad87d0fa62360,2021-11-23T15:12:49+03:00,6184,4227,1053,3325,1024,535,706
+96175214c64351daf54edac73c4e8f9edc8e85d6,2021-11-21T10:24:19+03:00,6184,4227,1053,3086,1024,535,706
+45a5439661f26889a2ca5133672079679d7edaa9,2021-11-20T17:55:20+03:00,6184,4227,1053,3082,1024,535,706
+867644c28e482adf2440716e44a0bbd779c311d6,2021-11-20T17:47:25+03:00,6184,4227,1053,3081,1024,535,706
+aa530b1c732ebc391619efa052b179f987deea1e,2021-11-18T07:05:50+03:00,6180,4223,1053,3081,1024,535,706
+d3f9973d63d64a20fa05021357e61730b3e63b1a,2021-11-18T07:05:30+03:00,6176,4219,1053,3081,1024,535,706
+a8a2ea0b00339577023419fe0864fb128d5a0c65,2021-11-15T14:13:09+03:00,6176,4219,1053,3034,1024,535,706
+92f88b798f050b98d69df224aca73f887b2438b7,2021-11-15T14:07:34+03:00,6177,4219,1053,3016,1024,535,706
+851bb9bc974c18e9c906a0ba4e50a6821d8ca1cf,2021-11-09T22:03:45+03:00,6171,4207,1053,2533,1024,535,706
+54e1ee0ea70f38dd6b9f07323b8c91bc8e42e974,2021-11-05T22:17:26+03:00,6017,3999,1053,2533,1024,535,706
+67dabb3f4bc5cca24d5bb75f5bab42b5ee68a9a0,2021-11-05T22:17:11+03:00,6017,3999,1053,2518,1024,535,706
+785a6609f31f4573bf6cdf34599d9a566278995c,2021-11-01T19:15:36+03:00,6001,3989,1053,2518,1024,535,706
+90f60f3cc303f1543c41deeb3e625386bcc9ca1a,2021-11-01T19:15:08+03:00,6001,3989,1053,2513,1024,535,706
+e7aeb61ba2a9ee3a121a64f9def1410a7679d56d,2021-10-29T18:07:41+03:00,5973,3963,1053,2513,1024,535,706
+9df931b94c291851b6e9afc22e640cd20def6f4a,2021-10-28T15:49:32+03:00,5944,3948,1053,2513,1024,535,706
+0dc4420eccf84062659cf819b087215901d8d7da,2021-10-28T15:48:50+03:00,5923,3931,1053,2513,1024,535,706
+770a2421a6e0c719662d1fac29abddf5145bb9f2,2021-10-25T10:41:43+03:00,5923,3931,1053,2509,1024,535,706
+515101ffcde32dc4ac5889e92e841d6f069fc43d,2021-10-24T21:37:29+03:00,5918,3927,1053,2509,1024,535,706
+182125df06fab50aacb51b462f7f299300552d06,2021-10-24T21:35:14+03:00,5918,3927,1053,2509,1024,535,706
+710e838db4074fd51d945f668082e9db207aa8c9,2021-10-24T21:34:49+03:00,5918,3927,1053,2507,1023,535,706
+c87c2029c0f6196528f9c8fdbbc2ff36af335f4d,2021-10-21T20:56:29+03:00,5841,3874,1053,2507,1023,535,706
+1ed3800f8d3d9c4085e411222b821b832c7ac252,2021-10-21T20:55:12+03:00,5841,3874,1053,2507,1023,535,706
+7ac1215aded90d5c50f80d9df2b81f99948a3481,2021-10-21T20:54:42+03:00,5841,3874,1053,2507,1022,535,706
+b781888b847636e9fc33899ab08d0287b1e1fd53,2021-10-13T10:50:00+03:00,5778,3817,1053,2507,1022,535,706
+f8f21351a19dcbc8f3b6c29c23494fe6ea3804b0,2021-10-13T10:49:39+03:00,5750,3817,1053,2507,1022,535,706
+53692feda00bf0ccf246222dc7d0a06e86f97a6e,2021-10-13T10:49:03+03:00,5750,3817,1053,2506,1022,535,706
+a19a36e2d388570fc9610f9e87656fa19e6dfe68,2021-10-06T16:30:53+03:00,5750,3817,1053,2506,1008,535,706
+3331e30435c2eefb0587839d0aa417558f3a8a26,2021-10-04T11:21:26+03:00,5685,3779,1053,2506,1008,535,706
+20af706fa28d1c33e594b99e531aa385bb9ce26d,2021-10-03T20:46:40+03:00,5685,3779,1053,2495,1008,535,706
+a0f25dd23f9ca2e592676fc6a72d7e446c3a1edb,2021-10-01T18:55:52+03:00,5573,3705,1053,2480,1008,535,706
+c14a738f2abfa813b56e90745e99f5e13a770459,2021-10-01T18:49:37+03:00,5573,3705,1053,2480,1008,535,706
+44ce42a6f035235535e033242bf8ca5a97de5604,2021-09-30T19:15:18+03:00,5573,3705,1053,2480,1008,535,704
+138d5522f9e7fa0faf7b8e2a0bc40c73c21a8206,2021-09-30T19:14:03+03:00,5573,3705,1053,2480,1008,533,704
+f1e4731ca5cae8f383f48254d94eae954bc48561,2021-09-30T19:13:31+03:00,5573,3705,1053,2480,1000,533,704
+3d56b8db18ea22388751e9e3cf5b6297e583d097,2021-09-22T11:55:05+03:00,5549,3697,1053,2480,1000,533,704
+9f226b54be2e926c8957937259c1ae292d0199aa,2021-09-22T11:53:46+03:00,5489,3666,1053,2480,1000,533,704
+2dfa789d641564cea5e7bf1160c29936d20f7cd2,2021-09-18T23:08:20+03:00,5489,3666,1053,2465,1000,533,704
+0fb670bf083539ce5920eb0fc4cdcde1dc9cdaf9,2021-09-18T11:45:13+03:00,5489,3666,1053,2465,1000,533,704
+4f0dbc0529179b7d1fd49ba0292e844e1a7729c8,2021-09-18T10:04:12+03:00,5455,3645,1053,2465,1000,533,704
+15295971dbad55d7964de9e40dbea3bbc9898480,2021-09-18T10:03:46+03:00,5452,3635,1053,2465,1000,533,704
+9d89de7053f0be08e16a6fca550db4608928e514,2021-09-17T21:17:00+03:00,5452,3635,1053,2463,1000,533,703
+cbed53fc072960a10865371b2dc37f5a4c87753a,2021-09-11T10:35:17+03:00,5452,3635,1053,2462,1000,533,701
+456b4a24a0ad8d3213b0606f248627c63cfe6bd5,2021-09-11T10:35:07+03:00,5440,3636,1053,2462,1000,533,701
+1b9a46394b4bf9add804d4842ed4835d37bf79a6,2021-09-11T10:34:49+03:00,5440,3636,1053,2462,1000,533,701
+ba29177f960f2cd1d12c7eba4320dc9121fa7d55,2021-09-08T15:02:34+05:00,5440,3636,1053,2459,1000,533,701
+f9cecf57bb21e89b7d74d3079a1dd556762b667e,2021-09-03T13:43:07+05:00,5440,3636,1053,2459,1000,533,701
+50979e53c722d90eefb3a7272e1d6743c07bf0b0,2021-09-03T13:42:42+05:00,5440,3636,1053,2459,1000,533,701
+d6d6f40f2c756db7b8c7bbdf4e4ed3f805c00dfd,2021-08-31T16:40:49+05:00,5209,3454,1053,2459,1000,533,701
+3576f37d27585fda81e52f65c4015a278adbb95f,2021-08-31T16:39:15+05:00,5209,3454,1053,2458,1000,533,701
+4d759a129ccb08dc4ac4f604557e34775e3159f3,2021-08-25T19:32:09+03:00,5249,3487,1053,2458,1000,533,701
+08801fc5ecc77de57738797cb1b490a0630f737e,2021-08-25T19:25:57+03:00,5249,3487,1053,2458,1000,533,701
+c5294aea224ff136f5441094b9dde2424cf41659,2021-08-22T21:50:41+03:00,5242,3482,1053,2458,1000,533,701
+9148fea7cfec4dd19e3e023685820156568adee7,2021-08-22T12:50:42+03:00,5242,3482,1053,2458,1000,533,701
+bf5ad786470627382da83fde64c034a683b9c8eb,2021-08-19T14:29:56+03:00,5226,3475,1053,2453,997,529,698
+d22dc6c645b22ea6c7c0d5d53e11053c396ab0c4,2021-08-18T22:27:53+03:00,5226,3475,1053,2453,997,529,698
+0ad807a8416146c9a5b124fc6c5219fbd8239373,2021-08-18T22:27:14+03:00,5226,3475,1053,2444,997,529,698
+0ae6b3127d0486f1271b2279b9422160b7d8309a,2021-08-18T22:26:19+03:00,5150,3415,1053,2444,997,529,698
+ab7832732b8ecf58cb5cee9ff0b0194cb151443d,2021-08-18T14:25:04+03:00,5150,3415,1053,2444,990,529,698
+1a47ddbcc0cb26981a66b87651376be07942c24f,2021-08-13T21:16:35+03:00,5150,3415,1053,2444,990,529,698
+1a74ee8b6c93b91077394db40440501ca3a4c101,2021-08-13T21:15:44+03:00,5123,3392,1053,2444,990,529,698
+d1c61211df1f9253bc505cee2584e163071d6572,2021-08-12T10:10:33+03:00,5123,3392,1053,2441,990,529,698
+f2e42b9212e97dc390799ccfb2f24843873e0c4d,2021-08-11T22:17:21+03:00,5091,3363,1053,2441,990,529,698
+36106c8f47d48930512eb94fd1c31c3301ac0cd3,2021-08-11T13:14:55+03:00,5067,3352,1053,2441,990,529,698
+750b12ef7655f5b422e97e9a2d9d391784078616,2021-08-09T13:53:23+03:00,5065,3336,1053,2441,990,529,698
+cc296f08e8a96ce00be46f4a8684db7828fb6f30,2021-08-09T13:28:39+03:00,5065,3336,1053,2441,990,529,698
+e13ab60bb4acc1dbe3d4852f8572d51646c06713,2021-08-08T21:12:13+03:00,5027,3322,1053,2441,990,529,698
+0a3127d4254bb2ac9a1316cdbafa3981dfb3417a,2021-08-08T21:01:40+03:00,5027,3322,1053,2441,990,529,698
+32b2794b76288b8236ad688dcfa2db284c6be577,2021-08-07T18:57:23+03:00,4973,3283,1053,2441,990,529,698
+6fa7b9334ce28a8efccafc649576c6a92d39a56f,2021-08-07T18:57:06+03:00,4973,3283,1053,2441,983,529,698
+9854573203e6aa4e1bbd3ef5b342799a2e79d5b3,2021-08-07T09:58:55+03:00,4947,3255,1053,2441,983,529,698
+57559ee47d5763ceb77627d2be26d9301dc1810c,2021-08-05T17:07:51+03:00,4947,3255,1053,2441,983,529,698
+79e89529509d1711904e26f7576886b101a01601,2021-08-05T17:03:15+03:00,4947,3255,1053,2441,983,529,698
+0e769a951f5d9adee9e0e16a50a06f2105f7b959,2021-08-05T17:02:42+03:00,4947,3255,1053,2439,983,529,698
+56e87062d74149287e081ddf4b2889182a5be551,2021-08-05T17:02:23+03:00,4894,3214,1053,2439,983,529,698
+52bb3c9d2917c9fec02541fb73ea1f1a78640cea,2021-08-04T18:46:14+03:00,4894,3214,1053,2439,968,529,698
+624b24a4d3fcc79bab9ffd5b58a7b1542a33b466,2021-08-04T16:39:40+03:00,4894,3214,1053,2432,968,529,698
+7049a698224c1ea6078cf8a078ca9f58bf465db5,2021-08-04T16:29:03+03:00,4894,3214,1053,2432,968,529,698
+09aace32d759bc1a3503316e38d008ef8fd91d68,2021-08-04T16:28:32+03:00,4894,3214,1053,2432,968,527,698
+a2d1135165ab9a13311e5449e63499ebe2d60356,2021-08-04T12:02:45+03:00,4895,3214,1053,2432,968,527,698
+bc243cd1d3e44eb382031a54080ba1c9f3199b26,2021-08-04T11:29:35+03:00,4895,3209,1053,2432,968,527,698
+4c544d850853a45ef35eb678ad23c9a7512e6ad2,2021-08-04T11:29:27+03:00,4895,3209,1053,2432,968,527,698
+9f4a0b1e09601bd30e942cac5530b26357ea4602,2021-08-04T11:27:50+03:00,4759,3139,1053,2432,968,527,698
+1be22593a48bdc277971b24233dfbf4bf3de0521,2021-07-31T21:25:59+03:00,4759,3139,1053,2418,968,273,698
+304993a14eecf3292ea357a15b2304f4e8f1815b,2021-07-31T16:46:08+03:00,4767,3124,1053,2418,970,273,698
+b9f06e77275ef032dbc1a2fae36394b1c4fe171e,2021-07-31T16:44:20+03:00,4767,3124,1053,2418,968,273,698
+9ac94c39670da168de60daedbd77da029ad4a7fb,2021-07-31T16:28:25+03:00,4767,3124,1053,2418,930,273,698
+48fd28b543cf411bfc069e20818eb60e113b3df0,2021-07-31T09:46:48+03:00,4767,3124,1053,2418,916,273,698
+f92bd16c509fdbad1c18636341b1d5e2e23c0b69,2021-07-29T16:48:45+03:00,4736,3118,1053,2418,916,273,698
+d14808fa7fece33dd31eb3e62b96edf5401a9825,2021-07-29T16:47:57+03:00,4670,3087,1053,2418,916,273,698
+7f50bdb82ce941dce8fb109841346c38fe0e4aa1,2021-07-27T18:27:50+03:00,4670,3087,1053,2418,915,273,698
+a26e5fa8ef4cb2b4cc90dccfdf82a960306051b3,2021-07-27T12:49:23+03:00,4670,3087,1053,2416,915,252,698
+6070c4bca93967753399a95d14ab7b6fb4867c14,2021-07-27T12:46:27+03:00,4647,3073,1053,2416,914,252,698
+349b0fd5dd5665950a9c09a2651e72ae68f4473d,2021-07-26T17:39:15+03:00,4695,3073,1053,2416,807,252,697
+776cab2b89971e284a5413d7c7d0ed824a55ed14,2021-07-26T17:38:55+03:00,4620,3015,1053,2416,807,252,697
+3a441661bb2de23bf1a39121d22f315c1e4668ac,2021-07-26T17:37:05+03:00,4620,3015,1053,2412,807,252,697
+bd3743e3a370309d36d957188c7272dbe2f4279b,2021-07-22T22:06:24+03:00,4620,3015,1053,2412,807,252,697
+d209886abc2ddc8282e1a53f20afe3ad291fd582,2021-07-22T17:49:10+03:00,4498,2927,1053,2412,807,252,697
+ba9d50d4914cab4cc7270bbb90f073e2865469a1,2021-07-22T14:29:10+03:00,4472,2927,1053,2412,807,252,697
+740753d69683c4e04748f000e996e59ac9974833,2021-07-22T12:16:10+03:00,4472,2927,1053,2412,807,252,697
+b880e8a2e10c148b6aa1dd937315c21409587c63,2021-07-21T20:59:26+03:00,4426,2890,1053,2412,807,252,697
+57b757a78f3fb151ba012da56791686d90b74a07,2021-07-21T15:14:59+03:00,4423,2890,1053,2412,807,252,697
+4785f72fec3efa497cea17ac79b3c366185a90e3,2021-07-20T21:43:59+03:00,4423,2890,1053,2387,807,252,694
+7973aec28eedf4e40a4e1ad82d939dfc89acd24d,2021-07-20T21:43:08+03:00,4321,2801,1053,2387,807,252,694
+bd7d246fef7a25aaa2b21ed40499891b822c1b50,2021-07-20T21:41:58+03:00,4319,2799,1053,2387,799,252,694
+b89a27b39010799ad06db6004b7fccdd5af39b2f,2021-07-17T20:32:04+03:00,4319,2799,1053,2387,799,252,694
+f319f1a31f8dbdee045b06385bf7eace899b4fb1,2021-07-17T10:53:14+03:00,4257,2783,1053,2387,799,252,694
+99505117b4568d8c57a2b9fdd3c6c627c9e2b041,2021-07-17T10:50:50+03:00,4257,2783,1053,2384,799,252,689
+2615f584d2ea741b0b6da6dd45d4637c3f27327f,2021-07-14T21:57:17+03:00,4078,2698,1053,2384,799,252,689
+82d66af51b9ae6d1ba843f86df41bf6e9f707ca5,2021-07-14T21:57:02+03:00,4078,2698,1053,2384,799,236,689
+42065f16eec254a212622e51248dc258c80cb84b,2021-07-14T18:43:29+03:00,4060,2665,1053,2384,799,236,689
+68c28de2c6a72d36ffd7deb71a56d24c621dbaba,2021-07-14T18:43:00+03:00,4035,2665,1053,2384,799,236,689
+59d56cfb8aee27d5822f2127462bcd0d2729acd5,2021-07-13T16:04:41+03:00,4035,2665,1053,2384,749,236,689
+ab011b826f9cc1f8a4c33f974f3879171f1a1c98,2021-07-12T19:38:21+03:00,4027,2665,1053,2384,749,236,689
+342b9f5d485af8164856c5ae1a32d5de03c2a7c1,2021-07-12T19:33:35+03:00,4028,2666,1053,2384,749,236,689
+c138635f6aa5c79b1c058529b7186d64ea37864e,2021-07-12T12:14:23+03:00,4028,2666,1053,2384,716,236,649
+00141e7dca1a7c7fc381fa9399b17cc23f699b04,2021-07-12T10:10:38+03:00,4028,2666,1053,2387,716,236,632
+21d8917821634fe8b79200cb79e6c74197036fab,2021-07-10T19:49:10+03:00,4028,2666,1053,2387,716,249,632
+f5e7d44aedeb3c9e0969ad200072ae0fa271ad8d,2021-07-10T19:44:11+03:00,4028,2666,1053,2387,711,249,570
+e298ab4c667ad0e8ffa60bb92b2cebb7b4cd408c,2021-07-10T19:43:37+03:00,4028,2666,1053,2387,711,239,570
+2c3505505f8e5acb05370a564a9aec37016f47f8,2021-07-10T19:42:57+03:00,4025,2663,1053,2387,711,239,570
+b046e1dd06d181a252e76c0ca86ee1a04ffc85dc,2021-07-02T17:09:52+03:00,4025,2663,1053,2374,711,239,570
+53ce1053565d920e0cd7d511ef3e3f964a8b1d4f,2021-07-01T12:45:59+03:00,3986,2663,1053,2374,711,239,570
+5e4b4a6087c4ac9da53639f9cbddac8d8f522ded,2021-06-30T20:54:13+03:00,3986,2663,1053,2374,711,239,570
+9b2179110d1c133cc68c1b72883b0d19416c931f,2021-06-29T13:59:38+03:00,3905,2618,1053,2374,711,239,570
+27301786daa82dd29285abff0c2fa5a0ade6ceee,2021-06-26T18:34:06+03:00,3905,2618,1053,2365,711,239,565
+c2b1b0a66a3e5c3e627db5fb1513187dd38c6498,2021-06-25T20:30:45+03:00,3905,2618,1053,2365,711,239,580
+88fab62141ce1af37bff70f81f2784beb5f72ee2,2021-06-25T19:57:56+03:00,3901,2602,1053,2365,711,239,580
+d43a07adcf87eb032ab4ab1f158ca4b9895f7a2f,2021-06-23T20:32:52+03:00,3901,2602,1053,2355,711,239,580
+c2231d32b9f7cf9361a404926077f7d4cf70e05a,2021-06-23T20:01:12+03:00,3900,2602,1053,2331,711,215,574
+557a6765d879dd6392fcd3d9b3a56f47fb11c129,2021-06-23T19:59:48+03:00,3900,2602,1053,2331,711,215,556
+12e25acdeb334916fdd269e9743d02019b365ba4,2021-06-22T08:54:46+03:00,3900,2602,1053,2326,711,215,556
+f39b410440fe71da7b9029216c5785f234eda5fd,2021-06-22T08:54:38+03:00,3900,2602,1053,2323,696,215,555
+02664b08f71e63f0c5f41e334586e4845fccadff,2021-06-21T09:23:36+03:00,3901,2602,1053,2323,686,215,555
+b887ae0c7dd17923eabd91b747120b32c46f98d5,2021-06-20T20:16:34+03:00,3901,2602,1053,2277,685,215,518
+2747239adda94a6580646b39a50189e1fe7fbfe5,2021-06-20T19:05:05+03:00,3901,2602,1053,2282,685,215,507
+35d0a94387dc7f27ce4e59c400a6bcd4be20f2c8,2021-06-20T08:35:45+03:00,3901,2602,1053,2282,685,215,490
+fc674b814237648f3c004b2398ae62d99d00a88e,2021-06-20T07:40:24+03:00,3901,2602,1053,2282,685,215,490
+2380ebf4d101ce6269f48559db9983ff0cc3e92f,2021-06-20T07:40:14+03:00,3901,2602,1053,2282,685,215,490
+5e4504b764c313f72a393aa5885f419c24b36ed9,2021-06-20T07:37:55+03:00,3890,2585,1053,2282,685,215,490
+2d0893ed6d1fcda879640f34a17e389d7eaa5977,2021-06-20T07:37:26+03:00,3890,2585,1053,2278,685,215,489
+c38db5027e0f5efebb406683ab3d1334e429164c,2021-06-19T20:11:45+03:00,3890,2585,1053,2278,684,215,489
+12a25ded4ba3de9a96ff1b0953b5ce243cbe81b5,2021-06-19T17:18:51+03:00,3890,2585,1053,2278,684,215,489
+eec899a0b089d13ad70514489d6e2209f6ebb3a9,2021-06-18T21:36:50+03:00,3890,2585,1053,2277,684,215,418
+cd54e345e5f0cad99c9d4188b973faddd6bb5a09,2021-06-18T18:14:30+03:00,3890,2585,1053,2266,684,215,445
+a37ab00e9bbb2cf781f4eeb94bbc4ae2f3b42fdb,2021-06-18T18:13:55+03:00,3889,2584,1053,2266,684,215,445
+7d61969160b9a669335656a149cbda17f857d4dc,2021-06-18T17:06:12+03:00,3889,2584,1053,2249,677,215,443
+198156ab889643ca5397e7824201e9b40af9ac26,2021-06-18T17:05:28+03:00,3889,2584,1053,2249,676,215,443
+470794016384374b86129197385edf47965911ad,2021-06-18T17:03:51+03:00,3889,2584,1053,2191,676,215,443
+973062cca2f5f24e22fa7046807b335954b68823,2021-06-18T17:02:20+03:00,3900,2589,1053,2191,676,215,443
+c53d3a39322720d0f147fa402d80f91112e1e0cd,2021-06-18T09:50:42+03:00,3790,2547,1053,1932,554,0,0
+bee1990318a5a36cbc7394183c8c39fdf1c0b777,2021-06-17T11:46:49+03:00,3900,2589,1053,2191,676,0,443
+738595780fa6dd70e39e927f0a8fcbc3e540dba1,2021-06-17T11:45:59+03:00,3890,2562,1053,2191,676,0,443
+a3f937cd44640831db2183b81473037b83fedfa2,2021-06-11T19:13:03+03:00,3890,2562,1053,2149,676,0,443
+f63a3d7c98da8412dca75a5ed793d58bac87989f,2021-06-11T11:39:31+03:00,3890,2562,1053,2082,676,0,488
+e055f895d9b8d6b775755c34cfbd94cf9cea9eed,2021-06-11T11:39:31+03:00,3886,2562,1053,2082,676,0,488
+87124deb8c3eebf6f9721de05352c8205e6cf8ca,2021-06-11T11:39:31+03:00,3886,2562,1053,2081,676,0,488
+912ca5d181056723ada8c48629741bca0d0cb778,2021-06-11T11:39:31+03:00,3886,2562,1053,2081,676,0,488
+695629551ff9641e92bc2fe52ca4e5cb5d865dcb,2021-06-11T11:39:31+03:00,3886,2562,1053,2081,663,0,488
+d91c66288433fa864f7fb6021f33832328acd134,2021-06-11T11:39:31+03:00,3873,2562,1053,2081,663,0,488
+0f98e475c1785c2dc6adc42a79125859eae5eaae,2021-06-11T11:39:31+03:00,3873,2562,1053,2081,663,0,458
+07c4551000f45c7c9910db9662ba6b4ea3f5a992,2021-06-11T11:39:31+03:00,3873,2562,1053,2078,663,0,411
+9ea0f5834b1451fb7d15dc4b7a6032e180aa5fe8,2021-06-11T11:39:31+03:00,3873,2562,1053,1998,663,0,411
+8b6f2f37517758455c356866e3263478cbb1ae74,2021-06-11T11:39:31+03:00,3873,2562,1053,1998,663,0,360
+8c7105de9d64696b1fe2ed2d387ba0551073a84e,2021-06-11T11:39:30+03:00,3873,2562,1053,1998,655,0,360
+c40d199aad7fa076a155ed0d82f73090b722baf6,2021-06-11T11:39:30+03:00,3868,2561,1053,1989,650,0,324
+5d006c082ce4f9a43f391d354723512302a071f1,2021-06-11T11:39:30+03:00,3868,2561,1053,1989,650,0,278
+762ae0e5bc0c9eba00cb8e3738b9334481167cd0,2021-06-11T11:39:30+03:00,3868,2561,1053,1932,650,0,278
+d1dd4b8929b3be7e8c39f392416af948ab2a8ceb,2021-06-11T11:39:30+03:00,3868,2561,1053,1932,650,0,280
+349e9c66aa7066a85c23914657473b3ce577df3b,2021-06-11T11:39:30+03:00,3868,2561,1053,1932,650,0,148
+87e4cd15797198ce514e305f93e558d867a5caf8,2021-06-11T11:39:30+03:00,3868,2561,1053,1932,554,0,148
+fd2e6ea2adf1bb98528aac859f43093b79aaa07b,2021-06-11T11:39:28+03:00,3868,2561,1053,1932,554,0,144
+02540932bf150d4693731513ee08f13bcb008c1a,2021-06-11T11:33:48+03:00,3779,2530,1053,1932,554,0,144
+8aef8f37a65d824a5ce7612faaadf56e2dab21d8,2021-06-11T11:33:48+03:00,3779,2530,1053,1932,554,0,0
+338d1fcb59b4d712b4d4b10e54312e900a4bd1d5,2021-06-11T11:33:48+03:00,3779,2530,1053,1932,554,0,0
+11d91f9ad67d8674ac66e302506d57e9ec699964,2021-06-10T12:25:33+03:00,3779,2530,1053,1932,554,0,0
+24a43d5e0f3c6a27f8cdd290a719044a5dc76281,2021-05-29T22:02:49+03:00,3716,2471,1053,1932,554,0,0
+a09570538230bec8d2051282e09937d2d3a0f514,2021-05-28T19:12:53+03:00,3693,2471,1053,1932,554,0,0
+4ac1cc194ce62efeeff04c33d0a2b3185bb4c825,2021-05-26T21:13:43+03:00,3659,2444,1053,1932,554,0,0
+3ac14ed61736343e953d79ac621500dde4498fb3,2021-05-24T16:11:09+03:00,3623,2417,1053,1932,554,0,0
+6d896e9002dfd6509b14fcce53ae4432e6888e53,2021-05-24T16:10:17+03:00,3617,2417,1053,1932,554,0,0
+99d53def658470d765476a4398d07bf5283637c0,2021-05-21T09:31:26+03:00,3541,2364,1053,1932,554,0,0
+57fbd4ea49b483363d095f190e1058394c048411,2021-05-19T20:42:30+03:00,3534,2363,1053,1932,554,0,0
+9685c77a707d1f924a9af222ef1fe9b471fb4dae,2021-05-19T17:25:24+03:00,3534,2363,1053,1931,554,0,0
+4f50f53ae11c1fc64f7e23db1f1023d08c893830,2021-05-18T12:59:12+03:00,3503,2350,1053,1931,554,0,0
+741c6d77fa5fba19484cdaa96d98fa30424dcc42,2021-05-18T11:22:25+03:00,3497,2347,1053,1931,554,0,0
+ae58af4e7d5cf79e464c5a6def1f53b43e5e1a99,2021-05-16T10:11:27+03:00,3496,2346,1053,1931,554,0,0
+1b91184f12a3e71d008acdb5e7eb76b1e86f5a65,2021-05-15T12:56:49+03:00,3391,2251,1053,1931,554,0,0
+3a01bee95c8ae0cc1288e251fcdd538c624eea95,2021-05-14T19:52:08+03:00,3350,2228,1053,1931,554,0,0
+20590a08317ae7f712c59e5ce33d82ef2f183676,2021-05-09T19:21:32+03:00,3342,2221,1053,1931,554,0,0
+b576436028e544d6e751bd88bfd6168346411445,2021-05-08T17:23:37+03:00,3281,2175,1053,1931,554,0,0
+9b8459b5879e6954cb62edd6710bd48deb3ff51f,2021-05-08T12:52:35+03:00,3273,2174,1053,1931,554,0,0
+21d6ccd089f43ce0e6ba441b8497fff920f967ac,2021-05-06T22:46:13+03:00,3270,2171,1053,1931,554,0,0
+e0e0da8364bcacfda6846abc513c8d70e2af3316,2021-05-04T22:23:06+03:00,3220,2143,1053,1931,554,0,0
+edd7cfd8cef803f0124d083aac4de3d658443b2d,2021-05-04T20:11:15+03:00,3187,2117,1053,1931,554,0,0
+6b06c6f73af0e4b61d736ae940d4db19ef3cacd9,2021-05-04T12:11:09+03:00,3096,2061,1053,1931,554,0,0
+b5f98822bb56047cd39565f154a8cadfcb15f6c6,2021-05-02T18:16:22+03:00,3046,2020,1053,1931,554,0,0
+d4d65c6fcf696bb7dcf3a06d1b5a3ea87bb437ea,2021-05-02T18:07:13+03:00,3019,2006,1053,1931,554,0,0
+24db4458c03014010f050c832b8633084b249014,2021-05-01T19:03:07+03:00,3019,2006,1053,1931,555,0,0
+8654bd179bafccd3460d3373249d5aee6bcf2409,2021-05-01T18:56:52+03:00,3019,2006,1053,1931,555,0,0
+fe7ad2de8f642b89b7086114f661490dc50cf4d1,2021-05-01T18:52:59+03:00,2996,1990,1053,1930,555,0,0
+6b70df8719785bfb0100e27d14f5df7146053c2c,2021-04-29T20:43:34+03:00,2996,1990,1053,1857,544,0,0
+7f38639fc477a6640fce04774018114a9c328c9c,2021-04-26T16:33:34+03:00,2935,1959,1053,1857,544,0,0
+c0c9bdb65eb3136f7029df8bcc55035dc7b415f1,2021-04-26T16:16:10+03:00,2934,1945,1053,1857,544,0,0
+022afcfb98219cf13d9c2074f5b871fb571f90d5,2021-04-25T21:39:47+03:00,2888,1923,1053,1857,544,0,0
+31cab6a7872705ec7a11c7ee38740e6dcaf884fa,2021-04-22T22:01:59+03:00,2862,1909,1053,1857,544,0,0
+382bc7b3f3097e025a1262d2f58d889f624d679d,2021-04-22T18:47:30+03:00,2809,1820,1053,1857,544,0,0
+8eeee8e301bf266745a2efad22b01075644ccd44,2021-04-22T16:17:49+03:00,2809,1820,1053,1857,544,0,0
+aa9c57e331ba9fbb929f741ff4798e20a91616b4,2021-04-22T10:18:36+03:00,2793,1810,1053,1857,544,0,0
+b2ba760b8207b93914e748bb28e7acbe35ed839d,2021-04-22T10:18:17+03:00,2793,1810,1053,1857,544,0,0
+e78acbbcf965f718fa58f96ea66187a8d35e1e48,2021-04-21T22:43:08+03:00,2781,1801,1053,1857,544,0,0
+e49d12622ee3e14751215df9aed907e3fa069e14,2021-04-21T18:01:56+03:00,2781,1801,1053,1857,544,0,0
+35fa298833248615bde7e95fcf5647f0452dd23f,2021-04-21T17:57:41+03:00,2780,1801,1053,1857,544,0,0
+4f9cddd68771a81f3eb66cf5ad02cb17dab3980f,2021-04-21T17:55:42+03:00,2780,1801,1053,1857,544,0,0
+c7630813c36eac9cf8067af35fe743b8b9dc4064,2021-04-19T15:05:27+03:00,2768,1797,1053,1857,544,0,0
+81efbdf27277de7a7e9dde154f96081524a36ce1,2021-04-18T19:20:58+03:00,2724,1762,1053,1857,544,0,0
+9592cad3afd6e210157d77eba18560f8f0053cc2,2021-04-17T14:43:06+03:00,2697,1720,1053,1857,544,0,0
+f756d6c4fe42cd4bfc7a8596cba956f57d0ba0b1,2021-04-17T12:17:42+03:00,2696,1720,1053,1857,544,0,0
+c50e6ed2673fcebdad5a50e198c26de75636a57f,2021-04-17T10:56:53+03:00,2624,1603,1053,1857,544,0,0
+244da2546eb15f2dd8a68126d1e48489087985be,2021-04-17T10:56:20+03:00,2624,1603,1053,1857,544,0,0
+2b4935ba773f35238fdcc0a2056b316163f5cafc,2021-04-16T21:50:01+03:00,2624,1603,1053,1857,0,0,0
+6ebf968c017f93e3a8b4c33acd2cfd291f22963e,2021-04-16T16:48:18+03:00,2624,1603,1053,1857,0,0,0
+2fe8ce6f0dc0a3e09cd9ec426689b6157e62bee3,2021-04-15T11:36:07+03:00,2624,1603,1053,1857,0,0,0
+52618736ca77e5ecb39719807384f0c49c92822b,2021-04-13T20:12:47+03:00,2596,1572,1053,1857,0,0,0
+be475e702cf41aaab7540ac30569ac4c2311b21c,2021-04-13T20:00:37+03:00,2570,1556,1053,1857,0,0,0
+751106d8c86fb4056d8d79b82f7d92fcdbfbbacb,2021-04-10T22:00:55+03:00,2540,1517,1053,1857,0,0,0
+32014e97d2bcca6d0060afad8a1a2216e43d65c2,2021-04-10T20:02:07+03:00,2539,1514,1053,1857,0,0,0
+03faea8c65d0f55c8910dbbb91f0b0d69745075f,2021-04-09T21:34:32+03:00,2503,1484,1053,1857,0,0,0
+43c3446e9fb34636ea80aa149ac5c86e4f1f74c0,2021-04-06T20:17:51+03:00,2491,1483,1053,1857,0,0,0
+d55b62899800e9b6d317542eff153e8c1b63ac7d,2021-04-06T20:17:34+03:00,2486,1480,1053,1857,0,0,0
+af0211208a41462a160a466d26178ec7280dd696,2021-04-06T13:46:00+03:00,2487,1479,1053,1857,0,0,0
+87ad371915306dcd9ca563814193a54635a0b100,2021-04-05T20:56:04+03:00,2482,1476,1053,1857,0,0,0
+c41a2567b68db24153e2f78d2bef482ca77c3490,2021-04-05T18:59:22+03:00,2461,1460,1053,1857,0,0,0
+c777b0b4b2f5394d05c2d12fd6e91064284f196a,2021-04-04T21:41:53+03:00,2442,1446,1053,1857,0,0,0
+09c09ac94285b62722e26c4ccf25906e41a3e697,2021-04-04T11:38:40+03:00,2442,1446,1053,1857,0,0,0
+07a34b94fbb037e37d9e5479209a2807514e8d9c,2021-04-04T11:35:15+03:00,2442,1446,1053,1816,0,0,0
+9197605658b64f71b3d53e1ab8aabd1fc1975769,2021-04-03T22:13:29+03:00,2435,1442,1053,1816,0,0,0
+718014f5db3d3358e171b24e9218c2f9452e3b78,2021-04-03T22:08:17+03:00,2426,1433,1053,1816,0,0,0
+da773a1d4bd1e75bc0d8d20a8e1d999b9fa70e2d,2021-04-03T16:00:16+03:00,2381,1407,1053,1816,0,0,0
+5e5c243ba8ef363dcf6a443832341ea44d35666d,2021-04-03T15:55:16+03:00,2381,1407,1053,1816,0,0,0
+6bbf600710719bf844bd884e055b8e79bfbb6167,2021-04-03T15:53:08+03:00,2230,1407,1053,1816,0,0,0
+1fff2396552149436ff13fa5893cf16bb3bbb228,2021-04-03T15:40:12+03:00,2230,1407,1053,1816,0,0,0
+97d5d2bb699691f5220281cc075b6e78d6c0e765,2021-04-03T15:39:01+03:00,2230,1407,1053,1816,0,0,0
+dcffb1658060c093c38a6adada1de5c55630d09f,2021-04-03T15:38:41+03:00,2230,1407,1053,1816,0,0,0
+ab84a36a1348d6226df8c730f65b88ac3bbdd11b,2021-03-31T21:49:31+03:00,2098,1533,1053,1816,0,0,0
+80d6256f5ec9c43e53e4aca4cabae8de4a57506b,2021-03-31T21:48:20+03:00,2098,1533,1053,1812,0,0,0
+286994dd42913a27f78c9c7f2239915ef7fd9bc0,2021-03-31T21:47:03+03:00,2098,1533,1053,1812,0,0,0
+e46c512575f3dbdd375853a24bcefec6677fde61,2021-03-30T22:07:14+03:00,2098,1533,1053,1812,0,0,0
+9c30ffa3a198dbccd4ed4fafec8d844991d2e449,2021-03-30T21:45:27+03:00,2098,1533,1053,1716,0,0,0
+e7fce64a54f376f727c9c6d046665ac8f41d431e,2021-03-28T22:32:21+03:00,2098,1533,1053,1716,0,0,0
+78cfd6586b9352b6347f772922b075050f64e815,2021-03-28T13:13:02+03:00,2098,1533,1053,1329,0,0,0
+9d39f4ee90e5f8f4811a3a44c557a3aa10cfd8f6,2021-03-28T12:59:55+03:00,2098,1533,1053,1329,0,0,0
+e0fcb960ccaeef1fda6cb87f2f5476d87b8a4473,2021-03-28T12:56:53+03:00,2098,1533,1053,1329,0,0,0
+0eff8c56ac5ded25018f608b1018b95eb6b3912e,2021-03-28T12:21:15+03:00,2098,1533,1053,1113,0,0,0
+22d86a6c24e8593276f3d12d45517c7c4d3ab4bf,2021-03-28T11:14:59+03:00,2088,1530,1053,1063,0,0,0
+0e3b17edb685c91d6bbf7088e0f8cbaf762b831c,2021-03-27T21:54:12+03:00,2088,1530,1053,1063,0,0,0
+93a0573fc41f58c6c7f94ac5beb9d6c5222906a6,2021-03-27T17:35:21+03:00,2071,1517,1053,1063,0,0,0
+845e1a273963abbb19275c34fc92d0d2d708d8f0,2021-03-27T17:29:07+03:00,2069,1517,1053,1063,0,0,0
+d869192bf14ab2ee9d68c633bb4644588d357a27,2021-03-27T16:27:39+03:00,2069,1517,1053,536,0,0,0
+ef440cfb499ca873054350a53e821ad658cb6d35,2021-03-27T14:28:50+03:00,2069,1517,1053,538,0,0,0
+2c3dd0b0af7bbb6dd726c82fc44b149d3a350583,2021-03-27T12:47:05+03:00,2069,1517,1053,0,0,0,0
+7a992d21eb87e74c6f135e562e71e171d2590314,2021-03-27T12:46:42+03:00,2069,1517,1053,0,0,0,0
+c520a1387d0cabcb6f908e93d1316fde7b462af5,2021-03-27T12:46:14+03:00,2069,1517,1053,0,0,0,0
+cdbeaa1fffa1ce2e6d30ae0ceec97b39a87ca604,2021-03-24T10:21:49+03:00,2067,1505,1053,0,0,0,0
+67f69904c610757b5a7523ce027c36f5c79f7240,2021-03-24T10:18:46+03:00,2067,1505,1053,0,0,0,0
+ce14de2074b023c935cd1077a82797a9040c6d1b,2021-03-24T10:16:54+03:00,2067,1505,1053,0,0,0,0
+b6fb14b7054c3fa91b9c8cc482b50d4fd8463a70,2021-03-24T10:14:26+03:00,2067,1505,1053,0,0,0,0
+54e153d02dabc29ddc9ec553fa677725e674d047,2021-03-21T21:46:31+03:00,2067,1505,1053,0,0,0,0
+4d116f29495302e8970b0fa7d3494e598aaa995a,2021-03-21T21:27:56+03:00,2067,1505,1053,0,0,0,0
+47f8a13f8da87f7ff304f0095f65eba080ec14aa,2021-03-21T21:27:37+03:00,2067,1515,1053,0,0,0,0
+7f7afe5b68a97743152fddce32b879744541eab4,2021-03-16T13:01:56+03:00,2067,1505,1053,0,0,0,0
+e258ec45ffe7bd9813a846258eac2ecc379f0486,2021-03-16T13:01:49+03:00,2060,1522,1053,0,0,0,0
+67b6dc3d2c99caca93bb345c051a8bcd405eb451,2021-03-16T11:49:15+03:00,2067,1515,1053,0,0,0,0
+b3224f4eb6461f709a42a78b447f08d1eef491df,2021-03-16T07:30:26+03:00,2060,1532,1053,0,0,0,0
+24981a6c8e57063c83ee29247670c3d930a14958,2021-03-16T07:28:55+03:00,2060,1532,1053,0,0,0,0
+bce9a520f37f87e1f03f664ebe5391378f0c112e,2021-03-13T13:16:37+03:00,2060,1532,1053,0,0,0,0
+9eda3a739ceef8ff4f676be03738c7c10664a3d0,2021-03-09T08:55:44+03:00,2060,1532,1053,0,0,0,0
+9d1ef91caa5786d1d5c95ab0782dd83ee0f9dc95,2021-03-08T13:28:05+03:00,2060,1532,1053,0,0,0,0
+2c26a2116191b2366bb0e95791b3280443c7e2cf,2021-03-08T13:18:35+03:00,2060,1532,1053,0,0,0,0
+7e75f0d9340c57d5e3541dbe882ca7a129f77649,2021-03-07T16:03:28+03:00,2060,1532,1053,0,0,0,0
+3f9d86fe95083ba35e555971cdd09f07de8e2c6d,2021-03-07T16:02:27+03:00,2060,1532,1053,0,0,0,0
+fad031bcb92fdf419c577e5555504eef769e5901,2021-03-04T12:49:53+03:00,1998,1484,1053,0,0,0,0
+f39411a3cd079b0daae00383e2473aba39eb6953,2021-03-04T12:34:52+03:00,1995,1481,1053,0,0,0,0
+42276738dff3e3ea8dc69b831e70b9fc0bafde86,2021-03-04T11:38:01+03:00,1995,1481,1053,0,0,0,0
+fd5f3eb3ea8f6af19ad735e3f88baff34180060e,2021-03-04T10:28:32+03:00,1997,1483,1053,0,0,0,0
+708e3021479e4f8408a4ed68daa73269dff8cb09,2021-03-01T11:29:05+05:00,1983,1469,1053,0,0,0,0
+6d0217c49c3c83546cf11ee95c5d53484594d464,2021-02-28T15:01:49+03:00,1983,1469,1053,0,0,0,0
+0429ab2126e080435cafc77ccc1e9e86adef2510,2021-02-28T15:01:33+03:00,1983,1469,1053,0,0,0,0
+077391d793ef085cde93f83b70b5c760b1b6c6bf,2021-02-22T19:39:16+03:00,1959,1454,1053,0,0,0,0
+a5b8c27879cc18b2089a74f38c2207450ad12cd2,2021-02-22T19:37:10+03:00,1959,1454,1053,0,0,0,0
+e4edc119e69ae357403daf360430fe16800f1394,2021-02-15T12:24:20+03:00,1917,1425,1053,0,0,0,0
+483af5e3c4d56fb90a247527c38b528c78ceea20,2021-02-14T20:53:31+03:00,1876,1389,1053,0,0,0,0
+167f1d58ced56b7b3586b0650d9f85e74a58bacb,2021-02-14T20:53:00+03:00,1876,1389,1053,0,0,0,0
+22b6fc87325dad25baec84c9d89df3544dd87336,2021-02-12T21:39:01+03:00,1831,1348,1053,0,0,0,0
+ddcabd0b57affdcdc9b63f49cae239ced321fb43,2021-02-12T18:28:48+03:00,1831,1348,1053,0,0,0,0
+89c54713da960a18fdfdf7ce3a9ec6b13e32bbbc,2021-02-11T21:03:44+03:00,1831,1348,1053,0,0,0,0
+e7b0bbc58fa9c4d70027ce8a089a95db92e183f6,2021-02-11T21:02:52+03:00,1810,1329,1053,0,0,0,0
+b7a40a3b7c25673a8d7eb0dfd0a23f92e2534174,2021-02-10T11:05:44+03:00,1810,1329,1053,0,0,0,0
+2e3c0412b34ff51266da33cbb89c7b9fdf94b88a,2021-02-10T11:05:25+03:00,1810,1329,1053,0,0,0,0
+16326a010d26c1217fbec8ff42cdd299d0d39ae0,2021-02-06T21:28:00+03:00,1735,1341,1053,0,0,0,0
+5483eeb34eac68015a9a66def102bcf8db54c92c,2021-02-06T23:15:52+05:00,1735,1341,1053,0,0,0,0
+fbed354c68e3c4b466fb29f8726fc4a8c05fff6c,2021-02-04T20:48:12+05:00,1735,1341,1053,0,0,0,0
+133530c1c0763dccb9ba91b5f8d281ccff571190,2021-02-04T20:47:57+05:00,1730,1333,1053,0,0,0,0
+f3b697a935e1564ced0995be0f298d52c39ac719,2021-02-04T20:47:31+05:00,1730,1333,1053,0,0,0,0
+a533a06d061ddbe74f77fc7c66e5af2c2022c5e0,2021-02-01T11:16:37+05:00,1730,1333,1053,0,0,0,0
+1496e7ec0392cfea4eb424e1da2308878bcd300d,2021-02-01T11:15:44+05:00,1730,1333,1053,0,0,0,0
+55343c49a9ca3c49c9c6fa715cb215b66e66067f,2021-01-30T14:36:51+03:00,1730,1333,1053,0,0,0,0
+09fe035d6f5500147a1897d039d995e5ab627cc4,2021-01-29T21:59:37+03:00,1730,1331,1053,0,0,0,0
+27ce988287c518f798b926dda4efab0cf6e89c7f,2021-01-28T10:31:42+03:00,1728,1331,1053,0,0,0,0
+afcf8ef14c5a8187eae15142100704803f2980ec,2021-01-27T11:07:17+03:00,1728,1328,1053,0,0,0,0
+33b7ae403693d2df7628b8899b79da27e76498f6,2021-01-26T21:57:38+03:00,1726,1332,1053,0,0,0,0
+229dce2461ef05617cbc2b716a331a0bcbd15b56,2021-01-26T21:56:20+03:00,1688,1331,1053,0,0,0,0
+29f620f809a129b6e0ebe96247fe9d8c8afaee6c,2021-01-25T18:32:13+03:00,1688,1331,1053,0,0,0,0
+d5953c7dd0b4fbc89f930059322c4fb2aad64a8e,2021-01-25T18:06:11+03:00,1688,1331,1053,0,0,0,0
+54983088c0d82da49eaeb918ea1dfc2a1c506872,2021-01-25T18:05:33+03:00,1688,1331,1053,0,0,0,0
+dfa19d31418cece79ccb438297bc99c9402394fa,2021-01-25T12:39:18+03:00,1688,1331,1053,0,0,0,0
+c872a03c989bf9ce5453aa6903a58add9115eb4a,2021-01-25T12:39:00+03:00,1688,1331,1053,0,0,0,0
+63ebaff53cea4044089a39a0ec797eea727717e6,2021-01-22T21:00:24+03:00,1669,1329,1053,0,0,0,0
+29f9d3ee07376106a74670207fc0e7e01074923c,2021-01-22T20:59:43+03:00,1641,1302,1053,0,0,0,0
+7c4cc0a498f77c69b5f1b9bc5fa7d52602900bbc,2021-01-20T17:39:48+03:00,1641,1302,1053,0,0,0,0
+dfc9956cb8cd814221e3594c4a254be236c52f2a,2021-01-20T17:39:09+03:00,1638,1302,1053,0,0,0,0
+d578d31d6a60224793c6168ec9246b47ae36733a,2021-01-20T17:38:14+03:00,1638,1302,1053,0,0,0,0
+6fe3ba654de04250751f0762ac378eae6f8c7649,2021-01-14T12:41:37+03:00,1638,1302,1053,0,0,0,0
+e6167f6ac4c9cf26c16c95fe3ac0b02c783e0a0e,2021-01-14T12:33:22+03:00,1638,1302,1053,0,0,0,0
+1ab81470e4651a5d7945c8268d750cf88be136c4,2021-01-14T10:27:40+03:00,1638,1302,1053,0,0,0,0
+cba9ad4f2517396b31abecde1dabcbf582937180,2021-01-14T09:04:52+03:00,1632,1298,1053,0,0,0,0
+a0265b82e724a130e1d7181ddcd968dc1ae12a17,2021-01-14T09:04:05+03:00,1631,1297,1053,0,0,0,0
+7877dd1bc6ebe586e8c87b555471460d197524ec,2021-01-11T20:05:27+03:00,1619,1287,1053,0,0,0,0
+d2dad7072ac5aecc39d1c2bf4cb305c209fde4d5,2021-01-11T17:53:45+03:00,1618,1280,1053,0,0,0,0
+f5db6388432210a20210df5cd00dae1320369c9a,2021-01-10T12:36:32+03:00,1570,1294,1053,0,0,0,0
+5a3f3fa4d6bc1c65e96099ad6af2a2c26bead55c,2021-01-07T18:27:10+03:00,1550,1277,1053,0,0,0,0
+8b4424e4e392e3bda1f0e96dc289ff261ab7ab9e,2021-01-05T10:39:48+03:00,1534,1264,1053,0,0,0,0
+585ad0747660e3fd3fbff0261cf01b99ec3cbf03,2020-12-31T11:53:28+03:00,1503,1246,1053,0,0,0,0
+ac499424a9eb9b599443f4a4309b61eabe7c09e6,2020-12-31T09:48:31+03:00,1503,1246,1053,0,0,0,0
+e4bbb752a0cf80b325ae216e9ea81fc78bfdc857,2020-12-30T14:09:24+03:00,1491,1236,1053,0,0,0,0
+81fbfa7ab3e9862904ed99d62164474db6f91b80,2020-12-30T13:41:24+03:00,1491,1236,1053,0,0,0,0
+1fad2e5ebe70df29dedd5ffbd06c7447d9942b73,2020-12-30T13:28:23+03:00,1491,1236,1053,0,0,0,0
+4e0d2fb6e2681d53b160d676858e1cdb1e81fd95,2020-12-30T12:57:37+03:00,1491,1236,1053,0,0,0,0
+a3f3fd784eff39f3dac57789a3160e6ff3d32635,2020-12-30T12:28:30+03:00,1491,1236,0,0,0,0,0
+7abea5d6ceb3cf7356eea79b47f024ba4f05b076,2020-12-20T09:17:16+03:00,0,0,0,0,0,0,0
+e39bc85628ecaff84cded2f1e9bbe92a4d8c49d4,2020-12-20T08:17:16+03:00,1359,1143,1053,0,0,0,0
+bfd415a0dd77bb9ab5eef89a396329bb3e6c4cbd,2020-12-11T12:57:42+03:00,1345,1139,1053,0,0,0,0
+0cf54d68feb5253595f04f8e7434f2c6e298e20a,2020-11-28T11:47:18+03:00,1245,1051,1053,0,0,0,0
+3f3504ca33e79296357dfb0682eca09863beefbf,2020-11-25T20:19:24+03:00,1214,1023,1053,0,0,0,0
+707ddaddfea796478ac16d54185ddbd7a5f8c082,2020-11-24T18:47:13+03:00,1176,990,1053,0,0,0,0
+a83efdaec5386bee0c7ddc8093ec279bb1c4465b,2020-11-20T22:41:40+03:00,0,1036,1053,0,0,0,0
+30219f8ec1a08fa64a6f7f0bf32491a19130b9bb,2020-11-11T10:55:01+03:00,0,968,1053,0,0,0,0
+6ff999d23d7ce6393b49dbcded3279af9c3ae668,2020-10-27T17:18:29+03:00,0,905,1053,0,0,0,0
+a3271bb7a58760f49710329e68269ac588028391,2020-10-21T11:58:28+03:00,0,655,1053,0,0,0,0
+c42173d363499c5e073e51bdccc9d247e6421b18,2020-10-18T09:35:20+03:00,0,614,1053,0,0,0,0
+8cea88e9ea892c47daf54d0844e3f8e2bf69330a,2020-10-15T14:01:37+03:00,0,410,1053,0,0,0,0
+b3ab7d320771a826390995df660dacb6cbf773a4,2020-10-06T12:43:53+03:00,0,0,1053,0,0,0,0
+7d7208ad0384a8ebe2a4e9807b0f88bc214aeb85,2020-09-28T10:41:14+03:00,0,0,1053,0,0,0,0
+958f363ca70a092fbf636bc198a27a7f3511415e,2020-09-22T12:59:25+03:00,0,0,1053,0,0,0,0
+208f4553dc15c237df9dac00b8e115107d030263,2020-09-15T09:53:30+03:00,0,0,1041,0,0,0,0
+63f9a8c0345c0c276bb8d602d7afa740f4c09f95,2020-09-09T18:47:23+03:00,0,0,1041,0,0,0,0
+9e17ed451f30f88249a5236854974242bfa0bad1,2020-08-24T15:52:43+05:00,0,0,1041,0,0,0,0
+587d6edb6a999580d921d7feb4bb4b6fb27af7a2,2020-08-08T21:39:06+03:00,0,0,1038,0,0,0,0
+ab4aadffa7858deffadfc037d0c586ed61971d27,2020-08-08T16:02:42+03:00,0,0,1038,0,0,0,0
+44f15a73a342acc4f5a336d4afdaad55948f9969,2020-07-29T17:42:24+03:00,0,0,1038,0,0,0,0
+4fe9afc57b5e22537ddcef251a0ca12a7f7b4a55,2020-07-28T18:44:45+03:00,0,0,1038,0,0,0,0
+9c6ae2446ba4c62f94dc462d7cfca367e29a80a2,2020-07-28T18:43:54+03:00,0,0,1038,0,0,0,0
+835a98d398908cfc06594123bda22930bd496a5e,2020-07-26T15:49:48+03:00,0,0,1038,0,0,0,0
+45d65fa04392cebd6abc7f55319b46e11e097ed1,2020-07-26T15:48:34+03:00,0,0,1038,0,0,0,0
+983827586e37e8b7555e3079f85b2cc3317febca,2020-07-24T07:13:57+03:00,0,0,1038,0,0,0,0
+ba8b16fb05cd2a6382cbe64538562e69e54bfea8,2020-07-18T12:31:08+03:00,0,0,1038,0,0,0,0
+0212d5380e83d0d909a1beafede68382a48692a3,2020-07-18T12:24:30+03:00,0,0,1038,0,0,0,0
+f8e1ccfd17cc3a19ff8fcb9bc2a931bdd3cc4d2a,2020-07-16T18:49:21+03:00,0,0,1038,0,0,0,0
+281373a5f2a940dfe9dd088ab39ab9165c82b11f,2020-07-15T09:28:26+03:00,0,0,1038,0,0,0,0
+634ea50e9215d5eb5bb96a0a371897810de4bc9a,2020-07-15T09:21:35+03:00,0,0,1038,0,0,0,0
+19dbd1e74019486d7e6d01aa62a36fc34b9a5fb6,2020-07-15T09:20:53+03:00,0,0,1038,0,0,0,0
+2f67e73efaabe1f3f251d65e0ac0b3e123717d16,2020-06-09T21:39:27+03:00,0,0,1039,0,0,0,0
+6118624a167f6f554a1d87370583be5a2e9c8b20,2020-05-27T16:03:08+03:00,0,0,1013,0,0,0,0
+57d54e38d0a7536a0869e6a0942788963ee4ffee,2020-05-27T16:02:59+03:00,0,0,1013,0,0,0,0
+ffbb49576dc31133fad21a3ab3a57ff7723bfeaa,2020-05-22T14:26:14+03:00,0,0,1011,0,0,0,0
+c03481f21e52a2a165cbd16d53dc8a151e45c814,2020-05-19T21:39:54+03:00,0,0,1011,0,0,0,0
+d7418bdcbcde041b6461d54563ec0114ad48ae26,2020-05-19T21:39:51+03:00,0,0,1011,0,0,0,0
+1ce7bb3b7faf0f6abaeb22f74939b15f404035da,2020-05-13T19:00:35+03:00,0,0,1011,0,0,0,0
+25355ce8eeec1703e6c6e5c77c86c99b9d70d399,2020-05-13T18:05:05+03:00,0,0,1011,0,0,0,0
+a676fb74a9ddec73a6eed0c943adff22d82f86e9,2020-05-11T18:46:57+03:00,0,0,1009,0,0,0,0
+dba4c7051df1deb6bd3ce388fca91e18564c9f0e,2020-05-08T21:02:58+03:00,0,0,995,0,0,0,0
+35bc4fcd993f2abb906e4c126b46e6f6d4f495b8,2020-05-08T07:56:42+03:00,0,0,995,0,0,0,0
+db54f66d8c8323b63448a6bcac24c694b407a500,2020-04-27T18:18:10+03:00,0,0,995,0,0,0,0
+5051d4a9a93d6c53d08176e32de23ded500685e9,2020-04-11T19:58:49+03:00,0,0,968,0,0,0,0
+9c0374e0a3e26c21a4b94f58d0fce6ab748a1901,2020-04-08T20:35:04+03:00,0,0,968,0,0,0,0
+478e9d9bc505594ff39ad86dae80faba49639138,2020-04-07T08:52:31+03:00,0,0,967,0,0,0,0
+9b14b0bf4c4c2688d9bf0c8f507c2876c3e8c0fa,2020-03-27T08:25:41+03:00,0,0,894,0,0,0,0
+569544c81b9e1dffda20f6f6c3ccb8d8cd8183d8,2020-03-17T22:55:11+03:00,0,0,889,0,0,0,0
+068f6138b4d59258e854a889a51cb867b0fbef99,2020-03-15T21:44:00+03:00,0,0,889,0,0,0,0
+76e3b3f25f8cac86e5d16939535343979e600b93,2020-03-10T08:57:45+03:00,0,0,857,0,0,0,0
+e9585c86349037ed4a6abf3746b116662dc48ee4,2020-03-05T11:44:08+03:00,0,0,847,0,0,0,0
+cb059221310544f7931d0b08b5b22ae2acc9078e,2020-02-28T13:14:46+03:00,0,0,841,0,0,0,0
+2a78620d5dbdeac8928c70e46578900c8fae0350,2020-02-25T08:16:46+03:00,0,0,841,0,0,0,0
+ff00cc966fba6ada8402fc4d52544f064e8eb17d,2020-02-21T07:04:13+03:00,0,0,785,0,0,0,0
+367d7abd8bcfae477f70fd00bf6ba48bbce53d0b,2020-02-21T06:56:30+03:00,0,0,785,0,0,0,0
+25421d1454145e17b7e8196666f2f6e1af1f1e9f,2020-02-17T18:06:08+03:00,0,0,748,0,0,0,0
+39afeb939ef92a250823c8a0f60fc3c04db86d9f,2020-02-12T19:49:56+03:00,0,0,748,0,0,0,0
+6f181eb0e4ad99e4012340cd253c98734e7b6e87,2020-02-08T15:19:10+03:00,0,0,748,0,0,0,0
+bf887b0b4daa447cf80a155377345c39ff1645b1,2020-02-07T06:37:12+03:00,0,0,723,0,0,0,0
+ca75876e1c40d5ad47640d123b88c3ea02dfbd94,2020-02-06T10:25:39+03:00,0,0,717,0,0,0,0
+a620c11a68e9bc06d1d281e852b85d4124a58e5b,2020-02-04T22:05:24+03:00,0,0,717,0,0,0,0
+ef158ec872a6977b5b0d5443f41586aa8d639e07,2020-01-28T07:07:38+03:00,0,0,691,0,0,0,0
+040f24f12b6cdbfdd4f1fac431abc476de20b02c,2020-01-22T21:36:35+03:00,0,0,684,0,0,0,0
+c064a71918d3e17b26df80789da61e76507b83d2,2020-01-20T09:00:19+03:00,0,0,668,0,0,0,0
+97657355749ec681d2fcf41f422e077b69c1dc45,2020-01-15T17:53:26+03:00,0,0,644,0,0,0,0
+8d845533bccacf2e1a4bd9dc6052de8876935c96,2020-01-12T13:42:41+03:00,0,0,566,0,0,0,0
+36912a33427e29d480d6073e281b77bbffa50fa1,2020-01-05T13:20:36+03:00,0,0,484,0,0,0,0
+dd078552597b827c1ced12379bfdde5222654605,2019-12-31T16:56:49+03:00,0,0,418,0,0,0,0
+117176319fc584fd132865740b6d413c40f25edb,2019-12-25T07:53:39+03:00,0,0,411,0,0,0,0
+c17914fa4ffeb96cceaa59fed93f711f41869cc2,2019-11-30T13:34:57+03:00,0,0,398,0,0,0,0
+91983f536b450061c3b8931806dd1727364a4747,2019-11-21T08:25:37+03:00,0,0,388,0,0,0,0
+c217e480bfb2328d2ecb5d7bb822b002af6c4ff4,2019-11-21T08:25:19+03:00,0,0,388,0,0,0,0
+315e167fbd494bc1cc49b5e13410f67a5314de7f,2019-10-21T10:18:03+03:00,0,0,379,0,0,0,0
+87211c3e501388adf3e880154fc6d0fe30c1f02c,2019-10-21T08:31:34+03:00,0,0,379,0,0,0,0
+bfa5fb959a5ef7b5b8f362992414ff5e0380433d,2019-10-18T20:40:03+03:00,0,0,377,0,0,0,0
+26dc6f9f72a9ac76c4454146d4404c7ad018d1cb,2019-10-18T16:57:21+03:00,0,0,377,0,0,0,0
+f7ec83d186fc546c424c87b6b3394a2b5d6a6059,2019-10-16T22:06:02+03:00,0,0,377,0,0,0,0
+1e2550f7381f2506987f5e71380c43d28575bdfc,2019-10-14T10:48:32+03:00,0,0,377,0,0,0,0
+273b90172e8f451fcaa561bcdf682b287e4ee04b,2019-10-09T22:00:03+03:00,0,0,376,0,0,0,0
+474903d04ea3b7acc5d3c55f3b5d3283320ff4bb,2019-10-04T08:55:27+03:00,0,0,368,0,0,0,0
+2b82da4a18274de3ba82c99137083999b1df7e7a,2019-09-28T17:33:16+03:00,0,0,364,0,0,0,0
+ecc70effda3f7680864e5abc0ec9334c56288bb8,2019-09-18T20:18:25+03:00,0,0,354,0,0,0,0
+bd170af28494bcc3100fb9a98c2edbf5c9e4dcb3,2019-09-11T22:13:34+03:00,0,0,350,0,0,0,0
+4e13110bd4ee9007950a119c387cee53165209e7,2019-09-10T12:32:11+03:00,0,0,316,0,0,0,0
+69e6c77f0b382da16c2f704dee9f5c26a1033543,2019-06-21T20:19:08+03:00,0,0,304,0,0,0,0
+15f77e6947d4e6dc4a2c4eacc424436629e70535,2019-06-01T11:59:02+03:00,0,0,288,0,0,0,0
+b885ed7594f8f4e30e3396add6a9e5bb221cbe90,2019-05-23T18:12:27+03:00,0,0,264,0,0,0,0
+b866f7de55fb8e6383d4e7fc5446b73db08a0af5,2019-05-20T22:30:19+03:00,0,0,247,0,0,0,0
+e80709e371b9586a7cc104c908111f8c43b8cc6e,2019-05-20T10:31:15+03:00,0,0,229,0,0,0,0
+5587b1deb21e8b010f1e08ed7c54925e87b7ab7b,2019-05-20T10:30:51+03:00,0,0,229,0,0,0,0
+83450733e407d9d3988851086cc6a966b2e58302,2019-05-19T13:13:36+03:00,0,0,227,0,0,0,0
+5d3c243cbaef7e178f31d00b7d503aca2297af16,2019-05-18T23:38:16+03:00,0,0,227,0,0,0,0
+02e74e52f04758d0fbcca1531a45939bce2bc397,2019-05-17T14:25:10+03:00,0,0,218,0,0,0,0
+463db6e22059078ebbb42fcc4b8a2ac8815d42e2,2019-05-13T13:48:16+03:00,0,0,217,0,0,0,0
+e4a1a9e40a9eb00dc867d900f91cede36e415c38,2019-05-10T15:35:36+03:00,0,0,217,0,0,0,0
+c9727bf397a3941cdc98fc4e15f69dccbc29fc01,2019-05-08T21:07:58+03:00,0,0,203,0,0,0,0
+0b9731f31c6fb41921fd4bc0b89438dc509cbec4,2019-05-08T14:38:49+03:00,0,0,197,0,0,0,0
+18bd6fdf9d41ee5b56c4ae78c124c3d1fd5d87aa,2019-05-06T00:02:57+03:00,0,0,159,0,0,0,0
+2ed4d3a8ef86ef61b300412e28eb899635f657f3,2019-04-30T22:21:22+03:00,0,0,159,0,0,0,0
+0efdea9c6dcfbebafdd2c0477df04ca20fc27fb8,2019-04-22T13:39:06+03:00,0,0,145,0,0,0,0
+1a861308ba62c0ed7151de2ef177e9c4be9159f7,2019-04-22T11:51:31+03:00,0,0,145,0,0,0,0
+9c07ef14b5494720b850b4bd060d1deb088a95f6,2019-04-20T14:12:01+03:00,0,0,137,0,0,0,0
+6f0c52b7dbd8108638eeb7adc47736e1ed5d7649,2019-04-20T14:07:42+03:00,0,0,135,0,0,0,0
+5ce2dcd9fa929d3732230eac379073182eb56507,2019-04-18T18:24:31+03:00,0,0,134,0,0,0,0
+4bee614548d574c27202d7ed03895317e73df765,2019-04-17T23:07:21+03:00,0,0,132,0,0,0,0
+bed50d44db96ce0784539f4e7cd35c755e19bde8,2019-04-14T14:02:12+03:00,0,0,104,0,0,0,0
+aa45f576d4c2fbbb878af041495f7ee72781f49f,2019-04-12T23:42:06+03:00,0,0,99,0,0,0,0
+4d7fa920a40fdf3064fc71d16830cd6a4de046c4,2019-04-12T18:24:23+03:00,0,0,91,0,0,0,0
+1ff1714599ddf2c41e0ab75562be495e55bb35e2,2019-04-09T12:47:05+03:00,0,0,91,0,0,0,0
+f396584f72311246c3b52ed68d778745df5aea90,2019-04-03T10:36:35+03:00,0,0,91,0,0,0,0
+fa57d73f3597407223ff205439cfe84f338ec3bc,2019-04-02T17:52:05+03:00,0,0,91,0,0,0,0
+e4cc35e62e20104fec2dcdc1220de7ab1980cc3f,2019-03-31T20:06:29+03:00,0,0,62,0,0,0,0
+5044283019dc34c95d2836485ed492b34f49230e,2019-03-31T13:52:50+03:00,0,0,62,0,0,0,0
diff --git a/static/data/2023-03-13-emacs/roam-stats.csv b/static/data/2023-03-13-emacs/roam-stats.csv
new file mode 100644
index 0000000..efb4e79
--- /dev/null
+++ b/static/data/2023-03-13-emacs/roam-stats.csv
@@ -0,0 +1,599 @@
+commit,date,nodes
+7d2146ba5d0657b73eb68423727bea25311131d8,2023-04-10,782
+587b56bc6e9daf00cae2e6e68611a02480272349,2023-04-09,767
+fcc7be872eae173fced04193293b409687fdf348,2023-04-08,766
+d321c16721b6931a3d4e3964efaa6524b04f1740,2023-04-07,766
+5191644d9f54d51e74cd2a41e7293af1f369e525,2023-04-06,766
+9038b9dd39b98832cbdcf988a5bc1b84b23d9ae7,2023-04-05,766
+c313be402a76ab0908f6ebe0c0f4046ee2bf39cb,2023-04-04,761
+626c90f5262ecfbaa0bbb9c1fce15d7cdbfacdb5,2023-04-03,758
+63bbe29b3fb505aeb6165dd3024f911ef5dc21af,2023-04-02,758
+3b4a5cedeb9c3532b3032a5ae71142997dcf03c8,2023-04-01,755
+7ae3d9e9d1601efc1a936dc3dce05b08d769acbf,2023-03-31,755
+7331740d20329f50dc32278b4193f6b1c44c1d1f,2023-03-30,755
+d820d5e1107f1cbaf62e364d7220ae8c49e972fe,2023-03-29,755
+c1904342faac1cc033f9dbc31ebb3a17de43401a,2023-03-28,752
+ce1e015ef924afcabc7fedca6526269e6deb8739,2023-03-27,748
+996a6d4faff65a1e0c0a9feb4fe90a597e21b401,2023-03-26,744
+bdbd06b53e60270dc36c23df3adff5149a79f311,2023-03-25,728
+ddc0d3a57c7ec11a41142816b290c7d29420497b,2023-03-24,720
+8649b00592142da7b23f2a435586e9b693a33cce,2023-03-23,649
+611fd512295b30ea9a020ebe006335b099bc493f,2023-03-22,649
+0dc1e8f555b83e5bf66b9e55973b613a8a46e324,2023-03-21,644
+e13ec465361575256d7b2411ca1731ddb5113c86,2023-03-20,640
+7c709caebe1853cec9576410d04c1f97b8e90439,2023-03-19,640
+38d4421a645ccd0b0e67754678760af20646c58f,2023-03-18,640
+6a224aa648ecb0f2daf3a3cef1efd028e2b1a113,2023-03-17,640
+1a71c0b1f5cf1c0c7d9c63aaf1524386b1f6b922,2023-03-16,640
+3c5da73fd9cb2e58b4a423a8fcca9f562b1a7d2e,2023-03-15,640
+53c5b9810d66ce574fa0ba30422c2804910d2696,2023-03-14,640
+3816308a83090e0d14d48b8947bc3fb38d7e539a,2023-03-13,638
+02c8120a41f6eec194605e3c406117430c09de12,2023-03-12,638
+9eae91861501ec17c98d240dd39e079185898092,2023-03-11,635
+2cfd7cafb24bd91f6d4b0e6494177296d889f0aa,2023-03-10,635
+0dd579bedd9a5a5ea5c857f5937021052789c32d,2023-03-09,635
+6a960b83dc4aa61be58ac684055b72b5c6a898b6,2023-03-08,635
+96577929fe5c9984645c6e4a2b8ffadeec6203f3,2023-03-07,635
+0d1233ad24f80567f16fe68c47ec925de9f503bc,2023-03-06,635
+2bf72e7564e873c22e7319114a4312f7443f825d,2023-03-05,635
+ece45ab57d1d8573bd768a426ca0552155acbea0,2023-03-04,635
+c21e4bbf4ea16d124a8fd301b43ac91d1e1118fb,2023-03-03,635
+5dce76e69141c9b9b844da2101bd84162b7f83bf,2023-03-02,635
+71f0c44a73c495691d183de652fc4eeec68be48f,2023-03-01,634
+54082f6b8b87171bf01ffa349aea627c98ecd7e9,2023-02-28,634
+24155e199711dc1bfb03c632a8b3612a3688d6ec,2023-02-27,634
+10b626d45bd028ebd1744a99e773c9c93af630f2,2023-02-26,634
+bd45afb6a2450810732527187b859c23d20d3490,2023-02-25,625
+abb95acc6c90c773c3e9e06b2f94141be7e59433,2023-02-24,622
+e19679b51fdffc379c2aebe0bd80434e926a22ae,2023-02-23,622
+735b9ac1360451f4fad4f8bf017191960ee632db,2023-02-22,614
+f417f6fb5e7bc951c53b6658ca683eb4505bc781,2023-02-21,614
+4147dff4d5420826d2528b501ea96b789e160fe2,2023-02-20,614
+4146b1fa835bef59d2fe3ded09967f7004fc2608,2023-02-19,614
+e7915bad596085c381300c70dce5782633e0b72f,2023-02-18,611
+45d989f9fee9d45ee8600c1caf5d0546e05f58e9,2023-02-17,611
+67e4b48386053c036ef4bbe2a1beed0063e32d0e,2023-02-16,611
+a6cc6a82eef96a02861132a3f44913447e5fdab8,2023-02-15,611
+ace67c9d64efaba295eb5fee3969a805c52fa287,2023-02-14,611
+43a6a3a93e0b10c1644e8cc040c621f3924661a7,2023-02-13,611
+94dd819a281752a78aa92db018979dcd732f4f04,2023-02-12,611
+83cac83f6a9198a058b569c088ff5784b4a352db,2023-02-11,576
+b754ccdd7c603b8cacfa8edf83d45fff8758d456,2023-02-10,576
+03542592d57716e484f732f4a8f676dd941e6905,2023-02-09,576
+e87b4a6de153f32750240db68b020ea090d39ab9,2023-02-08,576
+063d0d26c92b99762cc9c1d8ff106c86df952a16,2023-02-07,575
+983bbb45af6142b4722505213ab5fd5a027468fb,2023-02-06,575
+f4363df6483f7e3177d1bec57773183508a832c4,2023-02-05,575
+0963686ca01479bee659416acf5320fdb2044e22,2023-02-04,574
+1c66246a44c7a60368bb9f8c5a67e3e932a745c0,2023-02-03,572
+a11387d4ed83d8833327b6c96a602f3dfb1f9708,2023-02-02,572
+beabc4253b3f1fccb600e9f61809de988d8ec58c,2023-02-01,572
+febe7bbde32ad8663525639efce506cbc8c45c3c,2023-01-31,572
+e76082b09b229e6259c929008225a11854a86ccf,2023-01-30,572
+a0481ebde5404f6aa3e753804f1f12474203c6e5,2023-01-29,571
+c39a78dcad99541598427a5656f78d78e78c7a1a,2023-01-28,571
+11b3d023561940c3da8a4e8208c56e16f13d6295,2023-01-27,571
+d90e0786d630e19e50118b0bc08dd1feac349338,2023-01-26,571
+36a42a99798d4a7ed4d42ea2296e3f0c5478a665,2023-01-25,571
+f6b3a7f0a0d9acb00d2e00130a980d0a00a03778,2023-01-24,571
+0b91db129dd827e7e80f2bbf59cccfbba19ee9fc,2023-01-23,571
+328c6daedd5f56c56ac0e662ed52d85b5ca78475,2023-01-22,571
+42f74c81d1c13947f01122a8b0278de4668d26e1,2023-01-21,571
+5b6750af58bdd7f3f97b984ba6a912dd583756c0,2023-01-20,571
+10ecd58c1c7da8d0b7a56305ce495e8e89db78dd,2023-01-19,571
+ec8dc2d671aec39acd3876b9f34dede563e33019,2023-01-18,571
+15f82de47dbdd1405f0af7e37c86dc24f885b5f7,2023-01-17,571
+3b6c956eb739f7961374c7496a81a445509696db,2023-01-16,571
+a2750287138c69f6153216a6001c013c13608dff,2023-01-15,571
+09da5b749b67369afd1957df7b22810620b4a8fd,2023-01-14,571
+42c1bd3838d5b636dd412d3f02d2d88b3232e7df,2023-01-13,570
+802812876d58c7ec669370acdab3cad940d59cbd,2023-01-12,570
+ee7118f5ba67c4ccb68d0d28c7534b83d5a1653b,2023-01-11,570
+73ebf5a1a39847a338fa6fd36d4a56f36ed89a74,2023-01-10,560
+71a6615b379992253501b19cce5b7a07611abf3e,2023-01-09,554
+7d8b0f93ea6ce549a6be9c69f055d714874e7440,2023-01-08,554
+5090a8249579b05fdfb38766f90741bbaebc1772,2023-01-07,554
+8ff01228477f77bfe049e731745490a5422f6bf8,2023-01-06,554
+ebf41880422e90b1e2af43d56d7661c1710d1edb,2023-01-05,546
+d701d6634ff643a9bb53820a2a0428e75f02c0e4,2023-01-04,546
+c41c1aa5945bf7a31a674ab3e666f63ee4d3e510,2023-01-03,546
+c9a7619d65e9435dc754ca57cf45c4f5b9e72fed,2023-01-02,492
+1b6ce52785b2839e5bae4dde1f997196a29f691f,2023-01-01,491
+b85cbb2b42f8ef2c6a21933fe0de711c7b2ab548,2022-12-31,491
+9c2d0adfc4773ab5bb2ad80be53ee2a52f776891,2022-12-30,491
+f7d5fa85e4d8fb2325d0f5240486ae6fed035d46,2022-12-29,491
+c1a2b14b471f5aa2057f996945f16cab0554b698,2022-12-28,491
+541e6d8012cde71123f582cdf317d5008205ce7a,2022-12-27,491
+d48bad04cd0de72cb52a7f3c95c4dbd9d0da9910,2022-12-25,491
+6b020eb46d9bbea33322f50b286ea734848020c5,2022-12-23,491
+54ce903b18bbf11018b87c05efb7ef9c8e4bb5a3,2022-12-22,491
+96d74247dd09871653ff6ebd9e39fd51668e0abc,2022-12-21,491
+716d7f904aea55d1f188510fec9a368641ed3682,2022-12-20,491
+95021c6f8531a9d3ec5ed2eb7cad452d8973e5f4,2022-12-19,481
+93f4d63413a4bd9abadce61df3af3d7c33a43150,2022-12-18,481
+0e565a9cb37141a8d111855b2a6a739da33dd7f2,2022-12-17,481
+9e9e4ed1cc6d6ce2aeedcf46b6e8218efada0a5b,2022-12-16,481
+75e9b54e1d32fcba951fa266ec2b10a7f75a0c22,2022-12-15,481
+df2482018d82ae6168bc5b0aaad7b23d12a2b652,2022-12-14,481
+04c7c1f2cfff75a053861b9047f60b5b512d1499,2022-12-13,481
+04a95cdb55d6e947f692c929b255f83ac618f2c6,2022-12-12,481
+0ca716683af7d0e43ad940e70a4eb51b90e7da38,2022-12-11,481
+d1cd3d313bafa3e39a8791d5aad1380f400e182b,2022-12-10,481
+94a1e2b91b0546eed6841ed10400a9435b2b1e0f,2022-12-09,474
+20f6585a0134efa2fdbf9cac258ede54b36cdfd7,2022-12-07,474
+f7beec5edb2ddd7620ac83de2b38f183d0b3a05e,2022-12-06,474
+daf12421d3656b508dd09f51906cf99b94546787,2022-12-05,474
+f5d5f4af8f5366e421b086912f697f16c826f88c,2022-12-04,458
+5554b9bb0d537aad38b9ad034104e94bccc11aac,2022-12-02,458
+557b474d2123100f1c7346a0a8335b4e41b0e80d,2022-12-01,458
+2dea686b87e1d88aac1aa32a3549ec94e1952e60,2022-11-30,433
+92ccda71e56707ad4fa43086f930b989c729efc4,2022-11-29,433
+48fdb394dc54f174e379374481fddea370a6978d,2022-11-28,433
+5a524ea021438e364b8a0b2a0b0dd0d9b207e60f,2022-11-27,433
+517f4df898b80febbe134ad54fac4752d7e19bb5,2022-11-26,433
+1cbdfb0c3adbfbdeaeb1298f1fcd3025c1db16a6,2022-11-25,423
+218034df9d72faf7b6ba68009ef8d41ca96d1989,2022-11-24,420
+5aebea4c597c3f3f2e8d2e7d4b76e450d1ddfe5b,2022-11-23,410
+a2e11724e8640ace7c085674e86d87f073d8ea05,2022-11-22,410
+ef0646a9be637daf65ac4db908eb96696f3894bf,2022-11-21,410
+16e80a12ce7a040de4d6e97efb8fdcde054280b2,2022-11-20,410
+8fc56a6be3af76d9fc273c90661a8165cb03a467,2022-11-19,410
+0503fe3685c68bd8191f8e35cbeb84e42ff8c831,2022-11-18,410
+944cbfa346d760b940dc8166c2a014afe4335d83,2022-11-17,410
+f697e4dc8dc83d9d583855167c8a126bc5c77d51,2022-11-16,410
+51a964210d1117a3372f9a3c2e7d2289afa3fd6d,2022-11-15,409
+1474187381cee1fe56f49b0236fbda9eb9ae352f,2022-11-14,409
+5b135e6083ab66b7c6fac06d5be44c87fb0a39b6,2022-11-13,400
+52b33e419c8034f2cdb49141fecd260163350a44,2022-11-12,398
+65ad217fe94b2274c47fa550c227a4fedb3e4407,2022-11-11,384
+2a23bed5749ce5e6fd69b873453c8530f4ce22f3,2022-11-10,384
+835a9bfa53f9180603096b82ea490a29a1b02fb4,2022-11-09,384
+539ee51b2c38688d4e94cc1e05aa140892ad2269,2022-11-08,384
+f270ef9dfe1e976cd27b9f020a9432d50c8c10cc,2022-11-07,384
+a093b45b7f318627354245b260e0dbea0e4e603e,2022-11-06,382
+8384c240655f20fe382ad5348662d87a70e2595e,2022-11-05,381
+60ea76995d1dfd96c72513954367fa7608acf7aa,2022-11-04,381
+67cbc40ee38091338bde12b9054786fcc038ffbe,2022-11-03,377
+06ff91651d6509bca253f5cc9c307193eb89bcb0,2022-11-02,377
+3db312af50fdb550bf6b14b87dc2b9724b9bd835,2022-11-01,377
+b3360a6da4b8b3f652e4aabefcf95843deb16912,2022-10-31,371
+8829c16b02f25e3f5b1c963075d29c6d69709f41,2022-10-30,371
+01185d0e3bf22db294ca75b2f63f9077f5ec77ba,2022-10-29,368
+3449d24a3e83b5bf5a2ec43cfaa861e55a3c8f72,2022-10-28,368
+93a3763e89fde8b341650834b5ab43356144c93e,2022-10-27,361
+983c6c1d0896a23c2294597aa46d95bbbe184d49,2022-10-26,361
+2c3d5410d8b12551211e36663569a085d108f34f,2022-10-25,361
+b644033ec7d0d967cce48681236d1120274f5705,2022-10-24,346
+1fd3205c62626ce368b8e197d03a38c4439607d0,2022-10-23,346
+810a15ed945daa96fd82655ed6584ec0331fab53,2022-10-22,331
+f2854af27ad1b4aa648565b20254a0e0536792d9,2022-10-21,331
+caade03be3adf65267e05aacb4839783936e5740,2022-10-20,322
+2347b8fba3d77d0074a8f03ff7d0e91497189722,2022-10-19,322
+205e4b150765b564e4cda9dff226e30cf965c742,2022-10-18,322
+c37102a49aedab3616165cd43424ddc2cea54437,2022-10-17,316
+49ce7bc2b1e6c33da16cf6b15cdeaffdc9bd549e,2022-10-16,316
+4dca5339bf43f60f5b7708b08074780d4f97337f,2022-10-15,311
+e23cecc3ecd6815a010ece192410b3234c584b6b,2022-10-14,311
+3d3d2ebd3b93462bfe2a7324f00774f5b9477d32,2022-10-13,301
+a6dca2f508264cbbf598bde6daac966c819e6f79,2022-10-12,301
+6cfa6b1fd0bd980d96aa49ce36fd434b85537c18,2022-10-11,301
+2f17f60037e2e23c6f08739506d443c95380dd9b,2022-10-10,301
+7c772b75f09c4575de915d2431c3b7bcd9b663fc,2022-10-09,301
+3a2c43e2b8b7648081813f6f719f877082c09e0a,2022-10-08,298
+f05273468f0f539267da93d91b34aae74b9e7621,2022-10-07,293
+418e10308d2e664c774d9b90b7eeb11c9923a02c,2022-10-06,293
+538e08eebd770b0a98e3ae7beec652af21a22c2d,2022-10-05,293
+93e73f373c5515725f2bc90fb94485be7d5acc78,2022-10-03,292
+a6a09e09d8892c4d9b2079744e08b836617d6fef,2022-10-02,290
+085e857f6abac4864079793a83866d90e77b17dc,2022-10-01,290
+fbcc03448e817337602a7236c1f19b039675a387,2022-09-30,290
+2785c689baa1698d1849082fb400be692cf5d5d7,2022-09-29,290
+162cdec1af7121e6bb0eafbf6bfd588bf615af97,2022-09-27,290
+7087c29251339e8aa3ba8fdfb69c7dbdc05f3b4d,2022-09-26,290
+7129ad92cfe5f1af675a3731ddc55bf8d036afd2,2022-09-25,288
+fb30f3a595b8e7136d864c72e8ebc56fd02f4065,2022-09-24,288
+0c3fb94fbcfb0e8b99dd63cc4c4db21e751a900a,2022-09-23,287
+9a2f831bdf100eb12a248d80ae1aa1c236f017af,2022-09-22,287
+07ccb94805c5c4dc8660b3297cbaf7a9f75ea196,2022-09-21,287
+325a02d02a0a2154c3692b821f68134db3e98011,2022-09-20,287
+73dd8430ae7e183f75e396f8ac3900739d11eeae,2022-09-19,285
+ac461b2e16c3ad14737d27b92c137f21776a03eb,2022-09-18,285
+4a7969820fe38062a1d796b8f8e036cb305a9e9e,2022-09-17,285
+101c9a0320550459cebde75fa8ca0782af9434f1,2022-09-16,283
+7cef09035cdc9aa27e03944df8df8fb6a1faa78b,2022-09-15,275
+44cea8eb1557bb36c92ec42500ccee1d55d88553,2022-09-14,275
+72fd1098d6da914b3131b7139b2a3574fabf0c94,2022-09-13,275
+6ab2ef94c8b39671e4bd5f0c1d46b204a8fd7fc9,2022-09-12,275
+d1fab225bd3964ab676a9c2126d925023942d3a6,2022-09-11,274
+119643ba2a4a007bd81ede293155e42eeebed646,2022-09-10,265
+48cafa8a2be437190cdf32b3adbe95a05a6c8f0e,2022-09-09,255
+38774fdaa3a2aca08738f39a24d69ba07dbf9e7a,2022-09-08,253
+43c656ddd5b4915718d78a623e1bc5c70e9fa286,2022-09-07,253
+a0c76ff22985c24ed39cefce1ac4e24f184b3878,2022-09-06,248
+8fe45cde534e57f8d2760936290f9cf34faaa9ce,2022-09-05,248
+d4b3b61376388b60a28e8507979699aedb2a9459,2022-09-04,245
+e52b6077be9afb11c95db553b2e8d6dfb0a56280,2022-09-03,244
+d8ee0e721379e621850321983fe58207938827e7,2022-09-02,233
+f343a3681659834916fc33ddf6b20e6beadc7fc0,2022-09-01,231
+841ce0c5e1ed273dfdd9017fd63902869f09f4fa,2022-08-31,231
+3c0ebef568c9ae7d3d1888b4106f0dc30ee09887,2022-08-30,212
+efa9ee4d116dc7ec4a29e16e9fed5b3cb3634252,2022-08-29,211
+2b080b832aecad6a1f5fbc89a0bccd2ff9aa1747,2022-08-28,208
+2f123edbf2525ba67361ecb0dd7510e4229808d2,2022-08-27,207
+d19c64ac096eb4495563346bcc445df465d613ec,2022-08-26,201
+8b40de811b668f8de97092da780ef402089f0079,2022-08-25,193
+a0529c2f1443f3d75990aa8e7a82d4bea22d7792,2022-08-24,193
+0d3236702288028eaf9fb0403ef4e486355f301f,2022-08-23,188
+1d32f3aad237d80a0c2171215a159e18a77d1e9e,2022-08-22,188
+26bee1cdf63cd5ec8eeee76ca0f0fc3ae823efa6,2022-08-21,183
+aa7a1eedbc6c414498e5489ee84474c17314134c,2022-08-20,183
+cf5f67c0fb14bc47666cabd10341851d114b8b19,2022-08-19,182
+d738dab01fc2d396004645093749e448ebdf4f9d,2022-08-18,179
+8e2858516d066263015cd3fe494bf4dcfec7cea8,2022-08-17,175
+2c597253b0168a6161cd77dd0ae17ec12b76caf4,2022-08-16,172
+b9f0e34aa96eb4797472dbdeba0d91e1135851ef,2022-08-15,172
+cbb8c34d3e29b6c0681ab51698c2ed67c0889f8a,2022-08-14,158
+107382aa8536339ae288a4103359755c0e760960,2022-08-13,158
+f82394576103d47d8485bdf871af1faf93ade795,2022-08-12,155
+988ebdf89f6f135997223beb1982060d87374fff,2022-08-11,117
+86b8aa54a40e7d92cbfab844295dbf49c6812ac2,2022-08-10,117
+e7ab61d234fbcfb942f62e7270218119ec68f3c1,2022-08-09,103
+bcc9f88ca12bd8a081154c062e648ca1b7f77abc,2022-08-08,99
+48611bde1d7dc11a6b2fb7982928b0c4ca0f35b2,2022-08-07,92
+e661b776c8d90e1ff61179392172026be40effa4,2022-08-06,92
+362d2e5af651d33ebc05d6c0b1b11d106de816df,2022-08-05,92
+ac7610faff813ef5173dce2b101d88d1fba3834b,2022-08-04,92
+47c00deef8ab63d42fa1f8a7668c86c4b21d6ea2,2022-08-03,92
+4243f108eb56bcd4b957235dfdfa742c05b68c03,2022-08-02,92
+0a2490c29de09ba73babe75f93a4ea8de63ef134,2022-08-01,92
+4729118405c64c84e2af01d3daa808d44093bfb0,2022-07-31,92
+7928338bbc652e5f81b2f0b7c46b4457be83832a,2022-07-30,92
+2b9346a2de7689fe72bd10afae8a8c07693875a4,2022-07-29,92
+6c7893fffca014c4d9c27e7875896dbf9da756ba,2022-07-28,92
+c753a9083e7d72cb74c376b8666db6da895f929c,2022-07-27,92
+0d36226b85ee9cbbf3a5d5233877976d2d8aeb92,2022-07-26,92
+add0b492b4f7c92c1cdf619f9b87111bc675559b,2022-07-25,92
+655f8d79f63323d85901f8927fe33253c5f26e71,2022-07-24,92
+f31cb791a15f775e605e3c65b2f3db7f8af6166d,2022-07-23,92
+044dd4b4677341a7ea66d91bcbc67c98588f5c9f,2022-07-22,92
+603e308fe8dd8959855ff77f92648114040e267d,2022-07-20,92
+286e81411aac76343d090da080e653c5bbb43cdc,2022-07-19,92
+0a79b4b58eeabdbe564f64e4a9f200da91593850,2022-07-18,92
+2fdad183d485d94aab5ac9b60d9c948b73285b76,2022-07-17,92
+eee585a505ae9020a78efb1d5391d2539da931eb,2022-07-15,92
+50a7f01308241ed7ed161ebdc6f45417ae32474f,2022-07-14,92
+1f109765f709a3e64dafa72b35777a6dab0ddb25,2022-07-13,92
+4899aee5e52feba57917365917332ab805cd857d,2022-07-12,92
+1a397e5b1ab95ddbe3f9ad2c417bdf7cebb0e0d8,2022-07-11,92
+da15c955ea857d36cad5d4b0f0376f64c1174b79,2022-07-10,92
+6f6de53aa6882109f7aece8af3f782d6c5b4d2d9,2022-07-09,92
+bf19671c1ad2796bb0bccf792e86024b7be499f7,2022-07-08,92
+44f0273dda80594bb2c0013edded9ec7b4c820dc,2022-07-07,92
+c051ca84f94b3d9f74d746e50f69bda71cd75705,2022-07-06,92
+5671a906fb057c7190a5f1d0b30d521cf3ae4bc5,2022-07-05,92
+1cc1ad4cc1e8697edefeffa18bcde175a2da2946,2022-07-04,92
+9ff0d25b1f971ca6b17ca5cc1ebdf47fec3903cb,2022-07-03,92
+dd62eddac517989169fafbf4d8bcb962c13e90cb,2022-07-02,92
+2c5f24ef890fbf8e41657f9ea6dc4f193066d01f,2022-07-01,92
+088adf6e18cea941219fd043a8e375e6b065a164,2022-06-30,92
+7e89bea327abdab506bb31649da75fcc7ce2e168,2022-06-29,92
+92d9f6511449ef59e7b8dc646b66e8401c96b474,2022-06-28,92
+f11213a2e98eef02965cd2fd2cf9e1932191e738,2022-06-27,92
+dc2d74f3d23f7208778b6dda20cc24a0e1712710,2022-06-26,92
+abbb0d386cfed405f58898904e00c67ce546df39,2022-06-25,92
+2a4aa0073854aebafab2e158325e4bebfc43f5d2,2022-06-23,92
+b1ee32e34df73d95f7e73adb24546a5d49e939e3,2022-06-22,92
+0bb4b7d8475efee404b1129122d42eef793b6df2,2022-06-21,92
+cfc638ceb21d456d385e290d26ac242591d5794e,2022-06-20,92
+2d9998b4788b85422806ae3032cb1c85861cd821,2022-06-18,92
+913d6a715289481bb749ce90ddcf322094e91f92,2022-06-17,92
+44ee273cfae97cd7008acdc513e08a557407b327,2022-06-16,92
+d315afb20be4acd8708c57eef7403f1afad2dcdd,2022-06-15,92
+f8ebbd134f17f5126ada65b90ac736c26f4bf6d5,2022-06-14,92
+d9a5a0f71ddec2c43266820677eb59f223ac9e01,2022-06-13,92
+253c9b6ae48d7f05c292a031b56a5b5527674db2,2022-06-11,92
+bb0a3e30c1b096d0424a93e7fd936ac2f35d76a4,2022-06-09,92
+2efb84b8f1929f0e2f89111afc4a65ee95b6827d,2022-06-08,92
+46f4d6c5312626bd3d720f3cd0895d84e3c02973,2022-06-06,92
+b4defeba3fc8e55505dee196c8f231e2026e1513,2022-06-04,92
+59ccfaaf2c16c825aaf0e0e11d9915d4854349dd,2022-06-02,92
+dd8a3dbf7f83ff8e2a6581eebbbf204cf0d7ab95,2022-06-01,92
+75b697fea4e313fb00160bf3bb0f52a272f8c24c,2022-05-31,92
+aae4141419b9520cd437de78a9ea96c68f305311,2022-05-30,92
+cd802bda7ad54481c6dda4ce708904cd4cf55b2f,2022-05-29,92
+7c6f0526c130086295fa83cfd356678ede65fd2e,2022-05-27,92
+7ff5a58fcc48cdbb83b5b13d62f06a3a508c0d78,2022-05-26,92
+5c846893c71f053e75d911e161f7b301c323172a,2022-05-25,92
+ee5fd72dae70118a22d753c0faa8016d87b03317,2022-05-24,92
+af12245bc084220ae45e5e3f60e8bbd45751aa63,2022-05-23,92
+30b7f93b0662f21cfbba349ca63ea3fd75f080a2,2022-05-22,92
+61a2e31ed6989024d1c3c9a71357e7c4f4b0ec58,2022-05-21,92
+649872bfa2b8c6ad26c881faf961f1488311a73d,2022-05-20,92
+5e352e47e9ee871b9861ecbcccc3dd387fa31bc9,2022-05-19,92
+336084ba84809a7eacadb24950dff28eaa6e03c8,2022-05-17,92
+318f0457829c84d5d4d05c806aa60280d27b2e60,2022-05-15,92
+f0e925fb1dd6ab08d4eb24ccbdfc23084ebbcc3c,2022-05-13,92
+f869e0ba8501c1caf4756c575b4f09add28aea56,2022-05-11,92
+24363782e0386258ff2499ebe0029eadd59f96a3,2022-05-10,92
+b7fb215304313fef3890060d1327f8cb46187dbd,2022-05-09,92
+a40aab0a48a08f6f5e25e34ae22f5a2e71b10b73,2022-05-08,92
+b8a52dbffc87faeec082136d42fb8c248f2bea77,2022-05-07,92
+0b792ab0e143a038529a2a03a077c14e9d09862b,2022-05-06,92
+fc00023be58fe15b093170a21a72aba5cb23be1f,2022-05-05,92
+bf5fcc72b99b01b02f13ba93227b1121a238a5dd,2022-05-04,92
+23acc274c96758fecabaee9dacac9357fcad43e8,2022-05-03,92
+d09965bd19a8932f931fbd27905b8178e85ddb23,2022-05-02,92
+a608c27e689ffd1364f1c4301c98c2b29a85cb0f,2022-05-01,92
+87c7626b66b0284a0fbe8c509f88abc7c8099293,2022-04-30,92
+481901b71dbaeeb90449a4b4ad1e0bfb3dc67c5d,2022-04-29,92
+5b4fbda3d12c7194d2048ebdef0cee51b0b311a1,2022-04-27,92
+4c85e9dcc269b3bda2b52ea992d07c1fcb5da3e1,2022-04-26,92
+03c24ded21651d691b1896d07ac2fecca1767495,2022-04-25,92
+f5580b30dc9fc1c7361c4f7a73fe5fc8d23759ab,2022-04-24,92
+a5a110a2604365e8f7259234bb0cdb5a1d2ed7df,2022-04-23,92
+2c74dbd0c19d2ece9c6f1fdfeef9071c7d72169c,2022-04-21,92
+1b703639b02d0dad31f511f23aa1eb6158873eec,2022-04-20,92
+c47115c44ff79ec92de273f8f58bb19ad75d1ac9,2022-04-19,92
+23461caf0f9306fcf0adadc28f0090ddf90ee919,2022-04-18,92
+8e98496d4e9915fc037f32fa29f8d9f6e1666992,2022-04-17,92
+a5529ded1a2682fc0213dca4619a66659ad0161a,2022-04-16,92
+dfa2e91d716e1599b87636b99fe663896d803ad4,2022-04-15,92
+c2cd81beb65a1234600955dfd3eaac59914553e6,2022-04-14,92
+03e25bf2b3a8e351f237bbf875afacecee828282,2022-04-13,92
+ffaa1ced8019fd4cab3d8c97703d00aaab908450,2022-04-12,92
+381ae3ae289fec7fade76a748a50506edf076a31,2022-04-11,92
+ff817038bae9e090de862f002e7c5d403d714361,2022-04-10,92
+affb7ef33b540dc8300fdab3e18bc70f22939a1e,2022-04-09,92
+9aa74d9e445d30f9456bf7f8f3aea938c12c3154,2022-04-08,92
+dbd610d1d8fd9d691c965a27703aac11a91e1cab,2022-04-07,92
+a5833324e45ddc21657cf6451e2e89af58451638,2022-04-06,92
+64bdbc893d103f7d869d953d9b14d0b0b542ae72,2022-04-05,92
+318b529356982864e270f97632755851374077fa,2022-04-04,92
+069c9b402a8a802fa1e5b056a1c8906d8bf0b965,2022-04-03,92
+9a368ab393f7027457a2cbbbccc1d61c825844f7,2022-04-02,92
+8336511a8d7a5b36f34db54f0c5f3e44d3662049,2022-04-01,92
+8eb8f124397d6f27a9c01ab8a702ed5750d00910,2022-03-30,92
+ec1f634978849669012c7aedcd03c96287002a9b,2022-03-29,92
+63d21980848db4b4c47d9e4cd70070f72c1642c9,2022-03-28,92
+98709c642dcbe1d8507fd7fb2b15d15da4d1a30d,2022-03-27,92
+af5e23d6cbe23ebed9c3242e35c5c2452981ff1f,2022-03-26,104
+08600794d788124d762c3129a50bf6f78b77d984,2022-03-25,104
+a2d8b6cb1bf24b231e661dfc62bf6e6f7af13294,2022-03-24,104
+bb8e0dcbcc88fef5b0850ca78989f9579b77bb60,2022-03-23,104
+4a1ce3559e8a780aa7d7ade87c501716a3f49c24,2022-03-22,104
+26d3ded0d633519c1208778b6203e8c3b7340791,2022-03-21,104
+faf630a54013ab0c7d38019622f38e1dab145c43,2022-03-20,104
+b12a789c977fc18fa77d674d044f42af00670174,2022-03-19,104
+9d972283f0b6aaffe72313ad793a46202a50d300,2022-03-18,104
+910000d4190a99537a6a4f72493ba243965eb414,2022-03-17,104
+ba4bd3340716821537aedbe54ef03a14ccba88ab,2022-03-16,104
+b766668dd162ea6bfbf696f722d29ebe5bfbfa11,2022-03-15,104
+818bbb89a76f2129ba26d067e561d6f1c19ba12a,2022-03-14,104
+361fcb01e2fed0587e033c7da6dfe0853e30921a,2022-03-13,104
+557a29f4ab54f6bc35074919f2b2b6426b745d0d,2022-03-12,104
+8d9db24ce820c0435021cf2203f885775eeddd5a,2022-03-11,104
+c678ffa46ca1158ae42dbd88294f56bd828c5837,2022-03-10,104
+48323c36d96fa35f8a08a65c8fae296c656984fe,2022-03-09,104
+8c83bb3087c1b569651baa21b45b853ac962c6e4,2022-03-08,104
+64f9f4fa7b12082512531719866965668d65d6ec,2022-03-07,104
+daea15b539438ea5369a7f98254c10951a22c7a9,2022-03-06,104
+db2fbe76bdd5699258099f82b08f9b3d353aa873,2022-03-05,104
+9e6bedf8caebd5246862e0da56fc1f21e1c479d5,2022-03-04,104
+fcc5624e213e10dc94be86c6030d5ea219fd8ae1,2022-03-03,104
+c85393b094bcdf5a82e334f456f356c356ebca1a,2022-03-02,104
+cdab7773199b5a00cf77180d4936afc9159a074c,2022-03-01,104
+340621c154e24d2f674ccea296791f2a2d00b660,2022-02-28,104
+92f1e36622d368f82fdcd42a457a373fe31cbacf,2022-02-27,104
+6c035edfe4181373875da6c4ce39fed4bf2e5be7,2022-02-26,104
+24929134d55e36fd757c90177f80ffdd0da800d7,2022-02-25,104
+b0ccc269628594828e193867eea7345f79730588,2022-02-24,104
+392a6c92394e4ffc6ee5129c7888225c15a68347,2022-02-23,104
+d60e4ccad6417ce2340d1c6bcda650158a09494b,2022-02-22,104
+a3237135c1ed5617a2bbaddd7e6bdfa93626d8f6,2022-02-21,104
+a22cf3def43405b9955d6858210982f25d56b0d1,2022-02-20,104
+8265f5b5f62a8b140e28195206bab3489074bd46,2022-02-19,104
+5af73e708b145f1eadb77880f128d26b9e7cd4c8,2022-02-18,104
+f85980512cb9a06dcb33d4ba2b45537efa728d06,2022-02-17,104
+7bf2fa58f6df083717c99f38c85ab7ee15a3f0fa,2022-02-16,104
+adda1eb482035036728c48672cddd2b8b11109e9,2022-02-15,104
+99877118258e9c18ddbd370461b92d6a46952d28,2022-02-14,104
+fd5c03cba5fadd2625ddee1ce5e4438f8aaa5a42,2022-02-13,104
+9369ecc9f56a3b08f38c2b8ab3f1c44917d4fe2e,2022-02-12,104
+89068e89c41419c39209ba263af217fb1dc91080,2022-02-11,104
+7758c681ed38139ac7157d5e3a9413bd8ecada5b,2022-02-10,104
+503797a245b77d82324ee4f81fe296633841efd1,2022-02-09,104
+f00a498886d6f81f7d3507ff635e778dda47cc92,2022-02-08,106
+7eff0cd5b2368c67ca25b86db71b6f00a7fe22ca,2022-02-07,104
+2e39274e93ea56ee08ae22d6e25cf2f0e732ae0b,2022-02-05,104
+a1f1ffc443d2ed7bcc02e62358e822c35f730217,2022-02-04,104
+54e91e0ee77af316d5879bea4bf08dcfd7ab15c0,2022-02-03,104
+96eda4198c8ab93c4ab2159b3e3d33b16d2c6d92,2022-02-02,104
+19d173da7b63272f45975218a47ed8b2083a6968,2022-02-01,104
+0018267b08633559b9390aa123b5db8412ec995e,2022-01-31,104
+d29e98cf96109d2131350d0456bfc93a988fe6aa,2022-01-30,104
+09bea5e7598345c9a8a9e57dbbdaf9a1446d0d99,2022-01-29,104
+ddddd3f57c48c4909e3433deaef089508e4d7a0f,2022-01-27,104
+3b38613adecd609f95897bf50cb87a838071eda2,2022-01-26,104
+6b49de990979707ebb6a5d10c20764cd57c7b52b,2022-01-25,104
+e0f45222e72bd580b349bbc176e92bb15d56416b,2022-01-24,104
+653756f69e56eec595411cd9d9f3c6ff8a3ad1ea,2022-01-23,104
+0643847c5c1527aba38f3d2cd1979c4eddf715ad,2022-01-22,104
+4017ba65ed2cf0c6b080fba4125b714f6acb5888,2022-01-21,104
+a24301e0fd06c1d91e986527d38957712d2d16a1,2022-01-20,104
+4e7df8c6b579e8cc2ef47ec98a6e288e95c27dbe,2022-01-19,103
+a9e0ce048ef859595fa7f6bbf08c031cd54f9531,2022-01-18,103
+16163f2beaffc011b378f3ec9674d0a7c6e1d132,2022-01-17,103
+2c1735b1282879fee2c2039074c8d0d173535887,2022-01-16,103
+220ee3c5f783b6624d2569bc447502b7efc490a1,2022-01-15,103
+284b200309fab58e293965aa5c9b60320035cbf0,2022-01-14,103
+2c132e6dabdce695f2189f27fa16a95ea3e7e5d1,2022-01-13,103
+0ba3aa89f5c7aa1012deac9b3f38f5dd425b8551,2022-01-12,103
+00308e161806a0a862f9fbe07d9bafc39f090929,2022-01-11,103
+12bcc35276d6fa58eee5f3dd0984f84adaa0fe15,2022-01-10,103
+749eec6aac3869952f6ac0cb44e561969d90242f,2022-01-09,103
+ea123c8c8e8a90fdc1410ea3239832874e3912d1,2022-01-08,103
+1a9cb863db07835c3aa54d6f1b66c33d9b5a72ec,2022-01-07,103
+6448fa6f9e8bd8487c5ea88717832c5662eb4c43,2022-01-06,103
+9c5e7ca89cd64e6e9a75468639aa80a321b92e3a,2022-01-05,103
+f87d12651c110a1abe2c2f5677e5037bb8cdfc43,2022-01-04,104
+a4b7b134fdeb53babc7c70807d77c529980a923e,2022-01-03,104
+c9d70b94855eff1bff7c24ded5dfba8da301af39,2022-01-02,104
+ebd591f39ed6fcf4e79bae8f0efa257b33c66333,2022-01-01,104
+64b6b5b18133cf70ff8ad3bddd590096a7a1ec7f,2021-12-31,104
+66bd5ebdae622761ac40569c7de16e842df4d3e6,2021-12-30,104
+634f3f627ca52654bde076932096a5ced040ee3d,2021-12-29,104
+e6a08f9e26f455b0a81aa0fa049f7a803a930b79,2021-12-28,104
+ef0c055ca0063842ca8700934d6a25f802cad367,2021-12-27,104
+ace56c83b3a642ac285bc7715e285bdafaf41c89,2021-12-26,104
+3a46acd81213ad2875355bb42514ca982fb2a181,2021-12-25,104
+17f5c67d3a69aa346b7301969407f05c5a410c7b,2021-12-24,104
+eace008d8beb01223a81e8af610ba9c583ec7918,2021-12-23,104
+86f86ce2559e33e55284851c8150c11c09d4dbe0,2021-12-22,104
+3bf7cd1d21d54de2b02245fc261c61e6c80d3752,2021-12-21,104
+1defc5dd7b702e330ff24d8d27de11ed177d1b53,2021-12-20,104
+8d76b4c76b43b955bed87cc15508bab29df9c427,2021-12-19,104
+8c0f141839cf964f7462a886a5825b0dd424ac30,2021-12-18,94
+bf5ba9836423e84cd806ca9374c4bc746a031b46,2021-12-16,94
+cc94c913f1f1df6b3800e6898e297b11803ed7e4,2021-12-15,93
+5158e4f0dffc6662e63e50b23ced6abfca8bf90a,2021-12-14,91
+ca8309dafe36042fb036f5891585de11e2edfc13,2021-12-13,91
+07474bc6b08d40c0848f7323bfb0f2496c52e48a,2021-12-12,91
+c595f8c0f4a233018a34cf938ea288aca388ea8d,2021-12-11,91
+665535214937c62040a3c6e05a6a24de6e11f670,2021-12-10,91
+0b4dc55f8909037088cd7748327f9b5054f73d4c,2021-12-09,91
+af575294d3ac814f2e46401259392eee3f450b32,2021-12-08,91
+2d11e4e624249edd57fba11beba6652664164a01,2021-12-07,91
+8f443b62910f595a4d2f2a5894faeeed6c7dd8ee,2021-12-06,91
+494d87eb5bc554ea4a7159fa1bade3186abacfa2,2021-12-05,91
+700464f4b4469d08ad3304ed11d0fab237ac3119,2021-12-04,91
+d025693d8b219892547e9591008263ac8302a28e,2021-12-03,91
+40da49ff88e93a08bd2883992576074acffb525d,2021-12-02,91
+6962346d9b0c2cc907f1cd7c488e2cfaa8a323ab,2021-12-01,91
+19e718178c0fb2e98bf443c5d78be9fe7c414296,2021-11-30,91
+f456cf7f5b1ab8fc05397ce3e90f68819073645f,2021-11-29,91
+31fcac5c6f29b97715ef9ad8824d851cccd39557,2021-11-28,91
+b37f05a3e69d4f615214bebe7e1b72d73d807689,2021-11-27,87
+89cda9c5a562a92eee43386b49b640a08b7ddc37,2021-11-26,86
+b80f7a3ff2026b627cb7df53dd69b31a77cf77c9,2021-11-25,86
+b9d6e3e6408097c81f592322a6715a0952d9006f,2021-11-24,86
+a313467b37e943c360ad02f439c431fa4ca78f5a,2021-11-22,81
+8024f901bbf97e35ea7e2e4eba3d97b19dbdbecf,2021-11-21,81
+dec614644b2cf0478300e3c4528ff245887854c3,2021-11-20,68
+0cb2b2248d280eccfe49a237366ece71d80332b2,2021-11-19,62
+cf38e75c24ff566c9fc20f84801565ba465aa8e2,2021-11-18,62
+2df8021174c2fe5dc7b03f939021473953f05fbd,2021-11-17,62
+8d5692fabc246d5b265d0a81c61292dd95ff053f,2021-11-16,62
+e2e88f803d73d6b18d883b5fbd8ef4c4da624997,2021-11-15,62
+de8e37fceee5add8a2e36143b58f39ac867868a0,2021-11-14,50
+2ff3a76ba8ce7052ba35f256b7f002ce3e43752b,2021-11-13,50
+986be47eda5447e31ee5b6489cc6dfe2bf4f18a3,2021-11-12,50
+e6b161a052c62a24537c9c5fdb7a39311ace3880,2021-11-11,50
+f315586bcb1c826c81fdf440c7c084d89547e773,2021-11-10,50
+6dd2580a4125df25b647755c85017e16e8f7f42e,2021-11-09,49
+596c67abb04d971a86bc0d6227f70ded7ebce60c,2021-11-08,49
+4a93363dbb7d634ccfb4322cb5d54676947aa146,2021-11-07,49
+5f24e04b17e6179bf0d0a5b0229aafbd878ca550,2021-11-06,39
+86fe8605410f9ce7f0c37499af8d4047165c1170,2021-11-05,28
+7797e0bba5cc933d14639876ed609be6420b13e7,2021-11-04,23
+18e6d5169b9f83769e6dc49a2b8937bf504b0576,2021-11-03,23
+c573f92853f6053650ac03335a16af931bbc4ba1,2021-11-02,23
+1d12ac108e4bc418999858e5d2f48f69d82bdef8,2021-11-01,22
+df19d1c72d461b41fa0087905fb82da9799ce318,2021-10-31,12
+3fb0a7630fba674415dcb35afd4eed4165e627ce,2021-10-30,16
+07da2e883248d8614eb030f71a774be0135ce784,2021-10-29,16
+22a37f7cf3eb35d1b7672016fb65f826940e367f,2021-10-28,16
+41c1210f0f4dcbc737c34fac8396e39552b58170,2021-10-27,16
+677620c5065a721ba6a16a0a2ad1bb6e5dc93a12,2021-10-26,16
+d3730f7df0292c2458eeaaa57cc449d22f7262be,2021-10-25,16
+04b2599cae62b46af26eabe8d5f5695565915052,2021-10-24,16
+767605772e70154bda85876b1519eb99b574fe9d,2021-10-23,16
+3bb09aff9cccd5bce37a599ac547a3c6b4c512b5,2021-10-22,16
+b27341b1984fb944eade211086c5f54388945c90,2021-10-20,16
+e11e155f42941b4e3d9738dc3cad4d3cd637b7f9,2021-10-19,16
+349bb0d18d4775db49c0d32cb4e82040e965c8ec,2021-10-18,16
+cfece9de32ec833adccaa7ddab807b3e3653d83b,2021-10-17,16
+a1b08c098d1d8febf49beba31fc3a454edbf40e5,2021-10-16,16
+715c994ea755d4fd92f95110c59b647f845d0539,2021-10-14,16
+9d1ffa7d012d873bf145aa45735b25e96fc17fae,2021-10-13,16
+b16a3fd2dc86163c9975bb504c980ed741c76b15,2021-10-11,16
+9af94490961fce3a83e93a7d0a92bd2ee4773210,2021-10-10,16
+4a57f6fdee3269394c4c4c060fa4aa3b611e262e,2021-10-09,16
+f8002dbb8e4fd8c74b72f00ac48472c84cfeb92a,2021-10-08,16
+ce19a3615b291cf28a669d7e1ed52db86d91e3d6,2021-10-07,16
+f931a9de82ae6e291c462ac76a7a6dadb3022738,2021-10-06,16
+40c65a331279ca4a2066d4dd746c898e0fc614d6,2021-10-04,16
+24ad29375cd273ac4b1b5d57673f1f30b8c07d0c,2021-10-02,16
+ecbe491ed50d27ade140a07014990b9a0269a064,2021-10-01,16
+bd94ccb1248138f34ac4f880a9d7a93904817756,2021-09-30,16
+7e9cdb83f83da7d3900664f1db73dbe8db7cf0cb,2021-09-29,16
+93de515166cb4a5d311d4a42753c7adc266cf288,2021-09-28,16
+6d10a037efa8b9f0ec19601140401f3f26f2445e,2021-09-27,16
+47b2729a646d4e7af3b2f8669ded71298ddc3b45,2021-09-26,16
+7368309795d81a1af6f9afbe108329fdb250156b,2021-09-25,16
+989261c6478348ba6beec21f61189b12f493105d,2021-09-24,16
+12dd7b5869435aad11002ffe11843adc2adac822,2021-09-23,16
+515444554ccc730e45078983327731a0d8ac553d,2021-09-22,16
+e61a2509eadfad2f2f499b88f1c1df63cce4120b,2021-09-21,16
+28418652709fa6abe9c3f7d096ac1c4baf49fe64,2021-09-19,16
+9f98839d1a60e8eee66aa34a51eff1f7e7009240,2021-09-18,16
+946eff61a46fb84f531588c9c75729f57fdcb15a,2021-09-17,14
+e3d8cf1bb3bdd0b48b8c65760b5c9cd6c96fc96e,2021-09-16,14
+7d68262892df9a9d6d24b2042ded7433b53c799b,2021-09-15,14
+149b1e1c0947af48fc3326718f1c511c34cac31b,2021-09-14,14
+6f9b5aa8c92d06e3120a71dbd22723b16e9869b9,2021-09-13,14
+81152599214ceaf6d40d6d683a7408480b47bad1,2021-09-12,14
+acb29080a5137a6ee38c7a6b3acf199391514131,2021-09-11,14
+2d20bdcea7083161fb9e88ca6f0ec0d9fd05aed5,2021-09-10,14
+014f8a7904402ef9ddf3ff28be744fc05771978e,2021-09-09,14
+b98c2cbf9373411b61cf2aeea18eb624919b7c5e,2021-09-08,14
+3263593f9eface7725e37d7f1916449d1aebafda,2021-09-07,14
+a5e76908b2c734df275366dfaa10464970222e42,2021-09-06,14
+abe95a378c55f5c6d00acb724812e0ab32e29cd6,2021-09-05,14
+1d6ecf3a8880a752a0fb3450644d84c8906ea06f,2021-09-03,14
+a3566d396f39e23f662c6a339abdfaf7ac99366c,2021-09-02,14
+3f10700e0c434b541708782c3c6d06f4569df889,2021-09-01,14
+fd8581b086bceba80ba0902ed38509b38b912a5f,2021-08-31,13
+78f55ca171e30423534539501865df425c063620,2021-08-30,13
+e47d52a7e95d6fd8b1b89149da67a94158b524cc,2021-08-29,13
+973c27d84bf30857547aa611985475b32df271d3,2021-08-28,13
+3a11199fea36c1a954b164039f39cd66ca2e1b25,2021-08-27,13
+9b6eea6569448c26940f755a5fdb42b52d253be2,2021-08-25,13
+5f58500187ef89038e88bbded8fbd6ac4ec665ce,2021-08-24,13
+d10ab7787ae0e20642f1915b458d0aa070421d83,2021-08-23,13
+d48cdeff341e926310b5b769845ef3427bfd3cbf,2021-08-22,13
+9b23d661ab7e2faf4348cae4fac92783aad7d3c9,2021-08-21,13
+416c719504ddcc5eaf631e1aef6c508e492c6edb,2021-08-20,13
+b2e4aeedf9def1dca92dc361528dc2e8d311ebab,2021-08-19,13
+4db5db006fad4c2edd6fe065622aac1f38acd8da,2021-08-18,13
+b14ad80d016dc334da9b9b39bac0cda4aced4ced,2021-08-17,13
+933cfffcb228706cca132e05a055f0dbd5d63b6c,2021-08-16,13
+ffef6749e73964a582aad380acb4055faf17ff13,2021-08-14,13
+a448f1d8a0b7cfbac92bc2c5007c0158c7eb7ab1,2021-08-13,12
+ed2067b34a126d68a65cdf99b9e8fd39fb412525,2021-08-12,12
+1e727bccf0a4f82e1b532b62491ce408a5e46612,2021-08-11,11
+e7d104e758da790607d92eb7b3ab3b9c1e99a28c,2021-08-10,11
+cfa7906d2f096a6ceacb0cf4e4187394ba26e687,2021-08-09,11
+df808f202ad3eeaffbf944c168c78f33fc6b5a58,2021-08-08,11
+4ce4148671d5fda665fe6d436ce4dfb31c0c0ddb,2021-08-07,8
+13c15048e8e49afc8e0dd1a8f76c24fed6b4b229,2021-08-06,8
+f8aa5e61a52079af81e4aedff34cbc5ad7f1a4f2,2021-08-05,8
+210f0f1e7e9cf0b4a37fa5d0ecb80ba46492edb2,2021-08-04,8
+4a452af8f0a4afd0c1e1957bf269ec40d41c3e06,2021-08-02,7
+a3e39d3b28a65828e862c300700eebddbe4ea2d7,2021-08-01,7
+a8a7061b9cd489dd3f291e5f92f9fc7c0af32d62,2021-07-31,7
+1701151827f67473067ff43450d11365095c9404,2021-07-30,5
+57aa39a3011216c72bea56e52d860e93b2b0054a,2021-07-29,4
+0d3f2cf312335cae4bfd4614750d602fb25d7c6d,2021-07-28,4
+4392d58b81f338ada9542668b42d97a4f76b8788,2021-07-27,4
+12400a485bdd947d69dbbdf8a389f214a685ba3c,2021-07-26,4
+feccc1d2cf05ad3e80b90d05be696152f8cdd974,2021-07-24,4
+60781f353f28dddb263e6ed876f21d11fec9305b,2021-07-23,4
+27699ee3c013372a7e3580c6109015e48f6844bb,2021-07-22,4
+8efc08a8df6748240c5ecc80fca02260bb340110,2021-07-21,4
+0f696eabaca269daac96d6c2e0624a3a3e31f43e,2021-07-20,4
+55e8ce91cbe8a326f64e71e50513b7b829aa1c3d,2021-07-19,3
+523b1d007bd5766d387d8d228f4cdb88c8fd0b1f,2021-07-18,3
+55dadc57d58e26cde19841d0c1ff83fdfbae1c54,2021-07-17,2
+2221e2dbe308a9eb3c7d3f8377b5b0a5f930361a,2021-07-16,1
+76db4cad3ff129753e6067013558cb5810cb7c45,2021-07-15,1
+1fbd90858dac580977409df66f439dfaeab8e1ba,2021-06-30,0
diff --git a/static/js/2023-04-13-emacs.js b/static/js/2023-04-13-emacs.js
new file mode 100644
index 0000000..08fd1b3
--- /dev/null
+++ b/static/js/2023-04-13-emacs.js
@@ -0,0 +1,957 @@
+const TODAY = new Date("2023-04-14");
+const TODAY_LOCALE = TODAY.toLocaleDateString("en-GB");
+
+const EMACS_ITEM = {
+ backgroundColor: "#8261bb",
+ borderColor: "black",
+ borderWidth: 0,
+ borderSkipped: false,
+ borderRadius: 0,
+ datalabels: {
+ color: "white",
+ },
+};
+
+const COLORS = [
+ "#77bceb",
+ "#ff6384",
+ "#73d9d9",
+ "#ff9f40",
+ "#ffcd56",
+ "#c9cbcf",
+];
+
+let i = 0;
+
+const EMACS_DATA = {
+ labels: [
+ "Editor/IDE",
+ "File manager",
+ "Email",
+ "RSS",
+ "Passwords",
+ "Multimedia",
+ "WM",
+ "Messenger",
+ ],
+ datasets: [
+ {
+ label: "Jupyter",
+ data: [
+ {
+ name: "Editor/IDE",
+ span: [new Date("2018-10-24"), new Date("2021-04-01")],
+ },
+ ],
+ yAxisID: "yAxis1",
+ },
+ {
+ label: "NeoVim",
+ data: [
+ {
+ name: "Editor/IDE",
+ span: [new Date("2019-03-30"), new Date("2020-10-12")],
+ },
+ ],
+ yAxisID: "yAxis1",
+ },
+ {
+ label: "DataGrip",
+ data: [
+ {
+ name: "Editor/IDE",
+ span: [new Date("2020-02-01"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis1",
+ },
+ {
+ label: "Emacs",
+ data: [
+ {
+ name: "Editor/IDE",
+ span: [new Date("2020-10-12"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis1",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "ranger",
+ data: [
+ {
+ name: "File manager",
+ span: [new Date("2019-04-03"), new Date("2020-02-17")],
+ },
+ ],
+ yAxisID: "yAxis2",
+ },
+ {
+ label: "vifm",
+ data: [
+ {
+ name: "File manager",
+ span: [new Date("2020-02-17"), new Date("2020-11-11")],
+ },
+ ],
+ yAxisID: "yAxis2",
+ },
+ {
+ label: "Dired",
+ data: [
+ {
+ name: "File manager",
+ span: [new Date("2020-11-11"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis2",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "Mailspring",
+ data: [
+ {
+ name: "Email",
+ span: [new Date("2019-01-28"), new Date("2021-01-29")],
+ },
+ ],
+ yAxisID: "yAxis3",
+ },
+ {
+ label: "notmuch",
+ data: [
+ {
+ name: "Email",
+ span: [new Date("2021-01-29"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis3",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "newsboat",
+ data: [
+ {
+ name: "RSS",
+ span: [new Date("2021-01-22"), new Date("2021-05-24")],
+ },
+ ],
+ yAxisID: "yAxis4",
+ },
+ {
+ label: "elfeed",
+ data: [
+ {
+ name: "RSS",
+ span: [new Date("2021-05-24"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis4",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "Tiny Tiny RSS",
+ data: [
+ {
+ name: "RSS",
+ span: [new Date("2022-05-28"), TODAY],
+ hint: "Sync with elfeed",
+ },
+ ],
+ yAxisID: "yAxis4",
+ },
+ {
+ label: "KeePassXC",
+ data: [
+ {
+ name: "Passwords",
+ span: [new Date("2019-01-31"), new Date("2021-07-26")],
+ },
+ ],
+ yAxisID: "yAxis5",
+ },
+ {
+ label: "password-store & pass.el",
+ data: [
+ {
+ name: "Passwords",
+ span: [new Date("2021-07-26"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis5",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "Google Play Music",
+ data: [
+ {
+ name: "Multimedia",
+ span: [new Date("2019-05-12"), new Date("2020-07-26")],
+ },
+ ],
+ yAxisID: "yAxis6",
+ },
+ {
+ label: "MPD",
+ data: [
+ {
+ name: "Multimedia",
+ span: [new Date("2020-07-26"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis6",
+ },
+ {
+ label: "ncmpcpp",
+ data: [
+ {
+ name: "Multimedia",
+ span: [new Date("2020-07-26"), new Date("2021-07-31")],
+ },
+ ],
+ yAxisID: "yAxis6",
+ },
+ {
+ label: "EMMS",
+ data: [
+ {
+ name: "Multimedia",
+ span: [new Date("2021-07-31"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis6",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "MPV",
+ data: [
+ {
+ name: "Multimedia",
+ span: [new Date("2021-09-07"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis6",
+ },
+ {
+ label: "Cinnamon",
+ data: [
+ {
+ name: "WM",
+ span: [new Date("2018-08-01"), new Date("2020-05-08")],
+ },
+ ],
+ yAxisID: "yAxis7",
+ },
+ {
+ label: "i3(-gaps)",
+ data: [
+ {
+ name: "WM",
+ span: [new Date("2020-05-08"), new Date("2021-11-14")],
+ },
+ ],
+ yAxisID: "yAxis7",
+ },
+ {
+ label: "EXWM",
+ data: [
+ {
+ name: "WM",
+ span: [new Date("2021-11-14"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis7",
+ ...EMACS_ITEM,
+ },
+ {
+ label: "Telegram Desktop",
+ data: [
+ {
+ name: "Messenger",
+ span: [new Date("2022-03-22"), new Date("2023-01-07")],
+ },
+ ],
+ yAxisID: "yAxis8",
+ },
+ {
+ label: "telega.el",
+ data: [
+ {
+ name: "Messenger",
+ span: [new Date("2023-01-07"), TODAY],
+ },
+ ],
+ yAxisID: "yAxis8",
+ ...EMACS_ITEM,
+ },
+ ].map((d) => {
+ if (!d.backgroundColor) {
+ d.backgroundColor = COLORS[i];
+ }
+ i = (i + 1) % COLORS.length;
+ return d;
+ }),
+};
+
+function replaceNumbers(data) {
+ for (const [key, value] of Object.entries(data)) {
+ const items = document.querySelectorAll(`[data-num="${key}"]`);
+ for (const item of items) {
+ item.innerHTML = value;
+ }
+ }
+}
+
+function emacsChart() {
+ const ctx = document.getElementById("chart-emacs-history");
+ new Chart(ctx, {
+ type: "bar",
+ data: EMACS_DATA,
+ plugins: [ChartDataLabels],
+ options: {
+ indexAxis: "y",
+ grouped: true,
+ aspectRatio: 1.1,
+ parsing: {
+ yAxisKey: "name",
+ xAxisKey: "span",
+ },
+ layout: {
+ padding: 1,
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: new Date("2018-09"),
+ },
+ ...Object.fromEntries(
+ [1, 2, 3, 4, 5, 6, 7].map((i) => [
+ `yAxis${i}`,
+ {
+ display: false,
+ },
+ ])
+ ),
+ },
+ plugins: {
+ legend: {
+ display: false,
+ },
+ title: {
+ display: true,
+ text: "Figure 1. Everything goes into Emacs",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ datalabels: {
+ formatter: function (value, context) {
+ return context.dataset.label;
+ },
+ color: "black",
+ },
+ tooltip: {
+ callbacks: {
+ label: function (context) {
+ const startDate = new Date(
+ context.parsed._custom.start
+ ).toLocaleDateString("en-GB");
+ let endDate = new Date(
+ context.parsed._custom.end
+ ).toLocaleDateString("en-GB");
+ if (endDate === TODAY_LOCALE) {
+ endDate = "Today";
+ }
+ const label = context.dataset.label;
+ return `${label}: ${startDate} - ${endDate}`;
+ },
+ },
+ },
+ },
+ },
+ });
+}
+
+async function emacsScreenTimeChart() {
+ const response = await fetch("/data/2023-03-13-emacs/emacs-screen-time.json");
+ const rawData = await response.json();
+ const data = {
+ labels: rawData.map((d) => new Date(d["date_trunc"])),
+ datasets: [
+ {
+ data: rawData.map((d) => ({
+ period: new Date(d["date_trunc"]),
+ value: d["percent"],
+ })),
+ },
+ ],
+ };
+
+ const ctx = document.getElementById("chart-emacs-screen-time");
+ new Chart(ctx, {
+ type: "bar",
+ data,
+ options: {
+ parsing: {
+ xAxisKey: "period",
+ yAxisKey: "value",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: data.labels[0],
+ },
+ y: {
+ title: {
+ display: true,
+ text: "Ratio of direct screen time",
+ },
+ },
+ },
+ plugins: {
+ legend: {
+ display: false,
+ },
+ title: {
+ display: true,
+ text: "Figure 2. Emacs direct screen time ratio over time",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+}
+
+async function emacsTimeChart() {
+ const response = await fetch(
+ "/data/2023-03-13-emacs/emacs-related-time-per-month.json"
+ );
+ const rawData = await response.json();
+ const labels = [
+ ["config_hours", "Config", "#A989C5"],
+ ["package_hours", "Emacs Packages", "#7172AD"],
+ ["orgmode_hours", "Org Mode", "#509EE3"],
+ ["sqrt_hours", "sqrtminusone.xyz", "#51528D"],
+ ["other_code_hours", "Other Code", "#F2A86F"],
+ ["misc_hours", "Misc", "#F9D45C"],
+ ];
+ const data = {
+ labels: rawData.map((d) => new Date(d["period"])),
+ datasets: labels.map(([key, label, color]) => ({
+ label,
+ data: rawData.map((d) => ({
+ period: new Date(d["period"]),
+ value: d[key],
+ })),
+ backgroundColor: color,
+ })),
+ };
+ const replaceData = {};
+ for (const [key] of labels) {
+ replaceData[`${key}_total`] = 0;
+ replaceData[`${key}_percent`] = 0;
+ }
+ let total = 0;
+ for (const rawDatum of rawData) {
+ for (const [key] of labels) {
+ replaceData[`${key}_total`] += rawDatum[key] || 0;
+ total += rawDatum[key] || 0;
+ }
+ }
+ for (const [key] of labels) {
+ replaceData[`${key}_total`] = replaceData[`${key}_total`].toFixed(1);
+ replaceData[`${key}_percent`] = (
+ (replaceData[`${key}_total`] / total) *
+ 100
+ ).toFixed(1);
+ }
+ replaceNumbers(replaceData);
+
+ const ctx = document.getElementById("chart-emacs-time");
+ new Chart(ctx, {
+ type: "bar",
+ data,
+ options: {
+ parsing: {
+ xAxisKey: "period",
+ yAxisKey: "value",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: data.labels[0],
+ stacked: true,
+ },
+ y: {
+ stacked: true,
+ title: {
+ display: true,
+ text: "Hours",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 3. Structure of Emacs usage per month",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+
+ const rawStackedData = rawData.map((d) => {
+ let sum = 0;
+ for (const [key] of labels) {
+ sum += d[key];
+ }
+ for (const [key] of labels) {
+ d[key] /= sum;
+ }
+ return d;
+ });
+ const stackedData = {
+ labels: rawData.map((d) => new Date(d["period"])),
+ datasets: labels.map(([key, label, color]) => ({
+ label,
+ data: rawStackedData.map((d) => ({
+ period: new Date(d["period"]),
+ value: d[key],
+ })),
+ backgroundColor: color,
+ })),
+ };
+
+ const stackedCtx = document.getElementById("chart-emacs-time-stacked");
+ new Chart(stackedCtx, {
+ type: "bar",
+ data: stackedData,
+ options: {
+ parsing: {
+ xAxisKey: "period",
+ yAxisKey: "value",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: data.labels[0],
+ stacked: true,
+ },
+ y: {
+ stacked: true,
+ min: 0,
+ max: 1,
+ title: {
+ display: true,
+ text: "Hours (%)",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 4. Structure of Emacs usage per month (stacked)",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+}
+
+async function configsChart() {
+ const response = await fetch("/data/2023-03-13-emacs/lengths.csv");
+ const csv = await response.text();
+ const lines = csv.split("\n");
+ const labels = lines[0].split(",");
+ const rawData = lines
+ .slice(1)
+ .reverse()
+ .map((line) => {
+ const values = line.split(",");
+ return Object.fromEntries(
+ values.map((value, i) => {
+ const key = labels[i];
+ switch (key) {
+ case "date":
+ value = new Date(value);
+ break;
+ case "commit":
+ break;
+ default:
+ value = Number(value);
+ break;
+ }
+ return [key, value];
+ })
+ );
+ });
+ const data = {
+ labels: rawData.map((d) => d.date),
+ datasets: [
+ {
+ label: "Emacs.org",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["Emacs.org"],
+ })),
+ },
+ {
+ label: "init.el",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["init.el"],
+ })),
+ },
+ ],
+ };
+
+ const numbers = {
+ emacs_org_length: rawData[rawData.length - 1]["Emacs.org"],
+ init_el_length: rawData[rawData.length - 1]["init.el"],
+ init_vim_length: rawData[rawData.length - 1]["init.vim"],
+ };
+ replaceNumbers(numbers);
+
+ const ctx = document.getElementById("chart-emacs-config-size");
+ new Chart(ctx, {
+ type: "line",
+ data,
+ options: {
+ pointRadius: 0,
+ tension: 0.1,
+ parsing: {
+ xAxisKey: "x",
+ yAxisKey: "y",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: new Date("2020-10-01"),
+ max: TODAY,
+ },
+ y: {
+ title: {
+ display: true,
+ text: "Lines of code",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 6. Emacs.org and init.el lengths",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+
+ const emacsVimData = {
+ datasets: [
+ {
+ label: "Emacs.org",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["Emacs.org"],
+ })),
+ xAxisID: "xAxis1",
+ },
+ {
+ label: "init.el",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["init.el"],
+ })),
+ xAxisID: "xAxis1",
+ },
+ {
+ label: "init.vim",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["init.vim"],
+ })),
+ xAxisID: "xAxis2",
+ },
+ ],
+ };
+ const ctxEmacsVim = document.getElementById("chart-emacs-vim-config-size");
+ new Chart(ctxEmacsVim, {
+ type: "line",
+ data: emacsVimData,
+ options: {
+ pointRadius: 0,
+ tension: 0.1,
+ parsing: {
+ xAxisKey: "x",
+ yAxisKey: "y",
+ },
+ scales: {
+ xAxis1: {
+ type: "time",
+ min: new Date("2020-10-12"),
+ max: new Date(
+ new Date("2020-10-12").getTime() + 450 * (1000 * 60 * 60 * 24)
+ ),
+ display: false,
+ },
+ xAxis2: {
+ type: "time",
+ min: new Date("2019-03-30"),
+ max: new Date(
+ new Date("2019-03-30").getTime() + 450 * (1000 * 60 * 60 * 24)
+ ),
+ title: {
+ display: true,
+ text: "Days into",
+ },
+ ticks: {
+ display: false,
+ },
+ },
+ y: {
+ title: {
+ display: true,
+ text: "Lines of code",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 7. Emacs vs. Vim config size",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+}
+
+async function packagesChart() {
+ const response = await fetch("/data/2023-03-13-emacs/emacs-packages.json");
+ const rawData = await response.json();
+
+ const data = [
+ ...rawData.slice(0, 15),
+ {
+ name: "Other",
+ hours: rawData.slice(15).reduce((acc, d) => acc + d.hours, 0),
+ },
+ ];
+
+ const replaceData = {};
+ for (const datum of data) {
+ replaceData[`${datum.name}_total`] = datum.hours.toFixed(1);
+ }
+ replaceNumbers(replaceData);
+
+ const ctx = document.getElementById("chart-emacs-packages");
+ new Chart(ctx, {
+ type: "bar",
+ data: {
+ labels: data.map((d) => d.name),
+ datasets: [
+ {
+ data,
+ },
+ ],
+ },
+ options: {
+ aspectRatio: 1.3,
+ parsing: {
+ yAxisKey: "name",
+ xAxisKey: "hours",
+ },
+ indexAxis: "y",
+ scales: {
+ x: {
+ title: {
+ display: true,
+ text: "Hours",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 8. Time spent on Emacs packages",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ legend: {
+ display: false,
+ },
+ },
+ },
+ });
+}
+
+async function emacsVimSwitchChart() {
+ const response = await fetch("/data/2023-03-13-emacs/emacs-vim-switch.json");
+ const rawData = await response.json();
+ const labels = [
+ ["config_hours", "Config", "#A989C5"],
+ ["package_hours", "Emacs Packages", "#7172AD"],
+ ["orgmode_hours", "Org Mode", "#509EE3"],
+ ["emacs_other_code_hours", "Other Code (Emacs)", "#F2A86F"],
+ ["vim_other_code_hours", "Other Code (Vim)", "#59c26e"],
+ ["misc_emacs_hours", "Misc (Emacs)", "#F9D45C"],
+ ];
+ const data = {
+ labels: rawData.map((d) => new Date(d["period"])),
+ datasets: labels.map(([key, label, color]) => ({
+ label,
+ data: rawData.map((d) => ({
+ period: new Date(d["period"]),
+ value: d[key],
+ })),
+ backgroundColor: color,
+ })),
+ };
+
+ const ctx = document.getElementById("chart-emacs-vim-switch");
+ new Chart(ctx, {
+ type: "bar",
+ data,
+ options: {
+ parsing: {
+ xAxisKey: "period",
+ yAxisKey: "value",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: data.labels[0],
+ stacked: true,
+ },
+ y: {
+ stacked: true,
+ title: {
+ display: true,
+ text: "Hours",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 5. Switch from Neovim to Emacs",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+}
+
+async function zkChart() {
+ const response = await fetch("/data/2023-03-13-emacs/roam-stats.csv");
+ const csv = await response.text();
+ const lines = csv.split("\n");
+ const labels = lines[0].split(",");
+ const rawData = lines
+ .slice(1)
+ .reverse()
+ .map((line) => {
+ const values = line.split(",");
+ return Object.fromEntries(
+ values.map((value, i) => {
+ const key = labels[i];
+ switch (key) {
+ case "date":
+ value = new Date(value);
+ break;
+ case "commit":
+ break;
+ default:
+ value = Number(value);
+ break;
+ }
+ return [key, value];
+ })
+ );
+ });
+ const data = {
+ labels: rawData.map((d) => d.date),
+ datasets: [
+ {
+ label: "Roam Nodes",
+ data: rawData.map((d) => ({
+ x: d.date,
+ y: d["nodes"],
+ })),
+ },
+ ],
+ };
+ console.log(data)
+
+ const ctx = document.getElementById("chart-roam-nodes");
+ new Chart(ctx, {
+ type: "line",
+ data,
+ options: {
+ pointRadius: 0,
+ tension: 0.1,
+ parsing: {
+ xAxisKey: "x",
+ yAxisKey: "y",
+ },
+ scales: {
+ x: {
+ type: "time",
+ min: data.labels[1],
+ max: TODAY,
+ },
+ y: {
+ title: {
+ display: true,
+ text: "Roam Nodes",
+ },
+ },
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Figure 9. Roam Nodes",
+ color: "black",
+ font: {
+ size: 15,
+ },
+ },
+ },
+ },
+ });
+}
+
+document.addEventListener(
+ "DOMContentLoaded",
+ async function () {
+ emacsChart();
+ emacsScreenTimeChart();
+ emacsTimeChart();
+ configsChart();
+ packagesChart();
+ emacsVimSwitchChart();
+ zkChart();
+ },
+ false
+);
diff --git a/static/js/chart.js b/static/js/chart.js
new file mode 100644
index 0000000..d819689
--- /dev/null
+++ b/static/js/chart.js
@@ -0,0 +1,20 @@
+/**
+ * Skipped minification because the original files appears to be already minified.
+ * Original file: /npm/chart.js@4.2.1/dist/chart.umd.js
+ *
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
+ */
+/*!
+ * Chart.js v4.2.1
+ * https://www.chartjs.org
+ * (c) 2023 Chart.js Contributors
+ * Released under the MIT License
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return jo},get Decimation(){return Uo},get Filler(){return ha},get Legend(){return fa},get SubTitle(){return ba},get Title(){return pa},get Tooltip(){return La}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=J(Math.min(it(r,a.axis,h).lo,i?s:it(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?J(Math.max(it(r,a.axis,c,!0).hi+1,i?0:it(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class bt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var xt=new bt;
+/*!
+ * @kurkle/color v0.3.0
+ * https://github.com/kurkle/color#readme
+ * (c) 2022 Jukka Kurkela
+ * Released under the MIT License
+ */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Zt{constructor(t){if(t instanceof Zt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Zt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Jt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Jt(t)?t:new Zt(t)}function te(t){return Jt(t)?t:new Zt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function be(t,e){return me(t).getPropertyValue(e)}const xe=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=xe[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function ye(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const ve=t=>Math.round(10*t)/10;function Me(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=ve(Math.min(h,a,l.maxWidth)),c=ve(Math.min(c,r,l.maxHeight)),h&&!c&&(c=ve(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=ve(Math.floor(c*s))),{width:h,height:c}}function we(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const ke=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(t){}return t}();function Se(t,e){const i=be(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function Pe(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function De(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Ce(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;h!t.skip))),"monotone"===e.cubicInterpolationMode)ai(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,ci=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),di=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,ui={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>hi(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>hi(t)?t:ci(t,.075,.3),easeOutElastic:t=>hi(t)?t:di(t,.075,.3),easeInOutElastic(t){const e=.1125;return hi(t)?t:t<.5?.5*ci(2*t,e,.45):.5+.5*di(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-ui.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*ui.easeInBounce(2*t):.5*ui.easeOutBounce(2*t-1)+.5};function fi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function pi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=fi(t,n,i),r=fi(n,o,i),l=fi(o,e,i),h=fi(a,r,i),c=fi(r,l,i);return fi(h,c,i)}const mi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function xi(t,e){const i=(""+t).match(mi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}function _i(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=+a(t)||0;return i}function yi(t){return _i(t,{top:"y",right:"x",bottom:"y",left:"x"})}function vi(t){return _i(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Mi(t){const e=yi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function wi(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(bi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:xi(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=Pe(n),n}function ki(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Pi(t,e){return Object.assign(Object.create(t),e)}function Di(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ci(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Oi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Ai(t){return"angle"===t?{between:Z,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ti({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Li(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Ai(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Ai(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;ao)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Oe(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;tn?{start:e-i,end:e}:{start:e,end:e+i}}function yo(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.startt,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=Mi(xo(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/xo(this.options))}generateTickLabels(t){ho.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?yo(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&tt.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||wa(t,e,i,s),yAlign:s}}function Sa(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=vi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:J(g,0,s.width-e.width),y:J(p,0,s.height-e.height)}}function Pa(t,e,i){const s=Mi(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Da(t){return _a([],ya(t))}function Ca(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Oa={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex{const e={before:[],lines:[],after:[]},n=Ca(i,t);_a(e.before,ya(Aa(n,"beforeLabel",this,t))),_a(e.lines,Aa(n,"label",this,t)),_a(e.after,ya(Aa(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Da(Aa(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Aa(i,"beforeFooter",this,t),n=Aa(i,"footer",this,t),o=Aa(i,"afterFooter",this,t);let a=[];return a=_a(a,ya(s)),a=_a(a,ya(n)),a=_a(a,ya(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a