diff --git a/.github/workflows/compile-typescript.yml b/.github/workflows/compile-typescript.yml new file mode 100644 index 00000000000..a2006e7f2f7 --- /dev/null +++ b/.github/workflows/compile-typescript.yml @@ -0,0 +1,28 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +name: Compile TypeScript +on: + pull_request: + push: +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout Commit + uses: actions/checkout@v2 + with: + ref: ${{ github.sha }} + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: ">=17.5.0" + - name: Install Packages + run: | + npm ci + - name: Compile gather_stats.ts + run: | + npx tsc --noEmit -p src_gather/tsconfig.json + - name: Compile status_chart.ts + run: | + npx tsc -p src/tsconfig.json diff --git a/.gitignore b/.gitignore index d29aea996b6..4f377a92e46 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,7 @@ .vscode/ # Ignore the TypeScript compiler's output. -/built/ +/built/gather_stats.js # Ignore installed packages. /node_modules/ diff --git a/.vscode/settings.json b/.vscode/settings.json index 08d3e2e2251..53af3b40192 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,4 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.trimTrailingWhitespace": true, - "terminal.integrated.cwd": "${workspaceFolder}", } diff --git a/README.md b/README.md index 79d3aef57a4..34e678e5692 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,11 @@ This branch generates the STL's [Status Chart][]. -# Getting Started: Repo +# Getting Started -1. Install [Node.js][] 17.3.1 or newer. +## Repo + +1. Install [Node.js][] 17.5.0 or newer. + You can accept all of the installer's default options. 2. Open a new Command Prompt. + You can run `node --version` to verify that Node.js was successfully installed. @@ -25,14 +27,24 @@ This branch generates the STL's [Status Chart][]. + If you created your fork after the Status Chart was added, this will update the `gh-pages` branch in your fork. 9. `git checkout -b my-pages --track %GH_USER%/gh-pages` + This will create a branch named `my-pages`; you can choose a different name. - + You can run `git branch -vv` to see what this has achieved. The remote branches (in the official repo and your - fork) need to be named `gh-pages` in order to be published via GitHub Pages. Your local `gh-pages` branch tracks - the official repo, while your local `my-pages` branch tracks your fork. + + You can run `git branch -vv` to see what this has achieved. By default, the remote branches (in the official repo + and your fork) need to be named `gh-pages` in order to be published via GitHub Pages. Your local `gh-pages` branch + tracks the official repo, while your local `my-pages` branch tracks your fork. 10. `npm ci` + This will download the dependencies listed in `package.json` and locally install them to a `node_modules` subdirectory. -# Getting Started: Personal Access Token +## GitHub Pages + +Enable GitHub Pages for your fork: + +1. Click the Settings tab. +2. Click the Pages vertical tab. +3. Set the source branch to `gh-pages`. + + The default folder `/ (root)` is correct. +4. Click Save. + +## Personal Access Token GitHub's GraphQL API requires authentication: @@ -47,14 +59,14 @@ GitHub's GraphQL API requires authentication: ``` 7. Replace `ghp_abcdABCD0123wxyzWXYZ6789` with the personal access token that you just generated. + The token is unique, so it's used without your username. - + The [prefix](https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/) will be `ghp_`. + + The [prefix][token-formats] will be `ghp_`. 8. Save the `.env` file. 9. Close the page displaying your personal access token. 10. Clear your clipboard. 11. Verify that `git status` reports "nothing to commit, working tree clean". + This indicates that `.env` is being properly ignored. -**The `.env` file now contains a password-equivalent secret - treat it with respect.** +**The `.env` file now contains a secret - treat it with respect.** # Updating The Chart @@ -63,29 +75,37 @@ it'll update `package.json` and `package-lock.json` accordingly. `git add` and ` + `npm update` won't install new major versions. To do that, run `npm install [package1]@latest [package2]@latest [...]` for all of the packages listed as `dependencies` in `package.json` (e.g. `@octokit/graphql@latest dotenv@latest`). -* Update `weekly_table.js` by adding a new row. + + Ensure that the `importmap` in `index.html` remains synchronized to the same versions. +* Update `weekly_table.ts` by adding a new row. + We update it every Friday, although nothing bad will happen if we skip a week or update it on a different day. + `vso` is the number of Active work items under the STL's Area Path. - + `libcxx` is the number of skipped tests in `tests/libcxx/skipped_tests.txt`, excluding "Missing STL Features". + + `libcxx` is the number of skipped/failing tests in `tests/libcxx/expected_results.txt`, excluding + "Missing STL Features". To determine this number: 1. Copy the file's contents. 2. Delete the "Missing STL Features" section. 3. Sort the remaining lines. 4. Find the last occurrence of `#`, so you can delete all of the empty lines and comments. 5. Count the remaining lines. -* Run `npx tsc && node built/gather_stats.js` to regenerate `daily_table.js` and `monthly_table.js`. +* Run `npm run gather` to compile `gather_stats.ts` and then regenerate `daily_table.ts` and `monthly_table.ts`. + This regenerates the files from scratch, but the diff should be small because the data is stable and the process is deterministic. + It's possible for previous values to change, e.g. if an issue is relabeled, but dramatic changes without corresponding generator changes should be investigated. + Automated updates (controlled by `.github/workflows/update-status-chart.yml` in the main repo) will regenerate these files, so you generally don't need to manually update them in PRs. -* Open `index.html` to preview your changes locally. - + If you've changed how the Status Chart uses Chart.js, open F12 Developer Tools, click on the Console tab, and +* Run `npm run make` to compile `status_chart.ts` and then bundle it and the tables into `built/status_chart.mjs`. + + Automated updates will also regenerate this file. However, you'll need to manually update + `built/status_chart.mjs` if you're making synchronized changes to `index.html`. +* Run `npm run view` to preview your changes locally. + + Directly opening `index.html` won't work due to how JavaScript modules behave. + + If you've changed how the Status Chart uses [Chart.js][], open F12 Developer Tools, click on the Console tab, and refresh the page to verify that no warnings/errors are displayed. * After pushing your `my-pages` branch, wait a moment for GitHub Pages to publish, then you can view your changes at `https://%GH_USER%.github.io/STL/`. + When creating a PR, it's helpful to include that as a "live preview" link. +* If you're manually updating generated files, remember to merge `gh-pages` into your `my-pages` branch and regenerate + the files before completing your PR. # License @@ -93,6 +113,8 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +[Chart.js]: https://www.chartjs.org/ [Node.js]: https://nodejs.org/en/ [Personal Access Tokens]: https://github.com/settings/tokens [Status Chart]: https://microsoft.github.io/STL/ +[token-formats]: https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/ diff --git a/built/status_chart.mjs b/built/status_chart.mjs new file mode 100644 index 00000000000..b6a641bc997 --- /dev/null +++ b/built/status_chart.mjs @@ -0,0 +1 @@ +import{Chart as o,registerables as B}from"chart.js";import"chartjs-adapter-luxon";var l=[{date:"2019-09-05",merged:3,pr:1,cxx20:60,cxx23:null,lwg:7,issue:5,bug:null,avg_age:.23,avg_wait:.23,sum_age:.01,sum_wait:.01},{date:"2019-09-06",merged:6,pr:1,cxx20:60,cxx23:null,lwg:7,issue:6,bug:null,avg_age:.03,avg_wait:.03,sum_age:0,sum_wait:0},{date:"2019-09-07",merged:6,pr:2,cxx20:60,cxx23:null,lwg:7,issue:6,bug:null,avg_age:.84,avg_wait:.64,sum_age:.06,sum_wait:.04},{date:"2019-09-08",merged:6,pr:2,cxx20:60,cxx23:null,lwg:7,issue:6,bug:null,avg_age:1.84,avg_wait:1.64,sum_age:.12,sum_wait:.11},{date:"2019-09-09",merged:7,pr:2,cxx20:60,cxx23:null,lwg:7,issue:9,bug:null,avg_age:1.65,avg_wait:1.45,sum_age:.11,sum_wait:.1},{date:"2019-09-10",merged:9,pr:1,cxx20:60,cxx23:null,lwg:6,issue:10,bug:null,avg_age:4.03,avg_wait:3.62,sum_age:.13,sum_wait:.12},{date:"2019-09-11",merged:11,pr:3,cxx20:60,cxx23:null,lwg:6,issue:10,bug:null,avg_age:.19,avg_wait:.19,sum_age:.02,sum_wait:.02},{date:"2019-09-12",merged:12,pr:2,cxx20:60,cxx23:null,lwg:6,issue:11,bug:null,avg_age:1.2,avg_wait:1.2,sum_age:.08,sum_wait:.08},{date:"2019-09-13",merged:14,pr:0,cxx20:60,cxx23:null,lwg:5,issue:11,bug:null,avg_age:0,avg_wait:0,sum_age:0,sum_wait:0},{date:"2019-09-14",merged:14,pr:1,cxx20:60,cxx23:null,lwg:5,issue:11,bug:null,avg_age:.73,avg_wait:.73,sum_age:.02,sum_wait:.02},{date:"2019-09-15",merged:15,pr:0,cxx20:60,cxx23:null,lwg:5,issue:11,bug:null,avg_age:0,avg_wait:0,sum_age:0,sum_wait:0},{date:"2019-09-16",merged:15,pr:0,cxx20:60,cxx23:null,lwg:5,issue:11,bug:0,avg_age:0,avg_wait:0,sum_age:0,sum_wait:0},{date:"2019-09-17",merged:20,pr:2,cxx20:60,cxx23:null,lwg:5,issue:16,bug:1,avg_age:.02,avg_wait:.02,sum_age:0,sum_wait:0},{date:"2019-09-18",merged:20,pr:2,cxx20:60,cxx23:null,lwg:5,issue:18,bug:1,avg_age:.96,avg_wait:.65,sum_age:.06,sum_wait:.04},{date:"2019-09-19",merged:20,pr:3,cxx20:60,cxx23:null,lwg:5,issue:18,bug:1,avg_age:1.4,avg_wait:1.19,sum_age:.14,sum_wait:.12},{date:"2019-09-20",merged:21,pr:4,cxx20:60,cxx23:null,lwg:5,issue:18,bug:1,avg_age:1.66,avg_wait:1.5,sum_age:.22,sum_wait:.2},{date:"2019-09-21",merged:21,pr:5,cxx20:60,cxx23:null,lwg:5,issue:18,bug:1,avg_age:2.15,avg_wait:2.02,sum_age:.36,sum_wait:.34},{date:"2019-09-22",merged:21,pr:5,cxx20:60,cxx23:null,lwg:5,issue:19,bug:1,avg_age:3.15,avg_wait:2.86,sum_age:.52,sum_wait:.48},{date:"2019-09-23",merged:22,pr:7,cxx20:60,cxx23:null,lwg:5,issue:19,bug:1,avg_age:2.74,avg_wait:2.39,sum_age:.64,sum_wait:.56},{date:"2019-09-24",merged:26,pr:5,cxx20:60,cxx23:null,lwg:5,issue:18,bug:1,avg_age:2.55,avg_wait:.18,sum_age:.42,sum_wait:.03},{date:"2019-09-25",merged:28.97,pr:5,cxx20:59,cxx23:null,lwg:5,issue:18,bug:1,avg_age:2.03,avg_wait:1.03,sum_age:.34,sum_wait:.17},{date:"2019-09-26",merged:32.78,pr:1,cxx20:56,cxx23:null,lwg:5,issue:20,bug:2,avg_age:2.2,avg_wait:2.2,sum_age:.07,sum_wait:.07},{date:"2019-09-27",merged:32.48,pr:2,cxx20:56,cxx23:null,lwg:5,issue:23,bug:2,avg_age:2.03,avg_wait:2.03,sum_age:.14,sum_wait:.14},{date:"2019-09-28",merged:32.18,pr:2,cxx20:56,cxx23:null,lwg:5,issue:23,bug:2,avg_age:3.03,avg_wait:3.03,sum_age:.2,sum_wait:.2},{date:"2019-09-29",merged:31.87,pr:2,cxx20:56,cxx23:null,lwg:5,issue:24,bug:2,avg_age:4.03,avg_wait:4.03,sum_age:.27,sum_wait:.27},{date:"2019-09-30",merged:31.51,pr:5,cxx20:56,cxx23:null,lwg:6,issue:25,bug:2,avg_age:2.15,avg_wait:2.15,sum_age:.36,sum_wait:.36},{date:"2019-10-01",merged:34.04,pr:2,cxx20:56,cxx23:null,lwg:5,issue:24,bug:2,avg_age:6.03,avg_wait:6.03,sum_age:.4,sum_wait:.4},{date:"2019-10-02",merged:34.46,pr:2,cxx20:56,cxx23:null,lwg:5,issue:25,bug:2,avg_age:7.03,avg_wait:7.03,sum_age:.47,sum_wait:.47},{date:"2019-10-03",merged:34.83,pr:3,cxx20:57,cxx23:null,lwg:5,issue:24,bug:2,avg_age:5.39,avg_wait:3.22,sum_age:.54,sum_wait:.32},{date:"2019-10-04",merged:34.13,pr:4,cxx20:57,cxx23:null,lwg:5,issue:28,bug:3,avg_age:4.81,avg_wait:3.08,sum_age:.64,sum_wait:.41},{date:"2019-10-05",merged:33.42,pr:4,cxx20:57,cxx23:null,lwg:5,issue:28,bug:3,avg_age:5.81,avg_wait:4.08,sum_age:.77,sum_wait:.54},{date:"2019-10-06",merged:32.67,pr:4,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:6.81,avg_wait:5.08,sum_age:.91,sum_wait:.68},{date:"2019-10-07",merged:31.81,pr:4,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:7.81,avg_wait:5.36,sum_age:1.04,sum_wait:.71},{date:"2019-10-08",merged:31.81,pr:3,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:10.39,avg_wait:8.08,sum_age:1.04,sum_wait:.81},{date:"2019-10-09",merged:31.81,pr:3,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:11.39,avg_wait:9.08,sum_age:1.14,sum_wait:.91},{date:"2019-10-10",merged:30.79,pr:4,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:9.33,avg_wait:7.6,sum_age:1.24,sum_wait:1.01},{date:"2019-10-11",merged:31.74,pr:3,cxx20:57,cxx23:null,lwg:5,issue:30,bug:3,avg_age:13.39,avg_wait:11.08,sum_age:1.34,sum_wait:1.11},{date:"2019-10-12",merged:30.69,pr:3,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:14.39,avg_wait:12.08,sum_age:1.44,sum_wait:1.21},{date:"2019-10-13",merged:29.61,pr:3,cxx20:57,cxx23:null,lwg:5,issue:30,bug:3,avg_age:15.39,avg_wait:13.08,sum_age:1.54,sum_wait:1.31},{date:"2019-10-14",merged:28.44,pr:3,cxx20:57,cxx23:null,lwg:5,issue:30,bug:3,avg_age:16.39,avg_wait:14.08,sum_age:1.64,sum_wait:1.41},{date:"2019-10-15",merged:29.15,pr:4,cxx20:57,cxx23:null,lwg:5,issue:29,bug:3,avg_age:13.11,avg_wait:11.36,sum_age:1.75,sum_wait:1.52},{date:"2019-10-16",merged:27.84,pr:4,cxx20:57,cxx23:null,lwg:5,issue:31,bug:3,avg_age:14.11,avg_wait:9.03,sum_age:1.88,sum_wait:1.2},{date:"2019-10-17",merged:27.49,pr:4,cxx20:56,cxx23:null,lwg:5,issue:44,bug:3,avg_age:14.7,avg_wait:9.41,sum_age:1.96,sum_wait:1.25},{date:"2019-10-18",merged:26.14,pr:6,cxx20:56,cxx23:null,lwg:5,issue:44,bug:3,avg_age:10.69,avg_wait:4.45,sum_age:2.14,sum_wait:.89},{date:"2019-10-19",merged:24.8,pr:7,cxx20:56,cxx23:null,lwg:5,issue:45,bug:3,avg_age:10.08,avg_wait:4.72,sum_age:2.35,sum_wait:1.1},{date:"2019-10-20",merged:23.52,pr:7,cxx20:56,cxx23:null,lwg:5,issue:44,bug:3,avg_age:11.08,avg_wait:5.72,sum_age:2.59,sum_wait:1.34},{date:"2019-10-21",merged:23.29,pr:6,cxx20:56,cxx23:null,lwg:5,issue:48,bug:3,avg_age:13.54,avg_wait:7.29,sum_age:2.71,sum_wait:1.46},{date:"2019-10-22",merged:26.04,pr:3,cxx20:54,cxx23:null,lwg:3,issue:48,bug:3,avg_age:18.14,avg_wait:10.89,sum_age:1.81,sum_wait:1.09},{date:"2019-10-23",merged:24.82,pr:3,cxx20:54,cxx23:null,lwg:3,issue:48,bug:3,avg_age:19.14,avg_wait:9.92,sum_age:1.91,sum_wait:.99},{date:"2019-10-24",merged:24.62,pr:3,cxx20:54,cxx23:null,lwg:3,issue:63,bug:5,avg_age:20.14,avg_wait:10.92,sum_age:2.01,sum_wait:1.09},{date:"2019-10-25",merged:25.43,pr:3,cxx20:53,cxx23:null,lwg:3,issue:62,bug:5,avg_age:20.2,avg_wait:11.24,sum_age:2.02,sum_wait:1.12},{date:"2019-10-26",merged:24.28,pr:5,cxx20:53,cxx23:null,lwg:3,issue:62,bug:5,avg_age:12.81,avg_wait:7.43,sum_age:2.14,sum_wait:1.24},{date:"2019-10-27",merged:25.24,pr:3,cxx20:53,cxx23:null,lwg:3,issue:61,bug:5,avg_age:21.69,avg_wait:12.53,sum_age:2.17,sum_wait:1.25},{date:"2019-10-28",merged:26.33,pr:5,cxx20:53,cxx23:null,lwg:3,issue:60,bug:5,avg_age:13.75,avg_wait:7.31,sum_age:2.29,sum_wait:1.22},{date:"2019-10-29",merged:26.37,pr:5,cxx20:53,cxx23:null,lwg:3,issue:62,bug:7,avg_age:14.75,avg_wait:8.17,sum_age:2.46,sum_wait:1.36},{date:"2019-10-30",merged:27.39,pr:5,cxx20:53,cxx23:null,lwg:3,issue:63,bug:7,avg_age:15.44,avg_wait:8.92,sum_age:2.57,sum_wait:1.49},{date:"2019-10-31",merged:28.4,pr:6,cxx20:53,cxx23:null,lwg:3,issue:63,bug:7,avg_age:13.74,avg_wait:8.3,sum_age:2.75,sum_wait:1.66},{date:"2019-11-01",merged:29.35,pr:5,cxx20:52,cxx23:null,lwg:3,issue:67,bug:8,avg_age:16.34,avg_wait:8.91,sum_age:2.72,sum_wait:1.48},{date:"2019-11-02",merged:28.33,pr:5,cxx20:52,cxx23:null,lwg:3,issue:67,bug:8,avg_age:17.34,avg_wait:9.91,sum_age:2.89,sum_wait:1.65},{date:"2019-11-03",merged:27.37,pr:7,cxx20:52,cxx23:null,lwg:3,issue:67,bug:8,avg_age:13.26,avg_wait:7.93,sum_age:3.09,sum_wait:1.85},{date:"2019-11-04",merged:27.56,pr:8,cxx20:52,cxx23:null,lwg:3,issue:71,bug:9,avg_age:12.43,avg_wait:7.36,sum_age:3.31,sum_wait:1.96},{date:"2019-11-05",merged:28.86,pr:9,cxx20:52,cxx23:null,lwg:3,issue:73,bug:11,avg_age:11.59,avg_wait:7.11,sum_age:3.48,sum_wait:2.13},{date:"2019-11-06",merged:29.3,pr:9,cxx20:52,cxx23:null,lwg:3,issue:74,bug:12,avg_age:12.47,avg_wait:7.99,sum_age:3.74,sum_wait:2.4},{date:"2019-11-07",merged:31.7,pr:6,cxx20:51,cxx23:null,lwg:3,issue:75,bug:12,avg_age:18.57,avg_wait:11.97,sum_age:3.71,sum_wait:2.39},{date:"2019-11-08",merged:31.1,pr:6,cxx20:51,cxx23:null,lwg:3,issue:88,bug:14,avg_age:19.57,avg_wait:12.97,sum_age:3.91,sum_wait:2.59},{date:"2019-11-09",merged:30.5,pr:7,cxx20:51,cxx23:null,lwg:3,issue:87,bug:14,avg_age:17.71,avg_wait:12.05,sum_age:4.13,sum_wait:2.81},{date:"2019-11-10",merged:29.93,pr:8,cxx20:51,cxx23:null,lwg:3,issue:88,bug:15,avg_age:16.43,avg_wait:11.46,sum_age:4.38,sum_wait:3.06},{date:"2019-11-11",merged:33.39,pr:8,cxx20:49,cxx23:null,lwg:3,issue:87,bug:14,avg_age:16.12,avg_wait:11.48,sum_age:4.3,sum_wait:3.06},{date:"2019-11-12",merged:33.75,pr:6,cxx20:49,cxx23:null,lwg:3,issue:87,bug:14,avg_age:22.48,avg_wait:16.15,sum_age:4.5,sum_wait:3.23},{date:"2019-11-13",merged:33.14,pr:6,cxx20:49,cxx23:null,lwg:3,issue:90,bug:16,avg_age:23.48,avg_wait:17.15,sum_age:4.7,sum_wait:3.43},{date:"2019-11-14",merged:32.45,pr:6,cxx20:49,cxx23:null,lwg:3,issue:95,bug:17,avg_age:24.48,avg_wait:18.15,sum_age:4.9,sum_wait:3.63},{date:"2019-11-15",merged:34.7,pr:5,cxx20:49,cxx23:null,lwg:3,issue:95,bug:17,avg_age:29.76,avg_wait:20.11,sum_age:4.96,sum_wait:3.35},{date:"2019-11-16",merged:33.91,pr:6,cxx20:49,cxx23:null,lwg:3,issue:96,bug:17,avg_age:25.76,avg_wait:17.66,sum_age:5.15,sum_wait:3.53},{date:"2019-11-17",merged:33.05,pr:6,cxx20:49,cxx23:null,lwg:3,issue:96,bug:17,avg_age:26.76,avg_wait:18.66,sum_age:5.35,sum_wait:3.73},{date:"2019-11-18",merged:32.15,pr:8,cxx20:49,cxx23:null,lwg:3,issue:99,bug:17,avg_age:20.91,avg_wait:14.83,sum_age:5.58,sum_wait:3.96},{date:"2019-11-19",merged:33.23,pr:7,cxx20:46,cxx23:null,lwg:3,issue:106,bug:20,avg_age:24.33,avg_wait:17.29,sum_age:5.68,sum_wait:4.03},{date:"2019-11-20",merged:33.24,pr:6,cxx20:46,cxx23:null,lwg:3,issue:108,bug:22,avg_age:29.37,avg_wait:21.02,sum_age:5.87,sum_wait:4.2},{date:"2019-11-21",merged:32.21,pr:8,cxx20:46,cxx23:null,lwg:3,issue:108,bug:22,avg_age:22.93,avg_wait:16.67,sum_age:6.12,sum_wait:4.45},{date:"2019-11-22",merged:31.11,pr:8,cxx20:46,cxx23:null,lwg:3,issue:109,bug:23,avg_age:23.93,avg_wait:17.67,sum_age:6.38,sum_wait:4.71},{date:"2019-11-23",merged:30.01,pr:8,cxx20:46,cxx23:null,lwg:3,issue:109,bug:23,avg_age:24.93,avg_wait:18.67,sum_age:6.65,sum_wait:4.98},{date:"2019-11-24",merged:28.92,pr:8,cxx20:46,cxx23:null,lwg:3,issue:109,bug:23,avg_age:25.93,avg_wait:19.67,sum_age:6.92,sum_wait:5.25},{date:"2019-11-25",merged:27.84,pr:9,cxx20:46,cxx23:null,lwg:3,issue:111,bug:23,avg_age:23.95,avg_wait:18.38,sum_age:7.18,sum_wait:5.51},{date:"2019-11-26",merged:26.69,pr:10,cxx20:50,cxx23:null,lwg:7,issue:113,bug:23,avg_age:22.53,avg_wait:17.52,sum_age:7.51,sum_wait:5.84},{date:"2019-11-27",merged:25.49,pr:10,cxx20:50,cxx23:null,lwg:7,issue:114,bug:23,avg_age:23.53,avg_wait:18.52,sum_age:7.84,sum_wait:6.17},{date:"2019-11-28",merged:24.19,pr:11,cxx20:50,cxx23:null,lwg:7,issue:114,bug:23,avg_age:22.35,avg_wait:17.8,sum_age:8.2,sum_wait:6.53},{date:"2019-11-29",merged:22.89,pr:11,cxx20:50,cxx23:null,lwg:7,issue:115,bug:24,avg_age:23.35,avg_wait:18.8,sum_age:8.56,sum_wait:6.89},{date:"2019-11-30",merged:21.61,pr:11,cxx20:50,cxx23:null,lwg:7,issue:115,bug:24,avg_age:24.35,avg_wait:19.8,sum_age:8.93,sum_wait:7.26},{date:"2019-12-01",merged:20.4,pr:11,cxx20:50,cxx23:null,lwg:7,issue:115,bug:24,avg_age:25.35,avg_wait:20.8,sum_age:9.3,sum_wait:7.63},{date:"2019-12-02",merged:23.14,pr:9,cxx20:49,cxx23:null,lwg:7,issue:118,bug:24,avg_age:27.4,avg_wait:21.91,sum_age:8.22,sum_wait:6.57},{date:"2019-12-03",merged:21.85,pr:9,cxx20:49,cxx23:null,lwg:7,issue:119,bug:24,avg_age:28.4,avg_wait:22.91,sum_age:8.52,sum_wait:6.87},{date:"2019-12-04",merged:24.64,pr:8,cxx20:47,cxx23:null,lwg:4,issue:121,bug:24,avg_age:31.38,avg_wait:25.21,sum_age:8.37,sum_wait:6.72},{date:"2019-12-05",merged:23.45,pr:8,cxx20:47,cxx23:null,lwg:4,issue:122,bug:24,avg_age:32.38,avg_wait:26.21,sum_age:8.63,sum_wait:6.99},{date:"2019-12-06",merged:24.2,pr:9,cxx20:47,cxx23:null,lwg:4,issue:120,bug:22,avg_age:29.74,avg_wait:24.22,sum_age:8.92,sum_wait:7.27},{date:"2019-12-07",merged:24.02,pr:9,cxx20:47,cxx23:null,lwg:4,issue:119,bug:22,avg_age:29.45,avg_wait:23.93,sum_age:8.83,sum_wait:7.18},{date:"2019-12-08",merged:22.93,pr:9,cxx20:47,cxx23:null,lwg:4,issue:119,bug:22,avg_age:30.45,avg_wait:24.93,sum_age:9.13,sum_wait:7.48},{date:"2019-12-09",merged:22.81,pr:10,cxx20:47,cxx23:null,lwg:4,issue:120,bug:23,avg_age:28.15,avg_wait:19.32,sum_age:9.38,sum_wait:6.44},{date:"2019-12-10",merged:21.77,pr:18,cxx20:47,cxx23:null,lwg:4,issue:122,bug:26,avg_age:16.29,avg_wait:11.27,sum_age:9.77,sum_wait:6.76},{date:"2019-12-11",merged:27.8,pr:12,cxx20:47,cxx23:null,lwg:4,issue:120,bug:27,avg_age:25.19,avg_wait:17.44,sum_age:10.08,sum_wait:6.98},{date:"2019-12-12",merged:26.9,pr:13,cxx20:47,cxx23:null,lwg:4,issue:120,bug:27,avg_age:24.25,avg_wait:17.09,sum_age:10.51,sum_wait:7.41},{date:"2019-12-13",merged:28,pr:13,cxx20:47,cxx23:null,lwg:4,issue:120,bug:26,avg_age:25.08,avg_wait:17.8,sum_age:10.87,sum_wait:7.71},{date:"2019-12-14",merged:27.12,pr:15,cxx20:47,cxx23:null,lwg:4,issue:121,bug:27,avg_age:22.7,avg_wait:16.38,sum_age:11.35,sum_wait:8.19},{date:"2019-12-15",merged:26.31,pr:15,cxx20:47,cxx23:null,lwg:4,issue:121,bug:27,avg_age:23.7,avg_wait:17.38,sum_age:11.85,sum_wait:8.69},{date:"2019-12-16",merged:28.58,pr:13,cxx20:47,cxx23:null,lwg:4,issue:121,bug:27,avg_age:27.32,avg_wait:19.65,sum_age:11.84,sum_wait:8.52},{date:"2019-12-17",merged:28.93,pr:14,cxx20:47,cxx23:null,lwg:4,issue:123,bug:26,avg_age:26.32,avg_wait:18.9,sum_age:12.28,sum_wait:8.82},{date:"2019-12-18",merged:28.38,pr:16,cxx20:47,cxx23:null,lwg:4,issue:123,bug:26,avg_age:23.97,avg_wait:17.48,sum_age:12.79,sum_wait:9.32},{date:"2019-12-19",merged:27.83,pr:18,cxx20:47,cxx23:null,lwg:4,issue:123,bug:26,avg_age:22.25,avg_wait:16.46,sum_age:13.35,sum_wait:9.88},{date:"2019-12-20",merged:28.28,pr:18,cxx20:47,cxx23:null,lwg:4,issue:123,bug:26,avg_age:23.22,avg_wait:17.43,sum_age:13.93,sum_wait:10.46},{date:"2019-12-21",merged:27.74,pr:19,cxx20:47,cxx23:null,lwg:4,issue:124,bug:26,avg_age:22.99,avg_wait:17.48,sum_age:14.56,sum_wait:11.07},{date:"2019-12-22",merged:27.36,pr:20,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:22.81,avg_wait:17.59,sum_age:15.21,sum_wait:11.72},{date:"2019-12-23",merged:26.86,pr:20,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:23.81,avg_wait:18.59,sum_age:15.88,sum_wait:12.39},{date:"2019-12-24",merged:26.34,pr:20,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:24.81,avg_wait:19.59,sum_age:16.54,sum_wait:13.06},{date:"2019-12-25",merged:25.67,pr:20,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:25.81,avg_wait:20.59,sum_age:17.21,sum_wait:13.72},{date:"2019-12-26",merged:25.1,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:25.57,avg_wait:20.59,sum_age:17.9,sum_wait:14.42},{date:"2019-12-27",merged:24.4,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:26.57,avg_wait:21.59,sum_age:18.6,sum_wait:15.12},{date:"2019-12-28",merged:23.7,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:27.57,avg_wait:22.59,sum_age:19.3,sum_wait:15.82},{date:"2019-12-29",merged:23.09,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:28.57,avg_wait:23.59,sum_age:20,sum_wait:16.52},{date:"2019-12-30",merged:22.46,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:29.57,avg_wait:24.59,sum_age:20.7,sum_wait:17.22},{date:"2019-12-31",merged:21.76,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:30.57,avg_wait:25.59,sum_age:21.4,sum_wait:17.92},{date:"2020-01-01",merged:20.81,pr:21,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:31.57,avg_wait:26.59,sum_age:22.1,sum_wait:18.62},{date:"2020-01-02",merged:19.83,pr:22,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:31.11,avg_wait:26.35,sum_age:22.81,sum_wait:19.33},{date:"2020-01-03",merged:18.78,pr:22,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:32.11,avg_wait:27.35,sum_age:23.55,sum_wait:20.06},{date:"2020-01-04",merged:17.73,pr:23,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:31.67,avg_wait:27.13,sum_age:24.28,sum_wait:20.8},{date:"2020-01-05",merged:16.66,pr:23,cxx20:47,cxx23:null,lwg:4,issue:125,bug:26,avg_age:32.67,avg_wait:28.13,sum_age:25.05,sum_wait:21.56},{date:"2020-01-06",merged:17.45,pr:21,cxx20:47,cxx23:null,lwg:4,issue:126,bug:26,avg_age:35.93,avg_wait:30.04,sum_age:25.15,sum_wait:21.03},{date:"2020-01-07",merged:16.2,pr:22,cxx20:47,cxx23:null,lwg:4,issue:126,bug:26,avg_age:35.26,avg_wait:29.64,sum_age:25.86,sum_wait:21.74},{date:"2020-01-08",merged:16.95,pr:20,cxx20:46,cxx23:null,lwg:4,issue:128,bug:28,avg_age:37.92,avg_wait:31.76,sum_age:25.28,sum_wait:21.18},{date:"2020-01-09",merged:18.66,pr:19,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:37.81,avg_wait:31.33,sum_age:23.95,sum_wait:19.84},{date:"2020-01-10",merged:17.36,pr:19,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:38.81,avg_wait:32.33,sum_age:24.58,sum_wait:20.48},{date:"2020-01-11",merged:16.1,pr:19,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:39.81,avg_wait:33.33,sum_age:25.21,sum_wait:21.11},{date:"2020-01-12",merged:15,pr:19,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:40.81,avg_wait:34.33,sum_age:25.85,sum_wait:21.74},{date:"2020-01-13",merged:13.92,pr:19,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:41.81,avg_wait:35.33,sum_age:26.48,sum_wait:22.38},{date:"2020-01-14",merged:13.02,pr:21,cxx20:44,cxx23:null,lwg:4,issue:128,bug:27,avg_age:38.77,avg_wait:32.9,sum_age:27.14,sum_wait:23.03},{date:"2020-01-15",merged:12.15,pr:24,cxx20:44,cxx23:null,lwg:4,issue:129,bug:27,avg_age:34.82,avg_wait:29.68,sum_age:27.86,sum_wait:23.74},{date:"2020-01-16",merged:11.4,pr:24,cxx20:44,cxx23:null,lwg:4,issue:129,bug:27,avg_age:35.82,avg_wait:29.39,sum_age:28.66,sum_wait:23.51},{date:"2020-01-17",merged:12.65,pr:22,cxx20:43,cxx23:null,lwg:4,issue:131,bug:27,avg_age:34.93,avg_wait:32.99,sum_age:25.62,sum_wait:24.2},{date:"2020-01-18",merged:11.9,pr:22,cxx20:43,cxx23:null,lwg:4,issue:131,bug:27,avg_age:35.93,avg_wait:33.99,sum_age:26.35,sum_wait:24.93},{date:"2020-01-19",merged:12.2,pr:21,cxx20:43,cxx23:null,lwg:4,issue:131,bug:27,avg_age:38.48,avg_wait:36.46,sum_age:26.94,sum_wait:25.52},{date:"2020-01-20",merged:11.6,pr:22,cxx20:43,cxx23:null,lwg:4,issue:131,bug:27,avg_age:37.7,avg_wait:35.76,sum_age:27.64,sum_wait:26.23},{date:"2020-01-21",merged:11.25,pr:25,cxx20:43,cxx23:null,lwg:4,issue:133,bug:27,avg_age:34.1,avg_wait:28.9,sum_age:28.41,sum_wait:24.08},{date:"2020-01-22",merged:11.93,pr:26,cxx20:41,cxx23:null,lwg:4,issue:141,bug:32,avg_age:33.47,avg_wait:27.03,sum_age:29.01,sum_wait:23.42},{date:"2020-01-23",merged:15.68,pr:24,cxx20:40,cxx23:null,lwg:4,issue:142,bug:32,avg_age:34.9,avg_wait:27.92,sum_age:27.92,sum_wait:22.34},{date:"2020-01-24",merged:24.43,pr:21,cxx20:39,cxx23:null,lwg:4,issue:139,bug:31,avg_age:35.62,avg_wait:28.85,sum_age:24.93,sum_wait:20.2},{date:"2020-01-25",merged:25.2,pr:21,cxx20:39,cxx23:null,lwg:4,issue:139,bug:31,avg_age:36.59,avg_wait:29.83,sum_age:25.62,sum_wait:20.88},{date:"2020-01-26",merged:25.07,pr:22,cxx20:39,cxx23:null,lwg:4,issue:139,bug:31,avg_age:35.91,avg_wait:29.4,sum_age:26.34,sum_wait:21.56},{date:"2020-01-27",merged:27.92,pr:21,cxx20:39,cxx23:null,lwg:4,issue:142,bug:33,avg_age:37.94,avg_wait:30.88,sum_age:26.56,sum_wait:21.61},{date:"2020-01-28",merged:28.75,pr:20,cxx20:39,cxx23:null,lwg:4,issue:145,bug:33,avg_age:40.12,avg_wait:33.12,sum_age:26.75,sum_wait:22.08},{date:"2020-01-29",merged:29.48,pr:19,cxx20:39,cxx23:null,lwg:4,issue:145,bug:34,avg_age:40.8,avg_wait:35.32,sum_age:25.84,sum_wait:22.37},{date:"2020-01-30",merged:30.13,pr:18,cxx20:39,cxx23:null,lwg:4,issue:144,bug:33,avg_age:44.05,avg_wait:38.09,sum_age:26.43,sum_wait:22.86},{date:"2020-01-31",merged:30.78,pr:17,cxx20:38,cxx23:null,lwg:4,issue:143,bug:31,avg_age:47.46,avg_wait:41.33,sum_age:26.89,sum_wait:23.42},{date:"2020-02-01",merged:31.43,pr:16,cxx20:37,cxx23:null,lwg:4,issue:143,bug:31,avg_age:51.21,avg_wait:44.77,sum_age:27.31,sum_wait:23.88},{date:"2020-02-02",merged:31.08,pr:16,cxx20:37,cxx23:null,lwg:4,issue:143,bug:31,avg_age:52.21,avg_wait:45.77,sum_age:27.85,sum_wait:24.41},{date:"2020-02-03",merged:31.73,pr:15,cxx20:36,cxx23:null,lwg:4,issue:143,bug:31,avg_age:53.11,avg_wait:48.74,sum_age:26.56,sum_wait:24.37},{date:"2020-02-04",merged:31.38,pr:17,cxx20:36,cxx23:null,lwg:4,issue:144,bug:32,avg_age:47.78,avg_wait:43.91,sum_age:27.07,sum_wait:24.88},{date:"2020-02-05",merged:33.03,pr:15,cxx20:36,cxx23:null,lwg:4,issue:144,bug:31,avg_age:43.07,avg_wait:38.69,sum_age:21.54,sum_wait:19.35},{date:"2020-02-06",merged:34.65,pr:15,cxx20:36,cxx23:null,lwg:4,issue:145,bug:31,avg_age:44.01,avg_wait:39.44,sum_age:22.01,sum_wait:19.72},{date:"2020-02-07",merged:36.2,pr:14,cxx20:36,cxx23:null,lwg:4,issue:147,bug:32,avg_age:47.16,avg_wait:43.2,sum_age:22.01,sum_wait:20.16},{date:"2020-02-08",merged:35.73,pr:14,cxx20:36,cxx23:null,lwg:4,issue:147,bug:32,avg_age:48.16,avg_wait:44.2,sum_age:22.48,sum_wait:20.63},{date:"2020-02-09",merged:35.23,pr:14,cxx20:36,cxx23:null,lwg:4,issue:147,bug:32,avg_age:49.16,avg_wait:45.2,sum_age:22.94,sum_wait:21.09},{date:"2020-02-10",merged:34.73,pr:14,cxx20:36,cxx23:null,lwg:4,issue:147,bug:32,avg_age:50.16,avg_wait:46.2,sum_age:23.41,sum_wait:21.56},{date:"2020-02-11",merged:34.22,pr:14,cxx20:36,cxx23:null,lwg:4,issue:147,bug:32,avg_age:51.16,avg_wait:47.2,sum_age:23.88,sum_wait:22.03},{date:"2020-02-12",merged:33.63,pr:16,cxx20:36,cxx23:null,lwg:4,issue:148,bug:32,avg_age:45.69,avg_wait:42.2,sum_age:24.37,sum_wait:22.51},{date:"2020-02-13",merged:32.69,pr:18,cxx20:36,cxx23:null,lwg:4,issue:150,bug:33,avg_age:41.56,avg_wait:38.45,sum_age:24.94,sum_wait:23.07},{date:"2020-02-14",merged:32.45,pr:17,cxx20:36,cxx23:null,lwg:4,issue:150,bug:33,avg_age:44.93,avg_wait:41.64,sum_age:25.46,sum_wait:23.6},{date:"2020-02-15",merged:31.24,pr:17,cxx20:36,cxx23:null,lwg:4,issue:150,bug:33,avg_age:45.93,avg_wait:42.64,sum_age:26.03,sum_wait:24.16},{date:"2020-02-16",merged:30.04,pr:18,cxx20:36,cxx23:null,lwg:4,issue:150,bug:33,avg_age:44.34,avg_wait:41.24,sum_age:26.6,sum_wait:24.74},{date:"2020-02-17",merged:28.74,pr:18,cxx20:36,cxx23:null,lwg:4,issue:150,bug:33,avg_age:45.34,avg_wait:42.18,sum_age:27.2,sum_wait:25.31},{date:"2020-02-18",merged:29.55,pr:18,cxx20:36,cxx23:null,lwg:4,issue:151,bug:34,avg_age:42.61,avg_wait:41.38,sum_age:25.57,sum_wait:24.83},{date:"2020-02-19",merged:28.37,pr:24,cxx20:36,cxx23:null,lwg:4,issue:151,bug:34,avg_age:32.87,avg_wait:31.95,sum_age:26.29,sum_wait:25.56},{date:"2020-02-20",merged:27.16,pr:25,cxx20:36,cxx23:null,lwg:4,issue:155,bug:35,avg_age:32.53,avg_wait:31.53,sum_age:27.1,sum_wait:26.27},{date:"2020-02-21",merged:26.89,pr:24,cxx20:36,cxx23:null,lwg:4,issue:154,bug:35,avg_age:34.21,avg_wait:33.17,sum_age:27.37,sum_wait:26.54},{date:"2020-02-22",merged:25.59,pr:24,cxx20:36,cxx23:null,lwg:4,issue:155,bug:35,avg_age:35.21,avg_wait:34.17,sum_age:28.17,sum_wait:27.34},{date:"2020-02-23",merged:24.24,pr:24,cxx20:36,cxx23:null,lwg:4,issue:155,bug:35,avg_age:36.21,avg_wait:35.17,sum_age:28.97,sum_wait:28.14},{date:"2020-02-24",merged:25.89,pr:24,cxx20:36,cxx23:null,lwg:4,issue:159,bug:36,avg_age:37,avg_wait:35.96,sum_age:29.6,sum_wait:28.77},{date:"2020-02-25",merged:26.54,pr:23,cxx20:36,cxx23:null,lwg:14,issue:161,bug:36,avg_age:39.35,avg_wait:38.23,sum_age:30.17,sum_wait:29.31},{date:"2020-02-26",merged:25.07,pr:26,cxx20:36,cxx23:null,lwg:14,issue:161,bug:37,avg_age:35.75,avg_wait:34.75,sum_age:30.99,sum_wait:30.11},{date:"2020-02-27",merged:24.56,pr:28,cxx20:44,cxx23:null,lwg:14,issue:161,bug:37,avg_age:34.04,avg_wait:32.32,sum_age:31.77,sum_wait:30.17},{date:"2020-02-28",merged:24.03,pr:31,cxx20:44,cxx23:null,lwg:14,issue:162,bug:37,avg_age:31.22,avg_wait:29.39,sum_age:32.27,sum_wait:30.37},{date:"2020-02-29",merged:30.53,pr:25,cxx20:43,cxx23:null,lwg:11,issue:159,bug:37,avg_age:38.35,avg_wait:36.14,sum_age:31.96,sum_wait:30.11},{date:"2020-03-01",merged:29.03,pr:26,cxx20:43,cxx23:null,lwg:11,issue:160,bug:37,avg_age:37.85,avg_wait:35.73,sum_age:32.8,sum_wait:30.96},{date:"2020-03-02",merged:33.54,pr:22,cxx20:43,cxx23:null,lwg:11,issue:160,bug:36,avg_age:45.32,avg_wait:42.65,sum_age:33.24,sum_wait:31.27},{date:"2020-03-03",merged:35.13,pr:22,cxx20:43,cxx23:null,lwg:10,issue:159,bug:35,avg_age:45.35,avg_wait:42.63,sum_age:33.25,sum_wait:31.26},{date:"2020-03-04",merged:36.07,pr:23,cxx20:40,cxx23:null,lwg:8,issue:157,bug:35,avg_age:43.49,avg_wait:40.82,sum_age:33.34,sum_wait:31.29},{date:"2020-03-05",merged:38.29,pr:21,cxx20:39,cxx23:null,lwg:7,issue:157,bug:35,avg_age:48.35,avg_wait:45.45,sum_age:33.84,sum_wait:31.81},{date:"2020-03-06",merged:37.49,pr:21,cxx20:39,cxx23:null,lwg:7,issue:157,bug:35,avg_age:49.35,avg_wait:46.24,sum_age:34.54,sum_wait:32.37},{date:"2020-03-07",merged:36.74,pr:21,cxx20:39,cxx23:null,lwg:7,issue:157,bug:35,avg_age:50.35,avg_wait:47.24,sum_age:35.24,sum_wait:33.07},{date:"2020-03-08",merged:42.13,pr:17,cxx20:37,cxx23:null,lwg:6,issue:158,bug:35,avg_age:58.92,avg_wait:57.94,sum_age:33.39,sum_wait:32.83},{date:"2020-03-09",merged:42.52,pr:16,cxx20:37,cxx23:null,lwg:6,issue:159,bug:35,avg_age:63.41,avg_wait:62.31,sum_age:33.82,sum_wait:33.23},{date:"2020-03-10",merged:41.89,pr:17,cxx20:37,cxx23:null,lwg:6,issue:161,bug:35,avg_age:60.64,avg_wait:59.6,sum_age:34.36,sum_wait:33.77},{date:"2020-03-11",merged:41.31,pr:18,cxx20:37,cxx23:null,lwg:6,issue:162,bug:35,avg_age:58.24,avg_wait:57.25,sum_age:34.94,sum_wait:34.35},{date:"2020-03-12",merged:40.74,pr:19,cxx20:37,cxx23:null,lwg:6,issue:163,bug:35,avg_age:56.15,avg_wait:55.21,sum_age:35.56,sum_wait:34.96},{date:"2020-03-13",merged:40.19,pr:19,cxx20:37,cxx23:null,lwg:6,issue:163,bug:35,avg_age:57.15,avg_wait:56.21,sum_age:36.2,sum_wait:35.6},{date:"2020-03-14",merged:39.68,pr:20,cxx20:37,cxx23:null,lwg:6,issue:164,bug:35,avg_age:55.26,avg_wait:54.36,sum_age:36.84,sum_wait:36.24},{date:"2020-03-15",merged:39.14,pr:22,cxx20:37,cxx23:null,lwg:6,issue:165,bug:35,avg_age:51.16,avg_wait:50.34,sum_age:37.52,sum_wait:36.92},{date:"2020-03-16",merged:41.49,pr:20,cxx20:37,cxx23:null,lwg:6,issue:165,bug:35,avg_age:57.15,avg_wait:50.38,sum_age:38.1,sum_wait:33.59},{date:"2020-03-17",merged:45.88,pr:16,cxx20:37,cxx23:null,lwg:6,issue:163,bug:35,avg_age:67.38,avg_wait:58.96,sum_age:35.94,sum_wait:31.45},{date:"2020-03-18",merged:45.38,pr:19,cxx20:37,cxx23:null,lwg:6,issue:164,bug:35,avg_age:57.66,avg_wait:49.13,sum_age:36.52,sum_wait:31.12},{date:"2020-03-19",merged:45.88,pr:18,cxx20:37,cxx23:null,lwg:6,issue:166,bug:35,avg_age:61.84,avg_wait:52.8,sum_age:37.1,sum_wait:31.68},{date:"2020-03-20",merged:45.2,pr:18,cxx20:37,cxx23:null,lwg:6,issue:168,bug:35,avg_age:62.84,avg_wait:53.8,sum_age:37.7,sum_wait:32.28},{date:"2020-03-21",merged:44.25,pr:19,cxx20:37,cxx23:null,lwg:6,issue:168,bug:35,avg_age:60.51,avg_wait:51.95,sum_age:38.32,sum_wait:32.9},{date:"2020-03-22",merged:43.23,pr:19,cxx20:37,cxx23:null,lwg:6,issue:167,bug:35,avg_age:61.51,avg_wait:52.95,sum_age:38.96,sum_wait:33.54},{date:"2020-03-23",merged:44.93,pr:20,cxx20:37,cxx23:null,lwg:6,issue:165,bug:35,avg_age:59.13,avg_wait:50.04,sum_age:39.42,sum_wait:33.36},{date:"2020-03-24",merged:45.53,pr:20,cxx20:37,cxx23:null,lwg:6,issue:165,bug:35,avg_age:60.04,avg_wait:50.88,sum_age:40.03,sum_wait:33.92},{date:"2020-03-25",merged:44.98,pr:22,cxx20:37,cxx23:null,lwg:6,issue:163,bug:35,avg_age:53.96,avg_wait:47.12,sum_age:39.57,sum_wait:34.55},{date:"2020-03-26",merged:49.38,pr:20,cxx20:37,cxx23:null,lwg:5,issue:159,bug:35,avg_age:55.88,avg_wait:47.81,sum_age:37.25,sum_wait:31.87},{date:"2020-03-27",merged:49.78,pr:24,cxx20:37,cxx23:null,lwg:5,issue:159,bug:35,avg_age:47.39,avg_wait:40.6,sum_age:37.91,sum_wait:32.48},{date:"2020-03-28",merged:49.07,pr:24,cxx20:37,cxx23:null,lwg:5,issue:160,bug:35,avg_age:48.32,avg_wait:41.51,sum_age:38.66,sum_wait:33.21},{date:"2020-03-29",merged:48.18,pr:25,cxx20:37,cxx23:null,lwg:5,issue:162,bug:37,avg_age:47.35,avg_wait:40.81,sum_age:39.46,sum_wait:34.01},{date:"2020-03-30",merged:46.33,pr:26,cxx20:37,cxx23:null,lwg:5,issue:165,bug:38,avg_age:46.53,avg_wait:40.08,sum_age:40.32,sum_wait:34.74},{date:"2020-03-31",merged:47.48,pr:26,cxx20:36,cxx23:null,lwg:5,issue:165,bug:38,avg_age:46.27,avg_wait:35.47,sum_age:40.1,sum_wait:30.74},{date:"2020-04-01",merged:51.66,pr:22,cxx20:36,cxx23:null,lwg:5,issue:164,bug:37,avg_age:54.74,avg_wait:41.97,sum_age:40.14,sum_wait:30.78},{date:"2020-04-02",merged:52.86,pr:23,cxx20:36,cxx23:null,lwg:5,issue:165,bug:37,avg_age:53.19,avg_wait:40.85,sum_age:40.78,sum_wait:31.32},{date:"2020-04-03",merged:52.06,pr:24,cxx20:36,cxx23:null,lwg:5,issue:163,bug:37,avg_age:51.91,avg_wait:38.84,sum_age:41.53,sum_wait:31.08},{date:"2020-04-04",merged:50.3,pr:26,cxx20:36,cxx23:null,lwg:5,issue:163,bug:37,avg_age:48.88,avg_wait:36.81,sum_age:42.37,sum_wait:31.9},{date:"2020-04-05",merged:48.6,pr:26,cxx20:36,cxx23:null,lwg:5,issue:163,bug:37,avg_age:49.88,avg_wait:37.81,sum_age:43.23,sum_wait:32.77},{date:"2020-04-06",merged:46.84,pr:27,cxx20:36,cxx23:null,lwg:5,issue:164,bug:38,avg_age:49.02,avg_wait:37.27,sum_age:44.12,sum_wait:33.54},{date:"2020-04-07",merged:44.9,pr:29,cxx20:36,cxx23:null,lwg:5,issue:165,bug:38,avg_age:46.59,avg_wait:34.92,sum_age:45.04,sum_wait:33.76},{date:"2020-04-08",merged:44.99,pr:29,cxx20:35,cxx23:null,lwg:5,issue:166,bug:38,avg_age:42.65,avg_wait:35.84,sum_age:41.23,sum_wait:34.65},{date:"2020-04-09",merged:47.22,pr:27,cxx20:34,cxx23:null,lwg:5,issue:164,bug:38,avg_age:39.35,avg_wait:32.9,sum_age:35.41,sum_wait:29.61},{date:"2020-04-10",merged:50.72,pr:23,cxx20:34,cxx23:null,lwg:5,issue:164,bug:38,avg_age:45.26,avg_wait:35.2,sum_age:34.7,sum_wait:26.99},{date:"2020-04-11",merged:49.29,pr:24,cxx20:34,cxx23:null,lwg:5,issue:166,bug:38,avg_age:44.36,avg_wait:34.71,sum_age:35.49,sum_wait:27.77},{date:"2020-04-12",merged:48.08,pr:25,cxx20:34,cxx23:null,lwg:5,issue:166,bug:38,avg_age:41.41,avg_wait:31.28,sum_age:34.51,sum_wait:26.07},{date:"2020-04-13",merged:47.84,pr:24,cxx20:34,cxx23:null,lwg:5,issue:166,bug:38,avg_age:43.92,avg_wait:33.34,sum_age:35.14,sum_wait:26.67},{date:"2020-04-14",merged:49.69,pr:21,cxx20:34,cxx23:null,lwg:5,issue:168,bug:38,avg_age:50.93,avg_wait:38.26,sum_age:35.65,sum_wait:26.78},{date:"2020-04-15",merged:48.36,pr:21,cxx20:34,cxx23:null,lwg:5,issue:168,bug:39,avg_age:51.93,avg_wait:38.66,sum_age:36.35,sum_wait:27.06},{date:"2020-04-16",merged:46.87,pr:23,cxx20:34,cxx23:null,lwg:5,issue:171,bug:40,avg_age:48.37,avg_wait:36.25,sum_age:37.08,sum_wait:27.79},{date:"2020-04-17",merged:45.48,pr:23,cxx20:34,cxx23:null,lwg:5,issue:172,bug:40,avg_age:49.37,avg_wait:37.25,sum_age:37.85,sum_wait:28.56},{date:"2020-04-18",merged:44.23,pr:23,cxx20:34,cxx23:null,lwg:5,issue:173,bug:40,avg_age:50.37,avg_wait:38.25,sum_age:38.61,sum_wait:29.33},{date:"2020-04-19",merged:42.98,pr:24,cxx20:34,cxx23:null,lwg:5,issue:173,bug:40,avg_age:49.25,avg_wait:37.64,sum_age:39.4,sum_wait:30.11},{date:"2020-04-20",merged:42.68,pr:24,cxx20:34,cxx23:null,lwg:5,issue:173,bug:41,avg_age:50.08,avg_wait:38.42,sum_age:40.06,sum_wait:30.73},{date:"2020-04-21",merged:42.17,pr:25,cxx20:34,cxx23:null,lwg:5,issue:173,bug:41,avg_age:48.97,avg_wait:37.81,sum_age:40.8,sum_wait:31.51},{date:"2020-04-22",merged:45.44,pr:21,cxx20:33,cxx23:null,lwg:5,issue:171,bug:40,avg_age:56.49,avg_wait:44.24,sum_age:39.55,sum_wait:30.97},{date:"2020-04-23",merged:43.58,pr:24,cxx20:33,cxx23:null,lwg:5,issue:173,bug:40,avg_age:50.34,avg_wait:39.62,sum_age:40.27,sum_wait:31.7},{date:"2020-04-24",merged:44.68,pr:22,cxx20:33,cxx23:null,lwg:5,issue:173,bug:41,avg_age:55.61,avg_wait:42.96,sum_age:40.78,sum_wait:31.51},{date:"2020-04-25",merged:42.84,pr:22,cxx20:33,cxx23:null,lwg:5,issue:176,bug:41,avg_age:56.61,avg_wait:43.96,sum_age:41.51,sum_wait:32.24},{date:"2020-04-26",merged:41.15,pr:24,cxx20:33,cxx23:null,lwg:5,issue:178,bug:42,avg_age:52.83,avg_wait:41.24,sum_age:42.27,sum_wait:33},{date:"2020-04-27",merged:40.65,pr:26,cxx20:33,cxx23:null,lwg:5,issue:180,bug:43,avg_age:49.69,avg_wait:38.02,sum_age:43.06,sum_wait:32.95},{date:"2020-04-28",merged:39.11,pr:27,cxx20:33,cxx23:null,lwg:5,issue:183,bug:43,avg_age:48.81,avg_wait:37.5,sum_age:43.93,sum_wait:33.75},{date:"2020-04-29",merged:37.54,pr:28,cxx20:33,cxx23:null,lwg:5,issue:184,bug:44,avg_age:48.05,avg_wait:37.14,sum_age:44.84,sum_wait:34.66},{date:"2020-04-30",merged:46.73,pr:22,cxx20:32,cxx23:null,lwg:5,issue:181,bug:44,avg_age:54.08,avg_wait:45.44,sum_age:39.66,sum_wait:33.32},{date:"2020-05-01",merged:45.73,pr:23,cxx20:32,cxx23:null,lwg:5,issue:186,bug:44,avg_age:52.67,avg_wait:44.4,sum_age:40.38,sum_wait:34.04},{date:"2020-05-02",merged:43.79,pr:24,cxx20:32,cxx23:null,lwg:5,issue:187,bug:45,avg_age:51.47,avg_wait:43.54,sum_age:41.17,sum_wait:34.83},{date:"2020-05-03",merged:41.96,pr:25,cxx20:32,cxx23:null,lwg:5,issue:188,bug:46,avg_age:50.38,avg_wait:42.77,sum_age:41.98,sum_wait:35.64},{date:"2020-05-04",merged:40.09,pr:28,cxx20:32,cxx23:null,lwg:5,issue:191,bug:46,avg_age:45.89,avg_wait:38.89,sum_age:42.83,sum_wait:36.3},{date:"2020-05-05",merged:42.42,pr:29,cxx20:32,cxx23:null,lwg:5,issue:191,bug:45,avg_age:45.05,avg_wait:38.39,sum_age:43.54,sum_wait:37.11},{date:"2020-05-06",merged:47.9,pr:24,cxx20:32,cxx23:null,lwg:5,issue:192,bug:45,avg_age:54.71,avg_wait:45.54,sum_age:43.77,sum_wait:36.43},{date:"2020-05-07",merged:48.41,pr:24,cxx20:32,cxx23:null,lwg:5,issue:194,bug:46,avg_age:55.53,avg_wait:46.36,sum_age:44.42,sum_wait:37.09},{date:"2020-05-08",merged:46.97,pr:25,cxx20:32,cxx23:null,lwg:5,issue:194,bug:46,avg_age:54.28,avg_wait:43.2,sum_age:45.23,sum_wait:36},{date:"2020-05-09",merged:45.57,pr:26,cxx20:32,cxx23:null,lwg:5,issue:194,bug:46,avg_age:53.18,avg_wait:42.53,sum_age:46.09,sum_wait:36.86},{date:"2020-05-10",merged:44.2,pr:26,cxx20:32,cxx23:null,lwg:5,issue:195,bug:46,avg_age:54.18,avg_wait:43.53,sum_age:46.95,sum_wait:37.73},{date:"2020-05-11",merged:43.98,pr:27,cxx20:32,cxx23:null,lwg:5,issue:197,bug:46,avg_age:51.83,avg_wait:39.08,sum_age:46.65,sum_wait:35.17},{date:"2020-05-12",merged:47.74,pr:24,cxx20:32,cxx23:null,lwg:5,issue:198,bug:45,avg_age:57.05,avg_wait:44.15,sum_age:45.64,sum_wait:35.32},{date:"2020-05-13",merged:46.6,pr:27,cxx20:32,cxx23:null,lwg:5,issue:197,bug:45,avg_age:51.66,avg_wait:40.16,sum_age:46.49,sum_wait:36.15},{date:"2020-05-14",merged:50.47,pr:25,cxx20:31,cxx23:null,lwg:5,issue:199,bug:45,avg_age:52.35,avg_wait:43.24,sum_age:43.62,sum_wait:36.03},{date:"2020-05-15",merged:51.22,pr:24,cxx20:31,cxx23:null,lwg:5,issue:199,bug:45,avg_age:55.45,avg_wait:45.88,sum_age:44.36,sum_wait:36.7},{date:"2020-05-16",merged:49.97,pr:25,cxx20:31,cxx23:null,lwg:5,issue:200,bug:45,avg_age:54.2,avg_wait:45.01,sum_age:45.17,sum_wait:37.51},{date:"2020-05-17",merged:48.69,pr:26,cxx20:31,cxx23:null,lwg:5,issue:202,bug:45,avg_age:53.11,avg_wait:44.28,sum_age:46.03,sum_wait:38.37},{date:"2020-05-18",merged:52.44,pr:22,cxx20:31,cxx23:null,lwg:5,issue:198,bug:45,avg_age:63.29,avg_wait:52.86,sum_age:46.41,sum_wait:38.77},{date:"2020-05-19",merged:51.26,pr:22,cxx20:31,cxx23:null,lwg:5,issue:197,bug:45,avg_age:63.45,avg_wait:52.78,sum_age:46.53,sum_wait:38.71},{date:"2020-05-20",merged:49.87,pr:23,cxx20:31,cxx23:null,lwg:5,issue:197,bug:45,avg_age:61.66,avg_wait:49.87,sum_age:47.27,sum_wait:38.23},{date:"2020-05-21",merged:48.56,pr:24,cxx20:31,cxx23:null,lwg:5,issue:201,bug:46,avg_age:60.08,avg_wait:48.51,sum_age:48.06,sum_wait:38.81},{date:"2020-05-22",merged:47.21,pr:25,cxx20:31,cxx23:null,lwg:5,issue:202,bug:46,avg_age:58.66,avg_wait:47.51,sum_age:48.88,sum_wait:39.6},{date:"2020-05-23",merged:46.88,pr:25,cxx20:30,cxx23:null,lwg:5,issue:203,bug:46,avg_age:55.4,avg_wait:48.36,sum_age:46.16,sum_wait:40.3},{date:"2020-05-24",merged:45.66,pr:26,cxx20:30,cxx23:null,lwg:5,issue:203,bug:46,avg_age:54.24,avg_wait:47.48,sum_age:47.01,sum_wait:41.15},{date:"2020-05-25",merged:44.43,pr:26,cxx20:30,cxx23:null,lwg:5,issue:204,bug:46,avg_age:55.24,avg_wait:48.48,sum_age:47.87,sum_wait:42.01},{date:"2020-05-26",merged:43.01,pr:26,cxx20:30,cxx23:null,lwg:5,issue:204,bug:46,avg_age:56.24,avg_wait:49.19,sum_age:48.74,sum_wait:42.63},{date:"2020-05-27",merged:41.29,pr:28,cxx20:30,cxx23:null,lwg:5,issue:205,bug:46,avg_age:53.17,avg_wait:46.63,sum_age:49.63,sum_wait:43.52},{date:"2020-05-28",merged:39.49,pr:29,cxx20:30,cxx23:null,lwg:5,issue:205,bug:46,avg_age:52.34,avg_wait:44.38,sum_age:50.59,sum_wait:42.9},{date:"2020-05-29",merged:47.69,pr:19,cxx20:30,cxx23:null,lwg:4,issue:203,bug:47,avg_age:74.8,avg_wait:65.98,sum_age:47.38,sum_wait:41.79},{date:"2020-05-30",merged:45.9,pr:20,cxx20:30,cxx23:null,lwg:4,issue:203,bug:47,avg_age:72.06,avg_wait:63.68,sum_age:48.04,sum_wait:42.45},{date:"2020-05-31",merged:44.17,pr:21,cxx20:30,cxx23:null,lwg:4,issue:203,bug:47,avg_age:69.6,avg_wait:61.62,sum_age:48.72,sum_wait:43.14},{date:"2020-06-01",merged:42.55,pr:21,cxx20:30,cxx23:null,lwg:4,issue:203,bug:47,avg_age:70.6,avg_wait:62.62,sum_age:49.42,sum_wait:43.84},{date:"2020-06-02",merged:40.8,pr:22,cxx20:30,cxx23:null,lwg:4,issue:205,bug:47,avg_age:68.37,avg_wait:60.75,sum_age:50.14,sum_wait:44.55},{date:"2020-06-03",merged:39,pr:24,cxx20:30,cxx23:null,lwg:4,issue:204,bug:47,avg_age:63.63,avg_wait:56.63,sum_age:50.9,sum_wait:45.3},{date:"2020-06-04",merged:37.1,pr:24,cxx20:30,cxx23:null,lwg:4,issue:204,bug:47,avg_age:64.63,avg_wait:57.63,sum_age:51.7,sum_wait:46.1},{date:"2020-06-05",merged:35.15,pr:26,cxx20:30,cxx23:null,lwg:4,issue:206,bug:48,avg_age:60.64,avg_wait:54.1,sum_age:52.55,sum_wait:46.89},{date:"2020-06-06",merged:33.24,pr:26,cxx20:30,cxx23:null,lwg:4,issue:207,bug:48,avg_age:61.64,avg_wait:55.1,sum_age:53.42,sum_wait:47.76},{date:"2020-06-07",merged:31.28,pr:26,cxx20:30,cxx23:null,lwg:4,issue:207,bug:48,avg_age:62.64,avg_wait:56.1,sum_age:54.29,sum_wait:48.62},{date:"2020-06-08",merged:29.13,pr:27,cxx20:30,cxx23:null,lwg:4,issue:208,bug:49,avg_age:61.31,avg_wait:55.01,sum_age:55.18,sum_wait:49.51},{date:"2020-06-09",merged:27.42,pr:29,cxx20:30,cxx23:null,lwg:4,issue:208,bug:49,avg_age:58.03,avg_wait:52.17,sum_age:56.09,sum_wait:50.43},{date:"2020-06-10",merged:25.84,pr:29,cxx20:30,cxx23:null,lwg:4,issue:210,bug:51,avg_age:59.03,avg_wait:53.15,sum_age:57.06,sum_wait:51.38},{date:"2020-06-11",merged:28.29,pr:26,cxx20:30,cxx23:null,lwg:4,issue:209,bug:50,avg_age:63.38,avg_wait:58.27,sum_age:54.93,sum_wait:50.5},{date:"2020-06-12",merged:26.69,pr:27,cxx20:30,cxx23:null,lwg:4,issue:210,bug:50,avg_age:62.01,avg_wait:57.09,sum_age:55.81,sum_wait:51.38},{date:"2020-06-13",merged:25.09,pr:27,cxx20:30,cxx23:null,lwg:4,issue:210,bug:50,avg_age:63.01,avg_wait:58.09,sum_age:56.71,sum_wait:52.28},{date:"2020-06-14",merged:23.58,pr:28,cxx20:30,cxx23:null,lwg:4,issue:211,bug:50,avg_age:61.73,avg_wait:56.99,sum_age:57.61,sum_wait:53.19},{date:"2020-06-15",merged:22.24,pr:31,cxx20:30,cxx23:null,lwg:4,issue:212,bug:50,avg_age:56.7,avg_wait:52.31,sum_age:58.59,sum_wait:54.05},{date:"2020-06-16",merged:21.22,pr:32,cxx20:30,cxx23:null,lwg:4,issue:212,bug:50,avg_age:55.91,avg_wait:51.42,sum_age:59.64,sum_wait:54.85},{date:"2020-06-17",merged:21.27,pr:36,cxx20:30,cxx23:null,lwg:4,issue:213,bug:51,avg_age:50.52,avg_wait:45.21,sum_age:60.63,sum_wait:54.25},{date:"2020-06-18",merged:20.21,pr:36,cxx20:30,cxx23:null,lwg:4,issue:216,bug:53,avg_age:51.52,avg_wait:46.16,sum_age:61.83,sum_wait:55.39},{date:"2020-06-19",merged:18.76,pr:36,cxx20:30,cxx23:null,lwg:4,issue:216,bug:53,avg_age:52.52,avg_wait:47.16,sum_age:63.03,sum_wait:56.59},{date:"2020-06-20",merged:24.32,pr:29,cxx20:30,cxx23:null,lwg:4,issue:211,bug:52,avg_age:64.14,avg_wait:57.76,sum_age:62,sum_wait:55.83},{date:"2020-06-21",merged:23.02,pr:29,cxx20:30,cxx23:null,lwg:4,issue:211,bug:52,avg_age:65.14,avg_wait:58.76,sum_age:62.97,sum_wait:56.8},{date:"2020-06-22",merged:21.87,pr:31,cxx20:30,cxx23:null,lwg:4,issue:211,bug:52,avg_age:61.89,avg_wait:55.2,sum_age:63.95,sum_wait:57.04},{date:"2020-06-23",merged:20.79,pr:31,cxx20:30,cxx23:null,lwg:4,issue:212,bug:52,avg_age:62.89,avg_wait:56.04,sum_age:64.99,sum_wait:57.9},{date:"2020-06-24",merged:27.94,pr:28,cxx20:30,cxx23:null,lwg:4,issue:209,bug:51,avg_age:67.27,avg_wait:60.42,sum_age:62.78,sum_wait:56.4},{date:"2020-06-25",merged:27.14,pr:30,cxx20:30,cxx23:null,lwg:4,issue:210,bug:50,avg_age:63.75,avg_wait:57.26,sum_age:63.75,sum_wait:57.26},{date:"2020-06-26",merged:26.34,pr:32,cxx20:30,cxx23:null,lwg:4,issue:214,bug:52,avg_age:60.74,avg_wait:54.3,sum_age:64.79,sum_wait:57.92},{date:"2020-06-27",merged:28.59,pr:30,cxx20:30,cxx23:null,lwg:3,issue:218,bug:53,avg_age:65.06,avg_wait:58.23,sum_age:65.06,sum_wait:58.23},{date:"2020-06-28",merged:28.04,pr:31,cxx20:30,cxx23:null,lwg:3,issue:218,bug:53,avg_age:63.94,avg_wait:57.33,sum_age:66.08,sum_wait:59.25},{date:"2020-06-29",merged:32.49,pr:28,cxx20:30,cxx23:null,lwg:3,issue:218,bug:53,avg_age:68.2,avg_wait:60.81,sum_age:63.65,sum_wait:56.76},{date:"2020-06-30",merged:32.94,pr:28,cxx20:30,cxx23:null,lwg:3,issue:229,bug:60,avg_age:69.18,avg_wait:61.55,sum_age:64.57,sum_wait:57.44},{date:"2020-07-01",merged:34.32,pr:31,cxx20:30,cxx23:null,lwg:3,issue:238,bug:65,avg_age:61.63,avg_wait:56.07,sum_age:63.68,sum_wait:57.94},{date:"2020-07-02",merged:40.62,pr:30,cxx20:29,cxx23:null,lwg:2,issue:236,bug:63,avg_age:60.72,avg_wait:57.24,sum_age:60.72,sum_wait:57.24},{date:"2020-07-03",merged:39.92,pr:35,cxx20:29,cxx23:null,lwg:2,issue:239,bug:64,avg_age:52.99,avg_wait:49.93,sum_age:61.82,sum_wait:58.26},{date:"2020-07-04",merged:39.22,pr:38,cxx20:29,cxx23:null,lwg:2,issue:245,bug:68,avg_age:49.78,avg_wait:46.95,sum_age:63.05,sum_wait:59.47},{date:"2020-07-05",merged:38.52,pr:40,cxx20:29,cxx23:null,lwg:2,issue:252,bug:73,avg_age:48.27,avg_wait:45.46,sum_age:64.36,sum_wait:60.61},{date:"2020-07-06",merged:37.82,pr:42,cxx20:29,cxx23:null,lwg:2,issue:254,bug:74,avg_age:46.95,avg_wait:44.11,sum_age:65.73,sum_wait:61.75},{date:"2020-07-07",merged:46.09,pr:38,cxx20:29,cxx23:null,lwg:2,issue:251,bug:76,avg_age:52.25,avg_wait:49.03,sum_age:66.18,sum_wait:62.1},{date:"2020-07-08",merged:46.45,pr:37,cxx20:29,cxx23:null,lwg:2,issue:251,bug:77,avg_age:54.43,avg_wait:50.7,sum_age:67.13,sum_wait:62.53},{date:"2020-07-09",merged:46.2,pr:40,cxx20:29,cxx23:null,lwg:2,issue:252,bug:75,avg_age:51.3,avg_wait:47.56,sum_age:68.4,sum_wait:63.41},{date:"2020-07-10",merged:45.61,pr:42,cxx20:29,cxx23:null,lwg:2,issue:253,bug:76,avg_age:49.83,avg_wait:40.94,sum_age:69.76,sum_wait:57.32},{date:"2020-07-11",merged:57.01,pr:31,cxx20:29,cxx23:null,lwg:2,issue:254,bug:78,avg_age:65.31,avg_wait:54.61,sum_age:67.49,sum_wait:56.43},{date:"2020-07-12",merged:57.41,pr:32,cxx20:29,cxx23:null,lwg:2,issue:258,bug:82,avg_age:64.27,avg_wait:53.88,sum_age:68.55,sum_wait:57.47},{date:"2020-07-13",merged:56.81,pr:32,cxx20:29,cxx23:null,lwg:2,issue:258,bug:82,avg_age:63.32,avg_wait:52.51,sum_age:67.54,sum_wait:56.01},{date:"2020-07-14",merged:56.83,pr:32,cxx20:29,cxx23:null,lwg:2,issue:260,bug:82,avg_age:64.29,avg_wait:52.78,sum_age:68.58,sum_wait:56.29},{date:"2020-07-15",merged:55.83,pr:33,cxx20:29,cxx23:null,lwg:2,issue:261,bug:82,avg_age:63.34,avg_wait:50.08,sum_age:69.67,sum_wait:55.08},{date:"2020-07-16",merged:58.83,pr:30,cxx20:29,cxx23:null,lwg:2,issue:262,bug:82,avg_age:61.74,avg_wait:47.97,sum_age:61.74,sum_wait:47.97},{date:"2020-07-17",merged:57.73,pr:32,cxx20:29,cxx23:null,lwg:2,issue:262,bug:82,avg_age:58.86,avg_wait:45.94,sum_age:62.78,sum_wait:49.01},{date:"2020-07-18",merged:56.58,pr:33,cxx20:29,cxx23:null,lwg:2,issue:263,bug:83,avg_age:58.06,avg_wait:45.53,sum_age:63.86,sum_wait:50.09},{date:"2020-07-19",merged:56.42,pr:34,cxx20:29,cxx23:null,lwg:2,issue:262,bug:83,avg_age:57.31,avg_wait:45.16,sum_age:64.96,sum_wait:51.18},{date:"2020-07-20",merged:57,pr:37,cxx20:29,cxx23:null,lwg:2,issue:263,bug:84,avg_age:53.24,avg_wait:41.9,sum_age:65.66,sum_wait:51.68},{date:"2020-07-21",merged:57.61,pr:39,cxx20:28,cxx23:null,lwg:2,issue:268,bug:89,avg_age:50.83,avg_wait:38.95,sum_age:66.08,sum_wait:50.63},{date:"2020-07-22",merged:56.1,pr:37,cxx20:28,cxx23:null,lwg:2,issue:270,bug:89,avg_age:51.1,avg_wait:38.18,sum_age:63.03,sum_wait:47.09},{date:"2020-07-23",merged:54.4,pr:39,cxx20:28,cxx23:null,lwg:2,issue:270,bug:89,avg_age:49.46,avg_wait:37.1,sum_age:64.3,sum_wait:48.24},{date:"2020-07-24",merged:52.7,pr:40,cxx20:28,cxx23:null,lwg:2,issue:271,bug:90,avg_age:49.22,avg_wait:36.92,sum_age:65.63,sum_wait:49.22},{date:"2020-07-25",merged:51,pr:43,cxx20:28,cxx23:null,lwg:2,issue:275,bug:92,avg_age:46.73,avg_wait:35.21,sum_age:66.98,sum_wait:50.47},{date:"2020-07-26",merged:49.3,pr:44,cxx20:28,cxx23:null,lwg:2,issue:275,bug:92,avg_age:46.66,avg_wait:35.39,sum_age:68.43,sum_wait:51.91},{date:"2020-07-27",merged:57.48,pr:36,cxx20:28,cxx23:null,lwg:2,issue:276,bug:91,avg_age:53.74,avg_wait:40.33,sum_age:64.49,sum_wait:48.39},{date:"2020-07-28",merged:60.36,pr:34,cxx20:28,cxx23:null,lwg:2,issue:276,bug:92,avg_age:56.73,avg_wait:42.66,sum_age:64.29,sum_wait:48.35},{date:"2020-07-29",merged:63.21,pr:33,cxx20:27,cxx23:null,lwg:2,issue:280,bug:93,avg_age:57.55,avg_wait:43.48,sum_age:63.31,sum_wait:47.83},{date:"2020-07-30",merged:61.4,pr:34,cxx20:27,cxx23:null,lwg:2,issue:283,bug:95,avg_age:56.83,avg_wait:43.17,sum_age:64.41,sum_wait:48.93},{date:"2020-07-31",merged:59.4,pr:35,cxx20:27,cxx23:null,lwg:2,issue:285,bug:97,avg_age:56.18,avg_wait:42.83,sum_age:65.55,sum_wait:49.97},{date:"2020-08-01",merged:67.99,pr:26,cxx20:26,cxx23:null,lwg:2,issue:285,bug:97,avg_age:59.81,avg_wait:56.09,sum_age:51.84,sum_wait:48.61},{date:"2020-08-02",merged:65.54,pr:29,cxx20:26,cxx23:null,lwg:2,issue:286,bug:97,avg_age:54.59,avg_wait:51.25,sum_age:52.77,sum_wait:49.54},{date:"2020-08-03",merged:66.46,pr:31,cxx20:26,cxx23:null,lwg:2,issue:289,bug:97,avg_age:51.83,avg_wait:47.98,sum_age:53.56,sum_wait:49.58},{date:"2020-08-04",merged:64.36,pr:36,cxx20:26,cxx23:null,lwg:2,issue:290,bug:97,avg_age:45.58,avg_wait:41.94,sum_age:54.7,sum_wait:50.33},{date:"2020-08-05",merged:68.25,pr:32,cxx20:26,cxx23:null,lwg:2,issue:290,bug:97,avg_age:51.41,avg_wait:46.71,sum_age:54.84,sum_wait:49.82},{date:"2020-08-06",merged:66.05,pr:35,cxx20:26,cxx23:null,lwg:2,issue:290,bug:97,avg_age:47.95,avg_wait:43.49,sum_age:55.94,sum_wait:50.73},{date:"2020-08-07",merged:63.9,pr:38,cxx20:26,cxx23:null,lwg:2,issue:291,bug:97,avg_age:45.12,avg_wait:41.01,sum_age:57.15,sum_wait:51.95},{date:"2020-08-08",merged:61.75,pr:42,cxx20:26,cxx23:null,lwg:2,issue:290,bug:96,avg_age:41.78,avg_wait:38.06,sum_age:58.49,sum_wait:53.29},{date:"2020-08-09",merged:65.8,pr:37,cxx20:26,cxx23:null,lwg:2,issue:291,bug:98,avg_age:47.04,avg_wait:42.86,sum_age:58.01,sum_wait:52.86},{date:"2020-08-10",merged:64.72,pr:38,cxx20:26,cxx23:null,lwg:2,issue:292,bug:98,avg_age:46.75,avg_wait:42.69,sum_age:59.22,sum_wait:54.07},{date:"2020-08-11",merged:64.88,pr:38,cxx20:26,cxx23:null,lwg:2,issue:293,bug:99,avg_age:47.54,avg_wait:43.29,sum_age:60.22,sum_wait:54.84},{date:"2020-08-12",merged:70.23,pr:31,cxx20:25,cxx23:null,lwg:2,issue:291,bug:97,avg_age:54.65,avg_wait:51.8,sum_age:56.47,sum_wait:53.53},{date:"2020-08-13",merged:69.58,pr:33,cxx20:25,cxx23:null,lwg:2,issue:293,bug:98,avg_age:52.02,avg_wait:49.55,sum_age:57.22,sum_wait:54.51},{date:"2020-08-14",merged:70.93,pr:31,cxx20:25,cxx23:null,lwg:2,issue:292,bug:98,avg_age:55.49,avg_wait:53.06,sum_age:57.34,sum_wait:54.83},{date:"2020-08-15",merged:69.28,pr:31,cxx20:25,cxx23:null,lwg:2,issue:295,bug:98,avg_age:56.49,avg_wait:53.7,sum_age:58.37,sum_wait:55.49},{date:"2020-08-16",merged:67.55,pr:32,cxx20:25,cxx23:null,lwg:2,issue:295,bug:98,avg_age:55.72,avg_wait:52.82,sum_age:59.43,sum_wait:56.34},{date:"2020-08-17",merged:69.76,pr:31,cxx20:25,cxx23:null,lwg:2,issue:293,bug:97,avg_age:56.45,avg_wait:52.69,sum_age:58.33,sum_wait:54.44},{date:"2020-08-18",merged:69.84,pr:32,cxx20:25,cxx23:null,lwg:2,issue:293,bug:97,avg_age:55.63,avg_wait:51.88,sum_age:59.34,sum_wait:55.34},{date:"2020-08-19",merged:68.69,pr:32,cxx20:25,cxx23:null,lwg:2,issue:295,bug:98,avg_age:56.16,avg_wait:50.99,sum_age:59.9,sum_wait:54.39},{date:"2020-08-20",merged:66.73,pr:35,cxx20:25,cxx23:null,lwg:2,issue:296,bug:99,avg_age:52.28,avg_wait:46.68,sum_age:60.99,sum_wait:54.46},{date:"2020-08-21",merged:75.05,pr:30,cxx20:24,cxx23:null,lwg:2,issue:293,bug:96,avg_age:57.46,avg_wait:52.21,sum_age:57.46,sum_wait:52.21},{date:"2020-08-22",merged:73,pr:31,cxx20:24,cxx23:null,lwg:2,issue:293,bug:96,avg_age:56.58,avg_wait:51.49,sum_age:58.46,sum_wait:53.21},{date:"2020-08-23",merged:70.91,pr:32,cxx20:24,cxx23:null,lwg:2,issue:293,bug:96,avg_age:55.78,avg_wait:50.86,sum_age:59.5,sum_wait:54.25},{date:"2020-08-24",merged:68.76,pr:35,cxx20:24,cxx23:null,lwg:2,issue:293,bug:96,avg_age:51.96,avg_wait:47.24,sum_age:60.62,sum_wait:55.11},{date:"2020-08-25",merged:66.36,pr:37,cxx20:24,cxx23:null,lwg:2,issue:291,bug:96,avg_age:50.12,avg_wait:37.81,sum_age:61.81,sum_wait:46.63},{date:"2020-08-26",merged:76.11,pr:26,cxx20:24,cxx23:null,lwg:1,issue:287,bug:93,avg_age:67.77,avg_wait:50.62,sum_age:58.74,sum_wait:43.87},{date:"2020-08-27",merged:75.86,pr:26,cxx20:24,cxx23:null,lwg:1,issue:288,bug:93,avg_age:68.77,avg_wait:51.55,sum_age:59.6,sum_wait:44.68},{date:"2020-08-28",merged:73.61,pr:28,cxx20:24,cxx23:null,lwg:1,issue:290,bug:93,avg_age:64.83,avg_wait:48.58,sum_age:60.51,sum_wait:45.34},{date:"2020-08-29",merged:71.34,pr:29,cxx20:24,cxx23:null,lwg:1,issue:290,bug:93,avg_age:63.58,avg_wait:47.85,sum_age:61.46,sum_wait:46.26},{date:"2020-08-30",merged:69.02,pr:30,cxx20:24,cxx23:null,lwg:1,issue:290,bug:93,avg_age:62.45,avg_wait:47.24,sum_age:62.45,sum_wait:47.24},{date:"2020-08-31",merged:68.61,pr:29,cxx20:23,cxx23:null,lwg:1,issue:290,bug:93,avg_age:63.83,avg_wait:47.74,sum_age:61.7,sum_wait:46.15},{date:"2020-09-01",merged:66.02,pr:32,cxx20:23,cxx23:null,lwg:1,issue:292,bug:95,avg_age:58.82,avg_wait:43.98,sum_age:62.74,sum_wait:46.91},{date:"2020-09-02",merged:65.19,pr:31,cxx20:23,cxx23:null,lwg:1,issue:293,bug:95,avg_age:60.91,avg_wait:44.12,sum_age:62.94,sum_wait:45.59},{date:"2020-09-03",merged:62.29,pr:32,cxx20:23,cxx23:null,lwg:1,issue:296,bug:98,avg_age:60,avg_wait:42.47,sum_age:64,sum_wait:45.3},{date:"2020-09-04",merged:70.29,pr:24,cxx20:23,cxx23:null,lwg:1,issue:296,bug:96,avg_age:76.53,avg_wait:56.38,sum_age:61.23,sum_wait:45.1},{date:"2020-09-05",merged:67.53,pr:26,cxx20:23,cxx23:null,lwg:1,issue:296,bug:96,avg_age:71.63,avg_wait:53.03,sum_age:62.08,sum_wait:45.96},{date:"2020-09-06",merged:65.09,pr:26,cxx20:23,cxx23:null,lwg:1,issue:297,bug:96,avg_age:72.63,avg_wait:54.03,sum_age:62.95,sum_wait:46.82},{date:"2020-09-07",merged:62.62,pr:27,cxx20:23,cxx23:null,lwg:1,issue:298,bug:97,avg_age:70.91,avg_wait:52.99,sum_age:63.82,sum_wait:47.69},{date:"2020-09-08",merged:60.31,pr:28,cxx20:23,cxx23:null,lwg:1,issue:298,bug:97,avg_age:69.35,avg_wait:52.08,sum_age:64.73,sum_wait:48.61},{date:"2020-09-09",merged:58.96,pr:29,cxx20:23,cxx23:null,lwg:1,issue:299,bug:98,avg_age:67.67,avg_wait:50.39,sum_age:65.41,sum_wait:48.71},{date:"2020-09-10",merged:57.67,pr:31,cxx20:23,cxx23:null,lwg:1,issue:299,bug:98,avg_age:64.26,avg_wait:48.1,sum_age:66.4,sum_wait:49.7},{date:"2020-09-11",merged:55.37,pr:31,cxx20:23,cxx23:null,lwg:1,issue:300,bug:99,avg_age:65.26,avg_wait:49.1,sum_age:67.43,sum_wait:50.74},{date:"2020-09-12",merged:53.12,pr:31,cxx20:23,cxx23:null,lwg:1,issue:301,bug:99,avg_age:66.26,avg_wait:50.1,sum_age:68.47,sum_wait:51.77},{date:"2020-09-13",merged:50.97,pr:31,cxx20:23,cxx23:null,lwg:1,issue:301,bug:99,avg_age:67.26,avg_wait:51.1,sum_age:69.5,sum_wait:52.8},{date:"2020-09-14",merged:49.08,pr:32,cxx20:23,cxx23:null,lwg:1,issue:301,bug:99,avg_age:66.13,avg_wait:50.48,sum_age:70.54,sum_wait:53.84},{date:"2020-09-15",merged:49.7,pr:32,cxx20:23,cxx23:null,lwg:1,issue:302,bug:100,avg_age:66.46,avg_wait:50.8,sum_age:70.89,sum_wait:54.19},{date:"2020-09-16",merged:47.25,pr:33,cxx20:23,cxx23:null,lwg:1,issue:303,bug:101,avg_age:65.43,avg_wait:50.21,sum_age:71.98,sum_wait:55.23},{date:"2020-09-17",merged:44.7,pr:36,cxx20:23,cxx23:null,lwg:1,issue:303,bug:101,avg_age:60.95,avg_wait:44.98,sum_age:73.15,sum_wait:53.97},{date:"2020-09-18",merged:42.24,pr:38,cxx20:23,cxx23:null,lwg:1,issue:303,bug:101,avg_age:58.71,avg_wait:42.85,sum_age:74.36,sum_wait:54.27},{date:"2020-09-19",merged:40,pr:38,cxx20:23,cxx23:null,lwg:1,issue:304,bug:102,avg_age:59.71,avg_wait:43.85,sum_age:75.63,sum_wait:55.54},{date:"2020-09-20",merged:37.86,pr:39,cxx20:23,cxx23:null,lwg:1,issue:303,bug:102,avg_age:59.16,avg_wait:43.63,sum_age:76.91,sum_wait:56.72},{date:"2020-09-21",merged:35.8,pr:41,cxx20:23,cxx23:null,lwg:1,issue:303,bug:102,avg_age:57.24,avg_wait:42.38,sum_age:78.23,sum_wait:57.92},{date:"2020-09-22",merged:44.94,pr:31,cxx20:21,cxx23:null,lwg:1,issue:299,bug:100,avg_age:71.59,avg_wait:55.01,sum_age:73.97,sum_wait:56.84},{date:"2020-09-23",merged:43.1,pr:31,cxx20:21,cxx23:null,lwg:1,issue:299,bug:100,avg_age:72.59,avg_wait:54.96,sum_age:75.01,sum_wait:56.79},{date:"2020-09-24",merged:41.13,pr:34,cxx20:21,cxx23:null,lwg:1,issue:300,bug:101,avg_age:62.85,avg_wait:46.11,sum_age:71.22,sum_wait:52.25},{date:"2020-09-25",merged:44.83,pr:28,cxx20:20,cxx23:null,lwg:1,issue:297,bug:99,avg_age:74.41,avg_wait:55.23,sum_age:69.45,sum_wait:51.55},{date:"2020-09-26",merged:42.57,pr:29,cxx20:20,cxx23:null,lwg:1,issue:297,bug:99,avg_age:72.84,avg_wait:54.32,sum_age:70.41,sum_wait:52.51},{date:"2020-09-27",merged:40.51,pr:29,cxx20:20,cxx23:null,lwg:1,issue:298,bug:99,avg_age:73.84,avg_wait:55.32,sum_age:71.38,sum_wait:53.48},{date:"2020-09-28",merged:38.52,pr:32,cxx20:20,cxx23:null,lwg:1,issue:300,bug:100,avg_age:67.84,avg_wait:51.06,sum_age:72.37,sum_wait:54.46},{date:"2020-09-29",merged:36.52,pr:33,cxx20:20,cxx23:null,lwg:1,issue:300,bug:100,avg_age:66.77,avg_wait:48.13,sum_age:73.44,sum_wait:52.94},{date:"2020-09-30",merged:34.6,pr:36,cxx20:19,cxx23:null,lwg:1,issue:299,bug:100,avg_age:62.14,avg_wait:44.92,sum_age:74.57,sum_wait:53.91},{date:"2020-10-01",merged:33.05,pr:39,cxx20:19,cxx23:null,lwg:1,issue:301,bug:101,avg_age:58.29,avg_wait:41.81,sum_age:75.77,sum_wait:54.36},{date:"2020-10-02",merged:42.5,pr:30,cxx20:19,cxx23:null,lwg:1,issue:294,bug:95,avg_age:69.79,avg_wait:50.37,sum_age:69.79,sum_wait:50.37},{date:"2020-10-03",merged:40.95,pr:30,cxx20:19,cxx23:null,lwg:1,issue:294,bug:95,avg_age:70.79,avg_wait:51.37,sum_age:70.79,sum_wait:51.37},{date:"2020-10-04",merged:39.4,pr:31,cxx20:19,cxx23:null,lwg:1,issue:294,bug:95,avg_age:69.47,avg_wait:50.69,sum_age:71.79,sum_wait:52.38},{date:"2020-10-05",merged:40.36,pr:32,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:68.08,avg_wait:49.88,sum_age:72.62,sum_wait:53.21},{date:"2020-10-06",merged:39.27,pr:33,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:67,avg_wait:49.35,sum_age:73.7,sum_wait:54.28},{date:"2020-10-07",merged:38.27,pr:34,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:65.61,avg_wait:48.48,sum_age:74.36,sum_wait:54.95},{date:"2020-10-08",merged:44.27,pr:31,cxx20:19,cxx23:null,lwg:1,issue:292,bug:93,avg_age:70.89,avg_wait:51.76,sum_age:73.26,sum_wait:53.48},{date:"2020-10-09",merged:43.27,pr:32,cxx20:19,cxx23:null,lwg:1,issue:292,bug:93,avg_age:69.65,avg_wait:51.12,sum_age:74.3,sum_wait:54.52},{date:"2020-10-10",merged:42.28,pr:32,cxx20:19,cxx23:null,lwg:1,issue:292,bug:93,avg_age:70.65,avg_wait:52.12,sum_age:75.36,sum_wait:55.59},{date:"2020-10-11",merged:41.38,pr:32,cxx20:19,cxx23:null,lwg:1,issue:293,bug:93,avg_age:71.65,avg_wait:53.12,sum_age:76.43,sum_wait:56.66},{date:"2020-10-12",merged:41.38,pr:31,cxx20:19,cxx23:null,lwg:1,issue:292,bug:93,avg_age:74.87,avg_wait:55.03,sum_age:77.36,sum_wait:56.86},{date:"2020-10-13",merged:40.03,pr:34,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:69.21,avg_wait:50.21,sum_age:78.43,sum_wait:56.91},{date:"2020-10-14",merged:38.9,pr:37,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:64.57,avg_wait:47.12,sum_age:79.64,sum_wait:58.12},{date:"2020-10-15",merged:38.01,pr:38,cxx20:19,cxx23:null,lwg:1,issue:293,bug:94,avg_age:63.87,avg_wait:46.82,sum_age:80.9,sum_wait:59.31},{date:"2020-10-16",merged:37.91,pr:39,cxx20:19,cxx23:null,lwg:1,issue:294,bug:94,avg_age:62.84,avg_wait:46.34,sum_age:81.69,sum_wait:60.25},{date:"2020-10-17",merged:40.81,pr:35,cxx20:18,cxx23:null,lwg:1,issue:293,bug:92,avg_age:70.2,avg_wait:52.45,sum_age:81.9,sum_wait:61.19},{date:"2020-10-18",merged:39.71,pr:35,cxx20:18,cxx23:null,lwg:1,issue:291,bug:92,avg_age:71.2,avg_wait:53.45,sum_age:83.06,sum_wait:62.36},{date:"2020-10-19",merged:38.66,pr:35,cxx20:18,cxx23:null,lwg:1,issue:292,bug:92,avg_age:72.2,avg_wait:54.45,sum_age:84.23,sum_wait:63.52},{date:"2020-10-20",merged:37.62,pr:37,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:69.27,avg_wait:52.49,sum_age:85.44,sum_wait:64.73},{date:"2020-10-21",merged:36.62,pr:40,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:65.04,avg_wait:49.5,sum_age:86.72,sum_wait:66},{date:"2020-10-22",merged:35.55,pr:43,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:61.47,avg_wait:45.65,sum_age:88.1,sum_wait:65.43},{date:"2020-10-23",merged:38,pr:43,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:61.98,avg_wait:46.18,sum_age:88.84,sum_wait:66.18},{date:"2020-10-24",merged:36.45,pr:44,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:61.57,avg_wait:46.12,sum_age:90.3,sum_wait:67.64},{date:"2020-10-25",merged:34.88,pr:44,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:62.57,avg_wait:47.12,sum_age:91.77,sum_wait:69.11},{date:"2020-10-26",merged:34.38,pr:43,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:64.98,avg_wait:49.17,sum_age:93.13,sum_wait:70.48},{date:"2020-10-27",merged:32.88,pr:45,cxx20:18,cxx23:null,lwg:1,issue:294,bug:92,avg_age:62.19,avg_wait:45.9,sum_age:93.28,sum_wait:68.85},{date:"2020-10-28",merged:31.31,pr:46,cxx20:18,cxx23:null,lwg:1,issue:296,bug:92,avg_age:61.82,avg_wait:45.35,sum_age:94.79,sum_wait:69.53},{date:"2020-10-29",merged:40.46,pr:34,cxx20:17,cxx23:null,lwg:1,issue:292,bug:90,avg_age:75.24,avg_wait:54.01,sum_age:85.27,sum_wait:61.21},{date:"2020-10-30",merged:38.61,pr:34,cxx20:17,cxx23:null,lwg:1,issue:293,bug:91,avg_age:76.24,avg_wait:54.76,sum_age:86.41,sum_wait:62.06},{date:"2020-10-31",merged:36.76,pr:34,cxx20:17,cxx23:null,lwg:1,issue:293,bug:91,avg_age:77.24,avg_wait:55.76,sum_age:87.54,sum_wait:63.19},{date:"2020-11-01",merged:34.98,pr:35,cxx20:17,cxx23:null,lwg:1,issue:293,bug:91,avg_age:76.08,avg_wait:54.92,sum_age:88.75,sum_wait:64.07},{date:"2020-11-02",merged:33.63,pr:37,cxx20:17,cxx23:null,lwg:1,issue:294,bug:91,avg_age:72.93,avg_wait:52.76,sum_age:89.95,sum_wait:65.07},{date:"2020-11-03",merged:35.28,pr:38,cxx20:17,cxx23:null,lwg:1,issue:297,bug:92,avg_age:69.97,avg_wait:51.38,sum_age:88.63,sum_wait:65.08},{date:"2020-11-04",merged:34.03,pr:40,cxx20:17,cxx23:null,lwg:1,issue:298,bug:92,avg_age:67.45,avg_wait:49.39,sum_age:89.93,sum_wait:65.85},{date:"2020-11-05",merged:32.95,pr:40,cxx20:17,cxx23:null,lwg:1,issue:298,bug:92,avg_age:68.45,avg_wait:50.24,sum_age:91.26,sum_wait:66.99},{date:"2020-11-06",merged:49.66,pr:23,cxx20:17,cxx23:null,lwg:1,issue:292,bug:91,avg_age:111.05,avg_wait:82.35,sum_age:85.14,sum_wait:63.14},{date:"2020-11-07",merged:48.36,pr:25,cxx20:17,cxx23:null,lwg:1,issue:293,bug:91,avg_age:103.12,avg_wait:76.72,sum_age:85.94,sum_wait:63.93},{date:"2020-11-08",merged:47.06,pr:26,cxx20:17,cxx23:null,lwg:1,issue:293,bug:91,avg_age:100.14,avg_wait:74.75,sum_age:86.78,sum_wait:64.78},{date:"2020-11-09",merged:46.76,pr:25,cxx20:17,cxx23:null,lwg:1,issue:295,bug:92,avg_age:99.83,avg_wait:76.04,sum_age:83.2,sum_wait:63.36},{date:"2020-11-10",merged:45.46,pr:28,cxx20:17,cxx23:0,lwg:1,issue:295,bug:92,avg_age:90.07,avg_wait:68.82,sum_age:84.07,sum_wait:64.23},{date:"2020-11-11",merged:44.25,pr:31,cxx20:17,cxx23:4,lwg:4,issue:297,bug:93,avg_age:81.56,avg_wait:62.36,sum_age:84.27,sum_wait:64.44},{date:"2020-11-12",merged:44.41,pr:34,cxx20:17,cxx23:4,lwg:10,issue:300,bug:94,avg_age:74.56,avg_wait:56.41,sum_age:84.5,sum_wait:63.93},{date:"2020-11-13",merged:49.46,pr:30,cxx20:17,cxx23:4,lwg:10,issue:300,bug:94,avg_age:85.06,avg_wait:64.49,sum_age:85.06,sum_wait:64.49},{date:"2020-11-14",merged:48.54,pr:32,cxx20:17,cxx23:4,lwg:10,issue:300,bug:94,avg_age:80.71,avg_wait:61.43,sum_age:86.09,sum_wait:65.52},{date:"2020-11-15",merged:47.68,pr:32,cxx20:17,cxx23:4,lwg:10,issue:300,bug:94,avg_age:81.71,avg_wait:62.43,sum_age:87.16,sum_wait:66.59},{date:"2020-11-16",merged:46.78,pr:32,cxx20:17,cxx23:4,lwg:10,issue:299,bug:93,avg_age:82.71,avg_wait:63.43,sum_age:88.23,sum_wait:67.66},{date:"2020-11-17",merged:45.97,pr:33,cxx20:17,cxx23:4,lwg:11,issue:300,bug:94,avg_age:81.19,avg_wait:61.85,sum_age:89.31,sum_wait:68.04},{date:"2020-11-18",merged:44.91,pr:34,cxx20:17,cxx23:4,lwg:12,issue:300,bug:94,avg_age:79.79,avg_wait:61.02,sum_age:90.43,sum_wait:69.16},{date:"2020-11-19",merged:43.81,pr:36,cxx20:17,cxx23:4,lwg:12,issue:298,bug:94,avg_age:76.32,avg_wait:58.53,sum_age:91.59,sum_wait:70.24},{date:"2020-11-20",merged:42.71,pr:36,cxx20:17,cxx23:4,lwg:12,issue:299,bug:95,avg_age:77.32,avg_wait:59.51,sum_age:92.79,sum_wait:71.41},{date:"2020-11-21",merged:41.62,pr:39,cxx20:17,cxx23:4,lwg:12,issue:299,bug:95,avg_age:72.35,avg_wait:55.91,sum_age:94.05,sum_wait:72.68},{date:"2020-11-22",merged:40.57,pr:41,cxx20:17,cxx23:4,lwg:12,issue:300,bug:96,avg_age:69.8,avg_wait:54.16,sum_age:95.39,sum_wait:74.02},{date:"2020-11-23",merged:39.49,pr:42,cxx20:17,cxx23:4,lwg:12,issue:301,bug:96,avg_age:69.12,avg_wait:53.85,sum_age:96.77,sum_wait:75.39},{date:"2020-11-24",merged:39.29,pr:43,cxx20:17,cxx23:4,lwg:12,issue:301,bug:96,avg_age:68.5,avg_wait:53.43,sum_age:98.18,sum_wait:76.59},{date:"2020-11-25",merged:38.12,pr:43,cxx20:17,cxx23:4,lwg:12,issue:301,bug:96,avg_age:69.5,avg_wait:54.43,sum_age:99.61,sum_wait:78.02},{date:"2020-11-26",merged:36.91,pr:43,cxx20:17,cxx23:4,lwg:12,issue:301,bug:96,avg_age:70.5,avg_wait:55.43,sum_age:101.05,sum_wait:79.45},{date:"2020-11-27",merged:35.06,pr:44,cxx20:17,cxx23:4,lwg:12,issue:301,bug:96,avg_age:69.89,avg_wait:55.17,sum_age:102.5,sum_wait:80.91},{date:"2020-11-28",merged:33.21,pr:45,cxx20:17,cxx23:4,lwg:12,issue:302,bug:97,avg_age:69.32,avg_wait:54.93,sum_age:103.98,sum_wait:82.39},{date:"2020-11-29",merged:31.34,pr:45,cxx20:17,cxx23:4,lwg:12,issue:302,bug:97,avg_age:70.32,avg_wait:55.93,sum_age:105.48,sum_wait:83.89},{date:"2020-11-30",merged:29.44,pr:46,cxx20:17,cxx23:4,lwg:12,issue:302,bug:97,avg_age:69.78,avg_wait:55.38,sum_age:107,sum_wait:84.92},{date:"2020-12-01",merged:33.54,pr:43,cxx20:17,cxx23:4,lwg:10,issue:303,bug:98,avg_age:73.38,avg_wait:57.3,sum_age:105.18,sum_wait:82.13},{date:"2020-12-02",merged:36.72,pr:39,cxx20:16,cxx23:4,lwg:9,issue:304,bug:98,avg_age:80.87,avg_wait:64.09,sum_age:105.13,sum_wait:83.32},{date:"2020-12-03",merged:44.9,pr:31,cxx20:16,cxx23:4,lwg:5,issue:300,bug:94,avg_age:99.42,avg_wait:78.76,sum_age:102.73,sum_wait:81.39},{date:"2020-12-04",merged:42.85,pr:31,cxx20:16,cxx23:4,lwg:5,issue:301,bug:94,avg_age:100.42,avg_wait:79.76,sum_age:103.77,sum_wait:82.42},{date:"2020-12-05",merged:40.81,pr:31,cxx20:16,cxx23:4,lwg:5,issue:301,bug:94,avg_age:101.42,avg_wait:80.76,sum_age:104.8,sum_wait:83.45},{date:"2020-12-06",merged:38.81,pr:31,cxx20:16,cxx23:4,lwg:5,issue:301,bug:94,avg_age:102.42,avg_wait:81.76,sum_age:105.83,sum_wait:84.49},{date:"2020-12-07",merged:36.81,pr:31,cxx20:16,cxx23:4,lwg:5,issue:301,bug:94,avg_age:103.42,avg_wait:82.76,sum_age:106.87,sum_wait:85.52},{date:"2020-12-08",merged:35.31,pr:32,cxx20:16,cxx23:4,lwg:5,issue:303,bug:96,avg_age:101.16,avg_wait:81.15,sum_age:107.91,sum_wait:86.56},{date:"2020-12-09",merged:33.86,pr:34,cxx20:16,cxx23:4,lwg:5,issue:303,bug:96,avg_age:96.2,avg_wait:77.36,sum_age:109.02,sum_wait:87.68},{date:"2020-12-10",merged:33.41,pr:34,cxx20:16,cxx23:4,lwg:5,issue:302,bug:96,avg_age:97.15,avg_wait:77.43,sum_age:110.1,sum_wait:87.75},{date:"2020-12-11",merged:31.96,pr:35,cxx20:16,cxx23:4,lwg:5,issue:303,bug:97,avg_age:95.36,avg_wait:73.97,sum_age:111.25,sum_wait:86.3},{date:"2020-12-12",merged:30.51,pr:35,cxx20:16,cxx23:4,lwg:5,issue:303,bug:97,avg_age:96.36,avg_wait:74.97,sum_age:112.42,sum_wait:87.47},{date:"2020-12-13",merged:29.09,pr:35,cxx20:16,cxx23:4,lwg:5,issue:304,bug:98,avg_age:97.36,avg_wait:75.97,sum_age:113.58,sum_wait:88.64},{date:"2020-12-14",merged:28.79,pr:35,cxx20:16,cxx23:4,lwg:5,issue:306,bug:99,avg_age:98.23,avg_wait:76.85,sum_age:114.6,sum_wait:89.65},{date:"2020-12-15",merged:27.44,pr:35,cxx20:16,cxx23:4,lwg:5,issue:305,bug:99,avg_age:99.23,avg_wait:77.85,sum_age:115.77,sum_wait:90.82},{date:"2020-12-16",merged:31.34,pr:33,cxx20:16,cxx23:4,lwg:4,issue:304,bug:99,avg_age:103.85,avg_wait:81.55,sum_age:114.23,sum_wait:89.7},{date:"2020-12-17",merged:32.89,pr:33,cxx20:16,cxx23:4,lwg:4,issue:303,bug:99,avg_age:104.78,avg_wait:82.48,sum_age:115.26,sum_wait:90.73},{date:"2020-12-18",merged:32.44,pr:34,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:102.68,avg_wait:80.8,sum_age:116.37,sum_wait:91.57},{date:"2020-12-19",merged:32.01,pr:34,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:103.68,avg_wait:81.8,sum_age:117.5,sum_wait:92.71},{date:"2020-12-20",merged:31.61,pr:34,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:104.68,avg_wait:82.8,sum_age:118.64,sum_wait:93.84},{date:"2020-12-21",merged:31.11,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:99.84,avg_wait:79.17,sum_age:119.8,sum_wait:95.01},{date:"2020-12-22",merged:30.35,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:100.84,avg_wait:80.17,sum_age:121,sum_wait:96.21},{date:"2020-12-23",merged:29.38,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:101.84,avg_wait:81.17,sum_age:122.2,sum_wait:97.41},{date:"2020-12-24",merged:28.28,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:102.84,avg_wait:82.17,sum_age:123.4,sum_wait:98.61},{date:"2020-12-25",merged:27.18,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:103.84,avg_wait:83.17,sum_age:124.6,sum_wait:99.81},{date:"2020-12-26",merged:26.08,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:104.84,avg_wait:84.17,sum_age:125.8,sum_wait:101.01},{date:"2020-12-27",merged:24.98,pr:36,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:105.84,avg_wait:85.17,sum_age:127,sum_wait:102.21},{date:"2020-12-28",merged:23.88,pr:37,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:103.96,avg_wait:83.85,sum_age:128.22,sum_wait:103.42},{date:"2020-12-29",merged:22.78,pr:37,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:104.96,avg_wait:84.56,sum_age:129.45,sum_wait:104.29},{date:"2020-12-30",merged:21.65,pr:37,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:105.96,avg_wait:85.56,sum_age:130.68,sum_wait:105.52},{date:"2020-12-31",merged:20.5,pr:37,cxx20:16,cxx23:4,lwg:4,issue:302,bug:99,avg_age:106.96,avg_wait:86.56,sum_age:131.92,sum_wait:106.76},{date:"2021-01-01",merged:19.35,pr:37,cxx20:16,cxx23:4,lwg:4,issue:303,bug:99,avg_age:107.96,avg_wait:87.56,sum_age:133.15,sum_wait:107.99},{date:"2021-01-02",merged:18.2,pr:38,cxx20:16,cxx23:4,lwg:4,issue:303,bug:99,avg_age:106.11,avg_wait:86.25,sum_age:134.41,sum_wait:109.24},{date:"2021-01-03",merged:17.05,pr:38,cxx20:16,cxx23:4,lwg:4,issue:303,bug:99,avg_age:107.11,avg_wait:87.25,sum_age:135.67,sum_wait:110.51},{date:"2021-01-04",merged:15.9,pr:38,cxx20:16,cxx23:4,lwg:4,issue:303,bug:99,avg_age:108.11,avg_wait:87.76,sum_age:136.94,sum_wait:111.16},{date:"2021-01-05",merged:16.68,pr:36,cxx20:16,cxx23:4,lwg:4,issue:304,bug:100,avg_age:114.54,avg_wait:93.06,sum_age:137.45,sum_wait:111.67},{date:"2021-01-06",merged:15.26,pr:37,cxx20:16,cxx23:4,lwg:4,issue:305,bug:100,avg_age:112.44,avg_wait:91.54,sum_age:138.68,sum_wait:112.9},{date:"2021-01-07",merged:15.76,pr:37,cxx20:15,cxx23:4,lwg:4,issue:306,bug:100,avg_age:110.37,avg_wait:91.54,sum_age:136.12,sum_wait:112.9},{date:"2021-01-08",merged:14.26,pr:37,cxx20:15,cxx23:4,lwg:4,issue:305,bug:100,avg_age:111.37,avg_wait:81.4,sum_age:137.35,sum_wait:100.39},{date:"2021-01-09",merged:12.76,pr:38,cxx20:15,cxx23:4,lwg:4,issue:305,bug:100,avg_age:109.42,avg_wait:80.24,sum_age:138.6,sum_wait:101.64},{date:"2021-01-10",merged:11.35,pr:38,cxx20:15,cxx23:4,lwg:4,issue:305,bug:100,avg_age:110.42,avg_wait:81.24,sum_age:139.87,sum_wait:102.91},{date:"2021-01-11",merged:10.23,pr:41,cxx20:15,cxx23:4,lwg:4,issue:306,bug:100,avg_age:103.31,avg_wait:76.25,sum_age:141.19,sum_wait:104.21},{date:"2021-01-12",merged:9.43,pr:41,cxx20:15,cxx23:4,lwg:4,issue:306,bug:100,avg_age:104.31,avg_wait:77.13,sum_age:142.55,sum_wait:105.41},{date:"2021-01-13",merged:8.98,pr:41,cxx20:15,cxx23:4,lwg:4,issue:306,bug:100,avg_age:105.31,avg_wait:78.13,sum_age:143.92,sum_wait:106.78},{date:"2021-01-14",merged:14.53,pr:35,cxx20:15,cxx23:4,lwg:4,issue:302,bug:97,avg_age:121.55,avg_wait:89.54,sum_age:141.8,sum_wait:104.47},{date:"2021-01-15",merged:15.08,pr:35,cxx20:14,cxx23:4,lwg:4,issue:303,bug:97,avg_age:116.71,avg_wait:88.31,sum_age:136.16,sum_wait:103.03},{date:"2021-01-16",merged:14.63,pr:36,cxx20:14,cxx23:4,lwg:4,issue:303,bug:97,avg_age:114.45,avg_wait:86.84,sum_age:137.34,sum_wait:104.21},{date:"2021-01-17",merged:14.18,pr:38,cxx20:14,cxx23:4,lwg:4,issue:303,bug:97,avg_age:109.41,avg_wait:83.26,sum_age:138.58,sum_wait:105.46},{date:"2021-01-18",merged:13.73,pr:38,cxx20:14,cxx23:4,lwg:4,issue:303,bug:97,avg_age:110.41,avg_wait:84.26,sum_age:139.85,sum_wait:106.73},{date:"2021-01-19",merged:14.31,pr:38,cxx20:14,cxx23:4,lwg:4,issue:303,bug:97,avg_age:111.31,avg_wait:85.15,sum_age:140.99,sum_wait:107.86},{date:"2021-01-20",merged:13.91,pr:38,cxx20:14,cxx23:4,lwg:4,issue:303,bug:98,avg_age:112.31,avg_wait:82.01,sum_age:142.25,sum_wait:103.88},{date:"2021-01-21",merged:15.51,pr:38,cxx20:14,cxx23:4,lwg:3,issue:303,bug:98,avg_age:113.17,avg_wait:81.49,sum_age:143.35,sum_wait:103.22},{date:"2021-01-22",merged:15.11,pr:38,cxx20:14,cxx23:4,lwg:3,issue:305,bug:99,avg_age:114.17,avg_wait:82.41,sum_age:144.62,sum_wait:104.39},{date:"2021-01-23",merged:14.71,pr:40,cxx20:14,cxx23:4,lwg:3,issue:305,bug:99,avg_age:109.44,avg_wait:79.27,sum_age:145.92,sum_wait:105.69},{date:"2021-01-24",merged:14.36,pr:40,cxx20:14,cxx23:4,lwg:3,issue:306,bug:99,avg_age:110.44,avg_wait:80.27,sum_age:147.26,sum_wait:107.03},{date:"2021-01-25",merged:14.06,pr:43,cxx20:14,cxx23:4,lwg:3,issue:306,bug:99,avg_age:103.71,avg_wait:75.64,sum_age:148.65,sum_wait:108.42},{date:"2021-01-26",merged:17.88,pr:40,cxx20:14,cxx23:4,lwg:2,issue:306,bug:99,avg_age:107.68,avg_wait:81.73,sum_age:143.57,sum_wait:108.97},{date:"2021-01-27",merged:20.76,pr:37,cxx20:13,cxx23:4,lwg:2,issue:306,bug:99,avg_age:113.16,avg_wait:86.84,sum_age:139.56,sum_wait:107.1},{date:"2021-01-28",merged:20.56,pr:39,cxx20:13,cxx23:4,lwg:2,issue:309,bug:101,avg_age:108.33,avg_wait:83.36,sum_age:140.83,sum_wait:108.37},{date:"2021-01-29",merged:20.36,pr:40,cxx20:13,cxx23:4,lwg:2,issue:310,bug:101,avg_age:106.61,avg_wait:82.25,sum_age:142.15,sum_wait:109.67},{date:"2021-01-30",merged:21.16,pr:41,cxx20:12,cxx23:4,lwg:2,issue:311,bug:102,avg_age:104.74,avg_wait:81.16,sum_age:143.15,sum_wait:110.92},{date:"2021-01-31",merged:20.96,pr:41,cxx20:12,cxx23:4,lwg:2,issue:311,bug:102,avg_age:105.74,avg_wait:82.16,sum_age:144.51,sum_wait:112.28},{date:"2021-02-01",merged:23.76,pr:40,cxx20:12,cxx23:4,lwg:2,issue:313,bug:103,avg_age:98.1,avg_wait:82.7,sum_age:130.81,sum_wait:110.26},{date:"2021-02-02",merged:26.56,pr:41,cxx20:12,cxx23:4,lwg:2,issue:314,bug:103,avg_age:96.68,avg_wait:81.19,sum_age:132.13,sum_wait:110.96},{date:"2021-02-03",merged:28.3,pr:40,cxx20:12,cxx23:4,lwg:2,issue:318,bug:103,avg_age:98.84,avg_wait:84.05,sum_age:131.79,sum_wait:112.07},{date:"2021-02-04",merged:28.8,pr:40,cxx20:12,cxx23:4,lwg:2,issue:318,bug:103,avg_age:99.59,avg_wait:82.09,sum_age:132.79,sum_wait:109.45},{date:"2021-02-05",merged:29.25,pr:44,cxx20:12,cxx23:4,lwg:2,issue:318,bug:103,avg_age:91.32,avg_wait:75.53,sum_age:133.94,sum_wait:110.77},{date:"2021-02-06",merged:28.7,pr:44,cxx20:12,cxx23:4,lwg:2,issue:319,bug:104,avg_age:92.32,avg_wait:76.53,sum_age:135.41,sum_wait:112.24},{date:"2021-02-07",merged:28.15,pr:45,cxx20:12,cxx23:4,lwg:2,issue:319,bug:104,avg_age:91.25,avg_wait:75.81,sum_age:136.88,sum_wait:113.71},{date:"2021-02-08",merged:27.59,pr:46,cxx20:12,cxx23:4,lwg:2,issue:319,bug:104,avg_age:90.26,avg_wait:75.15,sum_age:138.4,sum_wait:115.23},{date:"2021-02-09",merged:27.99,pr:49,cxx20:12,cxx23:4,lwg:2,issue:319,bug:104,avg_age:85.7,avg_wait:71.43,sum_age:139.98,sum_wait:116.67},{date:"2021-02-10",merged:27.36,pr:50,cxx20:12,cxx23:4,lwg:2,issue:321,bug:105,avg_age:84.97,avg_wait:70.93,sum_age:141.62,sum_wait:118.22},{date:"2021-02-11",merged:27.66,pr:49,cxx20:12,cxx23:4,lwg:2,issue:324,bug:105,avg_age:87.6,avg_wait:70.23,sum_age:143.07,sum_wait:114.71},{date:"2021-02-12",merged:36.96,pr:40,cxx20:12,cxx23:4,lwg:2,issue:321,bug:103,avg_age:105.37,avg_wait:82.95,sum_age:140.5,sum_wait:110.6},{date:"2021-02-13",merged:36.26,pr:41,cxx20:12,cxx23:4,lwg:2,issue:322,bug:104,avg_age:103.8,avg_wait:81.92,sum_age:141.86,sum_wait:111.96},{date:"2021-02-14",merged:35.59,pr:41,cxx20:12,cxx23:4,lwg:2,issue:322,bug:104,avg_age:104.8,avg_wait:82.92,sum_age:143.22,sum_wait:113.32},{date:"2021-02-15",merged:34.79,pr:42,cxx20:12,cxx23:4,lwg:2,issue:322,bug:104,avg_age:103.29,avg_wait:81.93,sum_age:144.6,sum_wait:114.7},{date:"2021-02-16",merged:33.91,pr:42,cxx20:12,cxx23:4,lwg:2,issue:323,bug:104,avg_age:104.29,avg_wait:80.8,sum_age:146,sum_wait:113.13},{date:"2021-02-17",merged:40.06,pr:37,cxx20:10,cxx23:4,lwg:2,issue:324,bug:104,avg_age:114.11,avg_wait:91.85,sum_age:140.73,sum_wait:113.28},{date:"2021-02-18",merged:43.21,pr:35,cxx20:10,cxx23:4,lwg:2,issue:325,bug:105,avg_age:120.54,avg_wait:97.09,sum_age:140.64,sum_wait:113.28},{date:"2021-02-19",merged:46.35,pr:35,cxx20:9,cxx23:4,lwg:2,issue:325,bug:105,avg_age:120.39,avg_wait:97.55,sum_age:140.45,sum_wait:113.81},{date:"2021-02-20",merged:45.45,pr:38,cxx20:9,cxx23:4,lwg:2,issue:325,bug:105,avg_age:111.85,avg_wait:90.77,sum_age:141.68,sum_wait:114.98},{date:"2021-02-21",merged:44.52,pr:38,cxx20:9,cxx23:4,lwg:2,issue:325,bug:105,avg_age:99.8,avg_wait:78.72,sum_age:126.42,sum_wait:99.72},{date:"2021-02-22",merged:48.43,pr:37,cxx20:9,cxx23:6,lwg:6,issue:330,bug:106,avg_age:98.22,avg_wait:78.51,sum_age:121.14,sum_wait:96.83},{date:"2021-02-23",merged:49.22,pr:40,cxx20:8,cxx23:6,lwg:6,issue:332,bug:106,avg_age:90.75,avg_wait:72.4,sum_age:121,sum_wait:96.53},{date:"2021-02-24",merged:50.21,pr:41,cxx20:7,cxx23:6,lwg:6,issue:332,bug:106,avg_age:89.42,avg_wait:71.54,sum_age:122.2,sum_wait:97.77},{date:"2021-02-25",merged:60.2,pr:31,cxx20:5,cxx23:6,lwg:6,issue:330,bug:105,avg_age:118.11,avg_wait:94.61,sum_age:122.04,sum_wait:97.76},{date:"2021-02-26",merged:60.15,pr:31,cxx20:4,cxx23:6,lwg:6,issue:330,bug:105,avg_age:116.16,avg_wait:95.48,sum_age:120.04,sum_wait:98.67},{date:"2021-02-27",merged:59.1,pr:31,cxx20:4,cxx23:6,lwg:6,issue:330,bug:105,avg_age:117.16,avg_wait:96.48,sum_age:121.07,sum_wait:99.7},{date:"2021-02-28",merged:58.06,pr:32,cxx20:4,cxx23:6,lwg:6,issue:331,bug:105,avg_age:114.48,avg_wait:94.44,sum_age:122.11,sum_wait:100.74},{date:"2021-03-01",merged:60.05,pr:30,cxx20:3,cxx23:6,lwg:6,issue:334,bug:106,avg_age:111.81,avg_wait:90.44,sum_age:111.81,sum_wait:90.44},{date:"2021-03-02",merged:64.02,pr:26,cxx20:3,cxx23:6,lwg:6,issue:331,bug:104,avg_age:124.29,avg_wait:99.63,sum_age:107.72,sum_wait:86.35},{date:"2021-03-03",merged:63.07,pr:28,cxx20:3,cxx23:6,lwg:6,issue:330,bug:104,avg_age:116.4,avg_wait:93.5,sum_age:108.64,sum_wait:87.26},{date:"2021-03-04",merged:63.87,pr:26,cxx20:3,cxx23:6,lwg:6,issue:329,bug:103,avg_age:126.29,avg_wait:101.63,sum_age:109.45,sum_wait:88.08},{date:"2021-03-05",merged:62.37,pr:28,cxx20:3,cxx23:6,lwg:6,issue:330,bug:103,avg_age:118.22,avg_wait:95.33,sum_age:110.34,sum_wait:88.97},{date:"2021-03-06",merged:60.87,pr:28,cxx20:3,cxx23:6,lwg:6,issue:329,bug:102,avg_age:119.22,avg_wait:96.33,sum_age:111.27,sum_wait:89.9},{date:"2021-03-07",merged:59.56,pr:29,cxx20:3,cxx23:6,lwg:6,issue:329,bug:102,avg_age:116.08,avg_wait:93.97,sum_age:112.21,sum_wait:90.84},{date:"2021-03-08",merged:60.36,pr:29,cxx20:3,cxx23:6,lwg:6,issue:328,bug:102,avg_age:116.36,avg_wait:94.15,sum_age:112.48,sum_wait:91.01},{date:"2021-03-09",merged:61.12,pr:28,cxx20:3,cxx23:6,lwg:6,issue:326,bug:101,avg_age:121.33,avg_wait:98.33,sum_age:113.24,sum_wait:91.77},{date:"2021-03-10",merged:61.57,pr:28,cxx20:3,cxx23:6,lwg:6,issue:326,bug:101,avg_age:122.31,avg_wait:99.3,sum_age:114.15,sum_wait:92.68},{date:"2021-03-11",merged:60.81,pr:29,cxx20:3,cxx23:6,lwg:6,issue:326,bug:101,avg_age:119.07,avg_wait:96.76,sum_age:115.1,sum_wait:93.53},{date:"2021-03-12",merged:59.96,pr:29,cxx20:3,cxx23:6,lwg:6,issue:327,bug:102,avg_age:119.94,avg_wait:97.72,sum_age:115.94,sum_wait:94.46},{date:"2021-03-13",merged:58.14,pr:31,cxx20:3,cxx23:6,lwg:6,issue:328,bug:102,avg_age:113.17,avg_wait:92.38,sum_age:116.94,sum_wait:95.46},{date:"2021-03-14",merged:56.46,pr:31,cxx20:3,cxx23:6,lwg:6,issue:328,bug:102,avg_age:114.12,avg_wait:93.34,sum_age:117.93,sum_wait:96.45},{date:"2021-03-15",merged:54.7,pr:33,cxx20:3,cxx23:6,lwg:7,issue:330,bug:102,avg_age:108.17,avg_wait:88.43,sum_age:118.99,sum_wait:97.27},{date:"2021-03-16",merged:55.88,pr:36,cxx20:3,cxx23:6,lwg:7,issue:330,bug:103,avg_age:99.98,avg_wait:81.89,sum_age:119.98,sum_wait:98.26},{date:"2021-03-17",merged:53.96,pr:41,cxx20:3,cxx23:6,lwg:7,issue:333,bug:103,avg_age:88.74,avg_wait:72.85,sum_age:121.28,sum_wait:99.56},{date:"2021-03-18",merged:58.61,pr:35,cxx20:2,cxx23:6,lwg:7,issue:332,bug:103,avg_age:100.87,avg_wait:85.3,sum_age:117.68,sum_wait:99.51},{date:"2021-03-19",merged:57.21,pr:35,cxx20:2,cxx23:6,lwg:7,issue:334,bug:103,avg_age:101.83,avg_wait:86.26,sum_age:118.81,sum_wait:100.64},{date:"2021-03-20",merged:54.81,pr:35,cxx20:2,cxx23:6,lwg:7,issue:334,bug:103,avg_age:102.83,avg_wait:87.26,sum_age:119.97,sum_wait:101.8},{date:"2021-03-21",merged:52.38,pr:35,cxx20:2,cxx23:6,lwg:7,issue:334,bug:103,avg_age:103.83,avg_wait:88.26,sum_age:121.14,sum_wait:102.97},{date:"2021-03-22",merged:61.79,pr:28,cxx20:2,cxx23:6,lwg:7,issue:331,bug:102,avg_age:123.29,avg_wait:106.24,sum_age:115.07,sum_wait:99.15},{date:"2021-03-23",merged:62.04,pr:31,cxx20:2,cxx23:6,lwg:7,issue:333,bug:102,avg_age:110.53,avg_wait:95.03,sum_age:114.21,sum_wait:98.2},{date:"2021-03-24",merged:61.49,pr:30,cxx20:2,cxx23:6,lwg:7,issue:334,bug:102,avg_age:115.17,avg_wait:99.2,sum_age:115.17,sum_wait:99.2},{date:"2021-03-25",merged:59.19,pr:33,cxx20:2,cxx23:6,lwg:7,issue:335,bug:103,avg_age:105.62,avg_wait:91.04,sum_age:116.18,sum_wait:100.14},{date:"2021-03-26",merged:58.89,pr:33,cxx20:2,cxx23:6,lwg:7,issue:336,bug:104,avg_age:106.51,avg_wait:91.92,sum_age:117.16,sum_wait:101.11},{date:"2021-03-27",merged:56.59,pr:34,cxx20:2,cxx23:6,lwg:7,issue:336,bug:104,avg_age:104.35,avg_wait:90.19,sum_age:118.26,sum_wait:102.22},{date:"2021-03-28",merged:54.27,pr:34,cxx20:2,cxx23:6,lwg:7,issue:336,bug:104,avg_age:105.35,avg_wait:91.19,sum_age:119.4,sum_wait:103.35},{date:"2021-03-29",merged:53.93,pr:35,cxx20:2,cxx23:6,lwg:7,issue:336,bug:104,avg_age:103.18,avg_wait:89.42,sum_age:120.37,sum_wait:104.32},{date:"2021-03-30",merged:51.78,pr:35,cxx20:2,cxx23:6,lwg:7,issue:336,bug:104,avg_age:104.18,avg_wait:90.27,sum_age:121.54,sum_wait:105.31},{date:"2021-03-31",merged:51.79,pr:36,cxx20:2,cxx23:6,lwg:7,issue:336,bug:105,avg_age:102.22,avg_wait:86.42,sum_age:122.66,sum_wait:103.7},{date:"2021-04-01",merged:51.87,pr:36,cxx20:2,cxx23:6,lwg:7,issue:338,bug:105,avg_age:103.03,avg_wait:87.37,sum_age:123.63,sum_wait:104.84},{date:"2021-04-02",merged:49.92,pr:37,cxx20:2,cxx23:6,lwg:7,issue:339,bug:105,avg_age:101.23,avg_wait:85.99,sum_age:124.85,sum_wait:106.06},{date:"2021-04-03",merged:48.06,pr:37,cxx20:2,cxx23:6,lwg:7,issue:340,bug:105,avg_age:102.23,avg_wait:86.99,sum_age:126.08,sum_wait:107.29},{date:"2021-04-04",merged:46.38,pr:37,cxx20:2,cxx23:6,lwg:7,issue:340,bug:105,avg_age:103.23,avg_wait:87.99,sum_age:127.32,sum_wait:108.53},{date:"2021-04-05",merged:54.76,pr:29,cxx20:2,cxx23:6,lwg:6,issue:340,bug:105,avg_age:128.61,avg_wait:109.31,sum_age:124.32,sum_wait:105.66},{date:"2021-04-06",merged:54.2,pr:30,cxx20:2,cxx23:6,lwg:6,issue:340,bug:105,avg_age:125.29,avg_wait:106.63,sum_age:125.29,sum_wait:106.63},{date:"2021-04-07",merged:55.98,pr:29,cxx20:2,cxx23:6,lwg:6,issue:339,bug:105,avg_age:129.87,avg_wait:110.53,sum_age:125.54,sum_wait:106.85},{date:"2021-04-08",merged:55.57,pr:29,cxx20:2,cxx23:6,lwg:6,issue:341,bug:105,avg_age:130.83,avg_wait:111.5,sum_age:126.47,sum_wait:107.78},{date:"2021-04-09",merged:59.12,pr:28,cxx20:2,cxx23:6,lwg:6,issue:342,bug:106,avg_age:135.87,avg_wait:115.87,sum_age:126.81,sum_wait:108.14},{date:"2021-04-10",merged:58.71,pr:28,cxx20:2,cxx23:6,lwg:6,issue:343,bug:107,avg_age:136.87,avg_wait:116.87,sum_age:127.75,sum_wait:109.08},{date:"2021-04-11",merged:57.35,pr:29,cxx20:2,cxx23:6,lwg:6,issue:346,bug:107,avg_age:133.15,avg_wait:113.8,sum_age:128.71,sum_wait:110.01},{date:"2021-04-12",merged:56.68,pr:30,cxx20:2,cxx23:6,lwg:6,issue:348,bug:108,avg_age:129.65,avg_wait:110.98,sum_age:129.65,sum_wait:110.98},{date:"2021-04-13",merged:54.88,pr:32,cxx20:2,cxx23:6,lwg:6,issue:348,bug:108,avg_age:122.51,avg_wait:105,sum_age:130.67,sum_wait:112},{date:"2021-04-14",merged:56.08,pr:33,cxx20:2,cxx23:6,lwg:6,issue:347,bug:106,avg_age:119.74,avg_wait:102.62,sum_age:131.72,sum_wait:112.88},{date:"2021-04-15",merged:58.22,pr:33,cxx20:1,cxx23:6,lwg:6,issue:346,bug:106,avg_age:120.56,avg_wait:103.5,sum_age:132.62,sum_wait:113.85},{date:"2021-04-16",merged:60.32,pr:34,cxx20:1,cxx23:6,lwg:6,issue:346,bug:106,avg_age:118.01,avg_wait:101.43,sum_age:133.74,sum_wait:114.95},{date:"2021-04-17",merged:59.44,pr:35,cxx20:1,cxx23:6,lwg:6,issue:348,bug:108,avg_age:115.62,avg_wait:99.51,sum_age:134.89,sum_wait:116.1},{date:"2021-04-18",merged:60.63,pr:38,cxx20:1,cxx23:6,lwg:6,issue:349,bug:109,avg_age:107.48,avg_wait:92.61,sum_age:136.15,sum_wait:117.3},{date:"2021-04-19",merged:60.86,pr:39,cxx20:1,cxx23:6,lwg:6,issue:349,bug:109,avg_age:105.71,avg_wait:91.2,sum_age:137.42,sum_wait:118.56},{date:"2021-04-20",merged:65.11,pr:39,cxx20:1,cxx23:6,lwg:6,issue:349,bug:109,avg_age:106.54,avg_wait:91.93,sum_age:138.5,sum_wait:119.51},{date:"2021-04-21",merged:66.34,pr:40,cxx20:1,cxx23:6,lwg:6,issue:349,bug:109,avg_age:104.87,avg_wait:90.62,sum_age:139.83,sum_wait:120.83},{date:"2021-04-22",merged:71.54,pr:35,cxx20:0,cxx23:6,lwg:6,issue:347,bug:108,avg_age:119.99,avg_wait:103.82,sum_age:139.99,sum_wait:121.12},{date:"2021-04-23",merged:69.74,pr:37,cxx20:null,cxx23:6,lwg:6,issue:347,bug:108,avg_age:114.5,avg_wait:99.2,sum_age:141.21,sum_wait:122.34},{date:"2021-04-24",merged:67.94,pr:38,cxx20:null,cxx23:6,lwg:6,issue:348,bug:108,avg_age:112.48,avg_wait:97.59,sum_age:142.48,sum_wait:123.61},{date:"2021-04-25",merged:66.07,pr:40,cxx20:null,cxx23:6,lwg:6,issue:350,bug:108,avg_age:107.83,avg_wait:93.68,sum_age:143.77,sum_wait:124.91},{date:"2021-04-26",merged:63.91,pr:40,cxx20:null,cxx23:6,lwg:6,issue:348,bug:108,avg_age:108.83,avg_wait:94.68,sum_age:145.11,sum_wait:126.24},{date:"2021-04-27",merged:61.75,pr:40,cxx20:null,cxx23:6,lwg:6,issue:347,bug:108,avg_age:109.83,avg_wait:95,sum_age:146.44,sum_wait:126.67},{date:"2021-04-28",merged:59.76,pr:40,cxx20:null,cxx23:6,lwg:6,issue:345,bug:107,avg_age:110.83,avg_wait:88.61,sum_age:147.77,sum_wait:118.15},{date:"2021-04-29",merged:57.7,pr:41,cxx20:null,cxx23:6,lwg:6,issue:348,bug:109,avg_age:109.12,avg_wait:85.8,sum_age:149.13,sum_wait:117.26},{date:"2021-04-30",merged:63.41,pr:33,cxx20:null,cxx23:6,lwg:5,issue:342,bug:107,avg_age:131.33,avg_wait:106.17,sum_age:144.47,sum_wait:116.78},{date:"2021-05-01",merged:61.25,pr:36,cxx20:null,cxx23:6,lwg:5,issue:344,bug:108,avg_age:121.34,avg_wait:98.27,sum_age:145.61,sum_wait:117.92},{date:"2021-05-02",merged:59.57,pr:38,cxx20:null,cxx23:6,lwg:5,issue:345,bug:108,avg_age:115.91,avg_wait:94.06,sum_age:146.82,sum_wait:119.14},{date:"2021-05-03",merged:58,pr:39,cxx20:null,cxx23:6,lwg:5,issue:352,bug:112,avg_age:113.93,avg_wait:92.64,sum_age:148.11,sum_wait:120.43},{date:"2021-05-04",merged:57.48,pr:40,cxx20:null,cxx23:6,lwg:5,issue:356,bug:114,avg_age:112.03,avg_wait:91.24,sum_age:149.38,sum_wait:121.65},{date:"2021-05-05",merged:55.81,pr:40,cxx20:null,cxx23:6,lwg:5,issue:358,bug:115,avg_age:113.03,avg_wait:92.24,sum_age:150.71,sum_wait:122.98},{date:"2021-05-06",merged:54.02,pr:40,cxx20:null,cxx23:6,lwg:5,issue:358,bug:115,avg_age:114.03,avg_wait:93.24,sum_age:152.05,sum_wait:124.32},{date:"2021-05-07",merged:53.02,pr:39,cxx20:null,cxx23:6,lwg:5,issue:359,bug:116,avg_age:117.48,avg_wait:95.58,sum_age:152.72,sum_wait:124.25},{date:"2021-05-08",merged:50.98,pr:40,cxx20:null,cxx23:6,lwg:5,issue:360,bug:116,avg_age:115.53,avg_wait:94.18,sum_age:154.04,sum_wait:125.57},{date:"2021-05-09",merged:48.9,pr:40,cxx20:null,cxx23:6,lwg:5,issue:361,bug:117,avg_age:116.53,avg_wait:95.18,sum_age:155.38,sum_wait:126.91},{date:"2021-05-10",merged:46.65,pr:41,cxx20:null,cxx23:6,lwg:5,issue:361,bug:117,avg_age:114.67,avg_wait:93.76,sum_age:156.71,sum_wait:128.14},{date:"2021-05-11",merged:44.28,pr:41,cxx20:null,cxx23:6,lwg:5,issue:361,bug:117,avg_age:115.67,avg_wait:94.58,sum_age:158.08,sum_wait:129.26},{date:"2021-05-12",merged:41.79,pr:41,cxx20:null,cxx23:6,lwg:5,issue:362,bug:118,avg_age:113.96,avg_wait:92.88,sum_age:155.74,sum_wait:126.93},{date:"2021-05-13",merged:39.04,pr:41,cxx20:null,cxx23:6,lwg:5,issue:363,bug:118,avg_age:114.96,avg_wait:93.88,sum_age:157.11,sum_wait:128.3},{date:"2021-05-14",merged:36.29,pr:41,cxx20:null,cxx23:6,lwg:5,issue:363,bug:117,avg_age:115.96,avg_wait:94.88,sum_age:158.48,sum_wait:129.66},{date:"2021-05-15",merged:33.67,pr:41,cxx20:null,cxx23:6,lwg:5,issue:363,bug:117,avg_age:116.96,avg_wait:95.88,sum_age:159.84,sum_wait:131.03},{date:"2021-05-16",merged:31.43,pr:41,cxx20:null,cxx23:6,lwg:5,issue:364,bug:117,avg_age:117.96,avg_wait:96.88,sum_age:161.21,sum_wait:132.4},{date:"2021-05-17",merged:30.3,pr:40,cxx20:null,cxx23:6,lwg:5,issue:364,bug:117,avg_age:121.1,avg_wait:100.14,sum_age:161.46,sum_wait:133.53},{date:"2021-05-18",merged:28.26,pr:40,cxx20:null,cxx23:6,lwg:5,issue:364,bug:118,avg_age:122.1,avg_wait:101.14,sum_age:162.8,sum_wait:134.86},{date:"2021-05-19",merged:26.32,pr:40,cxx20:null,cxx23:6,lwg:5,issue:364,bug:118,avg_age:123.1,avg_wait:102.14,sum_age:164.13,sum_wait:136.19},{date:"2021-05-20",merged:29.52,pr:35,cxx20:null,cxx23:6,lwg:4,issue:362,bug:118,avg_age:132.49,avg_wait:107.95,sum_age:154.58,sum_wait:125.95},{date:"2021-05-21",merged:27.42,pr:36,cxx20:null,cxx23:6,lwg:4,issue:362,bug:118,avg_age:129.79,avg_wait:105.93,sum_age:155.75,sum_wait:127.12},{date:"2021-05-22",merged:25.32,pr:36,cxx20:null,cxx23:6,lwg:4,issue:362,bug:118,avg_age:130.79,avg_wait:106.93,sum_age:156.95,sum_wait:128.32},{date:"2021-05-23",merged:23.27,pr:36,cxx20:null,cxx23:6,lwg:5,issue:362,bug:118,avg_age:131.79,avg_wait:107.93,sum_age:158.15,sum_wait:129.52},{date:"2021-05-24",merged:21.23,pr:37,cxx20:null,cxx23:6,lwg:5,issue:362,bug:118,avg_age:129.21,avg_wait:106,sum_age:159.36,sum_wait:130.73},{date:"2021-05-25",merged:19.36,pr:37,cxx20:null,cxx23:6,lwg:5,issue:362,bug:118,avg_age:130.21,avg_wait:107,sum_age:160.6,sum_wait:131.97},{date:"2021-05-26",merged:18.65,pr:38,cxx20:null,cxx23:6,lwg:5,issue:363,bug:119,avg_age:127.73,avg_wait:105.13,sum_age:161.79,sum_wait:133.16},{date:"2021-05-27",merged:17.12,pr:39,cxx20:null,cxx23:6,lwg:5,issue:364,bug:120,avg_age:125.44,avg_wait:102.26,sum_age:163.08,sum_wait:132.94},{date:"2021-05-28",merged:15.65,pr:41,cxx20:null,cxx23:6,lwg:5,issue:365,bug:121,avg_age:120.28,avg_wait:98.23,sum_age:164.39,sum_wait:134.25},{date:"2021-05-29",merged:14.28,pr:41,cxx20:null,cxx23:6,lwg:5,issue:366,bug:122,avg_age:121.28,avg_wait:99.23,sum_age:165.76,sum_wait:135.61},{date:"2021-05-30",merged:13.12,pr:41,cxx20:null,cxx23:6,lwg:5,issue:366,bug:122,avg_age:122.28,avg_wait:100.23,sum_age:167.12,sum_wait:136.98},{date:"2021-05-31",merged:12.18,pr:41,cxx20:null,cxx23:6,lwg:5,issue:367,bug:122,avg_age:123.28,avg_wait:101.23,sum_age:168.49,sum_wait:138.35},{date:"2021-06-01",merged:11.42,pr:42,cxx20:null,cxx23:6,lwg:5,issue:370,bug:122,avg_age:121.34,avg_wait:99.65,sum_age:169.88,sum_wait:139.51},{date:"2021-06-02",merged:10.92,pr:45,cxx20:null,cxx23:6,lwg:5,issue:371,bug:123,avg_age:114.22,avg_wait:93.97,sum_age:171.33,sum_wait:140.95},{date:"2021-06-03",merged:11.42,pr:45,cxx20:null,cxx23:6,lwg:5,issue:372,bug:123,avg_age:114.07,avg_wait:87.75,sum_age:171.11,sum_wait:131.63},{date:"2021-06-04",merged:13.92,pr:43,cxx20:null,cxx23:6,lwg:5,issue:374,bug:123,avg_age:118.05,avg_wait:90.6,sum_age:169.2,sum_wait:129.87},{date:"2021-06-05",merged:13.42,pr:43,cxx20:null,cxx23:6,lwg:5,issue:375,bug:124,avg_age:119.05,avg_wait:91.6,sum_age:170.64,sum_wait:131.3},{date:"2021-06-06",merged:12.9,pr:43,cxx20:null,cxx23:6,lwg:5,issue:375,bug:124,avg_age:120.05,avg_wait:92.6,sum_age:172.07,sum_wait:132.73},{date:"2021-06-07",merged:12.35,pr:45,cxx20:0,cxx23:6,lwg:6,issue:376,bug:124,avg_age:115.68,avg_wait:89.46,sum_age:173.53,sum_wait:134.19},{date:"2021-06-08",merged:11.8,pr:48,cxx20:7,cxx23:17,lwg:6,issue:376,bug:124,avg_age:109.42,avg_wait:84.82,sum_age:175.07,sum_wait:135.72},{date:"2021-06-09",merged:11.31,pr:55,cxx20:7,cxx23:18,lwg:6,issue:376,bug:124,avg_age:96.45,avg_wait:74.85,sum_age:176.83,sum_wait:137.22},{date:"2021-06-10",merged:10.91,pr:58,cxx20:7,cxx23:18,lwg:6,issue:378,bug:124,avg_age:92.44,avg_wait:69.37,sum_age:178.72,sum_wait:134.12},{date:"2021-06-11",merged:20.51,pr:48,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:103.79,avg_wait:82.72,sum_age:166.06,sum_wait:132.35},{date:"2021-06-12",merged:20.11,pr:49,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:102.66,avg_wait:82.03,sum_age:167.69,sum_wait:133.98},{date:"2021-06-13",merged:19.73,pr:54,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:94.12,avg_wait:75.4,sum_age:169.42,sum_wait:135.71},{date:"2021-06-14",merged:19.38,pr:56,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:91.73,avg_wait:73.66,sum_age:171.24,sum_wait:137.51},{date:"2021-06-15",merged:19.02,pr:57,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:91.11,avg_wait:73.28,sum_age:173.11,sum_wait:139.23},{date:"2021-06-16",merged:18.64,pr:59,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:89.02,avg_wait:71.79,sum_age:175.07,sum_wait:141.18},{date:"2021-06-17",merged:18.29,pr:61,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:87.08,avg_wait:67.89,sum_age:177.07,sum_wait:138.05},{date:"2021-06-18",merged:17.94,pr:61,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:88.08,avg_wait:68.83,sum_age:179.1,sum_wait:139.95},{date:"2021-06-19",merged:17.59,pr:62,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:87.65,avg_wait:68.71,sum_age:181.15,sum_wait:142},{date:"2021-06-20",merged:17.24,pr:63,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:87.26,avg_wait:68.62,sum_age:183.25,sum_wait:144.1},{date:"2021-06-21",merged:16.89,pr:63,cxx20:7,cxx23:17,lwg:6,issue:376,bug:123,avg_age:88.26,avg_wait:68.91,sum_age:185.35,sum_wait:144.7},{date:"2021-06-22",merged:16.54,pr:63,cxx20:7,cxx23:17,lwg:6,issue:377,bug:124,avg_age:89.26,avg_wait:67.34,sum_age:187.45,sum_wait:141.41},{date:"2021-06-23",merged:16.16,pr:63,cxx20:7,cxx23:17,lwg:6,issue:376,bug:124,avg_age:90.26,avg_wait:68.34,sum_age:189.55,sum_wait:143.51},{date:"2021-06-24",merged:15.68,pr:64,cxx20:7,cxx23:17,lwg:6,issue:378,bug:126,avg_age:89.85,avg_wait:68.23,sum_age:191.67,sum_wait:145.57},{date:"2021-06-25",merged:15.13,pr:64,cxx20:7,cxx23:17,lwg:6,issue:378,bug:126,avg_age:90.85,avg_wait:69.13,sum_age:193.8,sum_wait:147.47},{date:"2021-06-26",merged:14.59,pr:64,cxx20:7,cxx23:17,lwg:6,issue:378,bug:126,avg_age:91.85,avg_wait:70.13,sum_age:195.94,sum_wait:149.6},{date:"2021-06-27",merged:14.09,pr:64,cxx20:7,cxx23:17,lwg:6,issue:378,bug:126,avg_age:92.85,avg_wait:71.13,sum_age:198.07,sum_wait:151.74},{date:"2021-06-28",merged:13.59,pr:65,cxx20:7,cxx23:17,lwg:6,issue:378,bug:126,avg_age:92.42,avg_wait:71.03,sum_age:200.24,sum_wait:153.9},{date:"2021-06-29",merged:42.13,pr:37,cxx20:6,cxx23:11,lwg:6,issue:373,bug:120,avg_age:129.12,avg_wait:95.95,sum_age:159.25,sum_wait:118.34},{date:"2021-06-30",merged:41.88,pr:40,cxx20:6,cxx23:11,lwg:6,issue:373,bug:119,avg_age:120.39,avg_wait:89.71,sum_age:160.51,sum_wait:119.61},{date:"2021-07-01",merged:41.57,pr:41,cxx20:6,cxx23:11,lwg:6,issue:374,bug:119,avg_age:118.44,avg_wait:88.5,sum_age:161.86,sum_wait:120.96},{date:"2021-07-02",merged:40.82,pr:43,cxx20:6,cxx23:11,lwg:6,issue:373,bug:118,avg_age:113.92,avg_wait:85.38,sum_age:163.28,sum_wait:122.38},{date:"2021-07-03",merged:40.07,pr:45,cxx20:6,cxx23:11,lwg:6,issue:372,bug:118,avg_age:109.85,avg_wait:82.58,sum_age:164.77,sum_wait:123.87},{date:"2021-07-04",merged:39.32,pr:46,cxx20:6,cxx23:11,lwg:6,issue:373,bug:118,avg_age:108.45,avg_wait:81.77,sum_age:166.28,sum_wait:125.38},{date:"2021-07-05",merged:38.58,pr:46,cxx20:6,cxx23:11,lwg:6,issue:373,bug:118,avg_age:104.14,avg_wait:81.29,sum_age:159.69,sum_wait:124.65},{date:"2021-07-06",merged:37.88,pr:48,cxx20:6,cxx23:11,lwg:6,issue:373,bug:118,avg_age:100.79,avg_wait:78.88,sum_age:161.26,sum_wait:126.21},{date:"2021-07-07",merged:37.18,pr:49,cxx20:6,cxx23:11,lwg:6,issue:375,bug:120,avg_age:99.73,avg_wait:77.71,sum_age:162.89,sum_wait:126.93},{date:"2021-07-08",merged:36.48,pr:52,cxx20:6,cxx23:11,lwg:6,issue:375,bug:120,avg_age:94.95,avg_wait:73.84,sum_age:164.57,sum_wait:128},{date:"2021-07-09",merged:35.78,pr:52,cxx20:6,cxx23:11,lwg:6,issue:376,bug:121,avg_age:95.95,avg_wait:74.8,sum_age:166.31,sum_wait:129.66},{date:"2021-07-10",merged:35.08,pr:54,cxx20:6,cxx23:11,lwg:6,issue:376,bug:121,avg_age:93.38,avg_wait:73.02,sum_age:168.09,sum_wait:131.44},{date:"2021-07-11",merged:34.38,pr:55,cxx20:6,cxx23:11,lwg:6,issue:376,bug:121,avg_age:92.68,avg_wait:72.69,sum_age:169.91,sum_wait:133.26},{date:"2021-07-12",merged:34.68,pr:53,cxx20:6,cxx23:11,lwg:6,issue:376,bug:121,avg_age:95.82,avg_wait:74.92,sum_age:169.28,sum_wait:132.36},{date:"2021-07-13",merged:34,pr:54,cxx20:6,cxx23:11,lwg:6,issue:376,bug:121,avg_age:95.04,avg_wait:74.53,sum_age:171.06,sum_wait:134.15},{date:"2021-07-14",merged:33.44,pr:56,cxx20:6,cxx23:11,lwg:6,issue:375,bug:122,avg_age:92.63,avg_wait:72.85,sum_age:172.91,sum_wait:136},{date:"2021-07-15",merged:32.94,pr:58,cxx20:6,cxx23:11,lwg:6,issue:375,bug:122,avg_age:90.42,avg_wait:71.1,sum_age:174.82,sum_wait:137.45},{date:"2021-07-16",merged:32.44,pr:58,cxx20:6,cxx23:11,lwg:6,issue:374,bug:121,avg_age:91.42,avg_wait:72.1,sum_age:176.75,sum_wait:139.38},{date:"2021-07-17",merged:31.94,pr:59,cxx20:6,cxx23:11,lwg:6,issue:374,bug:121,avg_age:90.86,avg_wait:71.86,sum_age:178.69,sum_wait:141.33},{date:"2021-07-18",merged:31.44,pr:59,cxx20:6,cxx23:11,lwg:6,issue:374,bug:121,avg_age:91.86,avg_wait:72.86,sum_age:180.66,sum_wait:143.29},{date:"2021-07-19",merged:35.96,pr:53,cxx20:6,cxx23:11,lwg:6,issue:371,bug:120,avg_age:101.55,avg_wait:80.45,sum_age:179.4,sum_wait:142.12},{date:"2021-07-20",merged:34.01,pr:54,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:100.66,avg_wait:79.71,sum_age:181.19,sum_wait:143.48},{date:"2021-07-21",merged:32.12,pr:58,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:94.68,avg_wait:72.86,sum_age:183.06,sum_wait:140.87},{date:"2021-07-22",merged:30.67,pr:60,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:92.52,avg_wait:71.04,sum_age:185.03,sum_wait:142.09},{date:"2021-07-23",merged:29.22,pr:60,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:93.52,avg_wait:72.04,sum_age:187.03,sum_wait:144.09},{date:"2021-07-24",merged:27.77,pr:61,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:92.98,avg_wait:71.86,sum_age:189.06,sum_wait:146.11},{date:"2021-07-25",merged:26.32,pr:62,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:92.47,avg_wait:71.69,sum_age:191.11,sum_wait:148.16},{date:"2021-07-26",merged:24.87,pr:63,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:91.99,avg_wait:71.47,sum_age:193.18,sum_wait:150.09},{date:"2021-07-27",merged:23.42,pr:64,cxx20:6,cxx23:11,lwg:6,issue:372,bug:121,avg_age:91.54,avg_wait:71.34,sum_age:195.29,sum_wait:152.2},{date:"2021-07-28",merged:21.97,pr:63,cxx20:6,cxx23:11,lwg:6,issue:373,bug:121,avg_age:93.91,avg_wait:73.34,sum_age:197.2,sum_wait:154.01},{date:"2021-07-29",merged:32.52,pr:53,cxx20:6,cxx23:8,lwg:6,issue:371,bug:119,avg_age:106.99,avg_wait:83.42,sum_age:189.01,sum_wait:147.38},{date:"2021-07-30",merged:33.07,pr:52,cxx20:6,cxx23:8,lwg:6,issue:371,bug:119,avg_age:109.66,avg_wait:85.12,sum_age:190.08,sum_wait:147.54},{date:"2021-07-31",merged:31.62,pr:52,cxx20:6,cxx23:8,lwg:6,issue:372,bug:119,avg_age:110.66,avg_wait:86.12,sum_age:191.81,sum_wait:149.27},{date:"2021-08-01",merged:30.16,pr:53,cxx20:6,cxx23:8,lwg:6,issue:373,bug:119,avg_age:109.56,avg_wait:85.48,sum_age:193.55,sum_wait:151.01},{date:"2021-08-02",merged:28.66,pr:52,cxx20:6,cxx23:8,lwg:6,issue:373,bug:119,avg_age:110.77,avg_wait:86.29,sum_age:192,sum_wait:149.58},{date:"2021-08-03",merged:27.16,pr:53,cxx20:6,cxx23:8,lwg:6,issue:372,bug:119,avg_age:109.67,avg_wait:84.74,sum_age:193.75,sum_wait:149.71},{date:"2021-08-04",merged:26.66,pr:52,cxx20:6,cxx23:8,lwg:6,issue:373,bug:119,avg_age:112.77,avg_wait:86.01,sum_age:195.47,sum_wait:149.08},{date:"2021-08-05",merged:31.16,pr:50,cxx20:6,cxx23:8,lwg:6,issue:369,bug:118,avg_age:113.88,avg_wait:89.23,sum_age:189.79,sum_wait:148.72},{date:"2021-08-06",merged:29.66,pr:49,cxx20:6,cxx23:8,lwg:6,issue:370,bug:118,avg_age:108.36,avg_wait:91.23,sum_age:177,sum_wait:149.01},{date:"2021-08-07",merged:28.16,pr:50,cxx20:6,cxx23:8,lwg:6,issue:370,bug:118,avg_age:107.2,avg_wait:90.4,sum_age:178.66,sum_wait:150.67},{date:"2021-08-08",merged:27.57,pr:50,cxx20:6,cxx23:8,lwg:6,issue:370,bug:118,avg_age:108.2,avg_wait:91.4,sum_age:180.33,sum_wait:152.34},{date:"2021-08-09",merged:27.22,pr:54,cxx20:6,cxx23:8,lwg:6,issue:373,bug:118,avg_age:101.14,avg_wait:85.59,sum_age:182.06,sum_wait:154.06},{date:"2021-08-10",merged:28.87,pr:53,cxx20:4,cxx23:8,lwg:6,issue:373,bug:118,avg_age:102.55,avg_wait:87.33,sum_age:181.17,sum_wait:154.28},{date:"2021-08-11",merged:28.52,pr:55,cxx20:4,cxx23:8,lwg:6,issue:375,bug:120,avg_age:99.8,avg_wait:85.13,sum_age:182.96,sum_wait:156.07},{date:"2021-08-12",merged:28.17,pr:59,cxx20:4,cxx23:8,lwg:6,issue:376,bug:121,avg_age:94,avg_wait:80.17,sum_age:184.86,sum_wait:157.67},{date:"2021-08-13",merged:27.82,pr:60,cxx20:4,cxx23:8,lwg:6,issue:376,bug:121,avg_age:93.43,avg_wait:79.82,sum_age:186.86,sum_wait:159.63},{date:"2021-08-14",merged:27.47,pr:60,cxx20:4,cxx23:8,lwg:6,issue:376,bug:121,avg_age:94.43,avg_wait:80.82,sum_age:188.86,sum_wait:161.63},{date:"2021-08-15",merged:27.12,pr:65,cxx20:4,cxx23:8,lwg:6,issue:376,bug:121,avg_age:88.13,avg_wait:75.57,sum_age:190.96,sum_wait:163.73},{date:"2021-08-16",merged:40.77,pr:51,cxx20:4,cxx23:5,lwg:4,issue:374,bug:119,avg_age:102.58,avg_wait:90.61,sum_age:174.39,sum_wait:154.04},{date:"2021-08-17",merged:40.42,pr:51,cxx20:4,cxx23:5,lwg:4,issue:376,bug:119,avg_age:103.58,avg_wait:91.36,sum_age:176.09,sum_wait:155.31},{date:"2021-08-18",merged:40.02,pr:56,cxx20:4,cxx23:5,lwg:4,issue:376,bug:119,avg_age:95.28,avg_wait:84.15,sum_age:177.85,sum_wait:157.07},{date:"2021-08-19",merged:38.98,pr:57,cxx20:4,cxx23:5,lwg:4,issue:376,bug:119,avg_age:94.6,avg_wait:82.78,sum_age:179.74,sum_wait:157.29},{date:"2021-08-20",merged:37.93,pr:60,cxx20:4,cxx23:5,lwg:4,issue:376,bug:119,avg_age:90.83,avg_wait:79.3,sum_age:181.66,sum_wait:158.6},{date:"2021-08-21",merged:36.89,pr:62,cxx20:4,cxx23:5,lwg:4,issue:376,bug:119,avg_age:88.88,avg_wait:77.73,sum_age:183.7,sum_wait:160.63},{date:"2021-08-22",merged:35.89,pr:64,cxx20:4,cxx23:5,lwg:4,issue:377,bug:119,avg_age:87.1,avg_wait:76.29,sum_age:185.81,sum_wait:162.75},{date:"2021-08-23",merged:35.89,pr:64,cxx20:4,cxx23:5,lwg:4,issue:377,bug:119,avg_age:88.06,avg_wait:77.25,sum_age:187.86,sum_wait:164.79},{date:"2021-08-24",merged:34.87,pr:63,cxx20:4,cxx23:5,lwg:4,issue:379,bug:119,avg_age:90.22,avg_wait:78.38,sum_age:189.47,sum_wait:164.6},{date:"2021-08-25",merged:33.77,pr:67,cxx20:4,cxx23:5,lwg:4,issue:378,bug:120,avg_age:85.8,avg_wait:74.58,sum_age:191.63,sum_wait:166.56},{date:"2021-08-26",merged:50.42,pr:50,cxx20:3,cxx23:4,lwg:4,issue:370,bug:119,avg_age:110.44,avg_wait:96.7,sum_age:184.06,sum_wait:161.16},{date:"2021-08-27",merged:49.07,pr:50,cxx20:3,cxx23:4,lwg:4,issue:369,bug:118,avg_age:111.44,avg_wait:97.56,sum_age:185.73,sum_wait:162.6},{date:"2021-08-28",merged:47.78,pr:52,cxx20:3,cxx23:4,lwg:4,issue:370,bug:119,avg_age:108.14,avg_wait:94.08,sum_age:187.44,sum_wait:163.07},{date:"2021-08-29",merged:46.73,pr:53,cxx20:3,cxx23:4,lwg:4,issue:372,bug:120,avg_age:107.09,avg_wait:93.3,sum_age:189.19,sum_wait:164.83},{date:"2021-08-30",merged:47.66,pr:51,cxx20:3,cxx23:4,lwg:4,issue:371,bug:120,avg_age:112.11,avg_wait:97.78,sum_age:190.59,sum_wait:166.23},{date:"2021-08-31",merged:47.51,pr:52,cxx20:3,cxx23:4,lwg:4,issue:372,bug:120,avg_age:110.94,avg_wait:96.89,sum_age:192.3,sum_wait:167.94},{date:"2021-09-01",merged:50.36,pr:49,cxx20:2,cxx23:4,lwg:7,issue:372,bug:119,avg_age:116.18,avg_wait:103.03,sum_age:189.76,sum_wait:168.28},{date:"2021-09-02",merged:49.21,pr:49,cxx20:2,cxx23:4,lwg:7,issue:372,bug:119,avg_age:117.18,avg_wait:104.03,sum_age:191.39,sum_wait:169.91},{date:"2021-09-03",merged:48.06,pr:51,cxx20:2,cxx23:4,lwg:7,issue:374,bug:121,avg_age:113.56,avg_wait:100.93,sum_age:193.05,sum_wait:171.57},{date:"2021-09-04",merged:46.91,pr:51,cxx20:2,cxx23:4,lwg:7,issue:374,bug:121,avg_age:114.56,avg_wait:101.93,sum_age:194.75,sum_wait:173.27},{date:"2021-09-05",merged:45.64,pr:51,cxx20:2,cxx23:4,lwg:7,issue:374,bug:121,avg_age:115.56,avg_wait:102.93,sum_age:196.45,sum_wait:174.97},{date:"2021-09-06",merged:43.79,pr:51,cxx20:2,cxx23:4,lwg:7,issue:374,bug:121,avg_age:116.56,avg_wait:103.93,sum_age:198.15,sum_wait:176.67},{date:"2021-09-07",merged:41.99,pr:53,cxx20:2,cxx23:4,lwg:7,issue:375,bug:121,avg_age:113.14,avg_wait:100.76,sum_age:199.89,sum_wait:178},{date:"2021-09-08",merged:40.84,pr:54,cxx20:2,cxx23:4,lwg:7,issue:375,bug:121,avg_age:112.04,avg_wait:96.56,sum_age:201.68,sum_wait:173.81},{date:"2021-09-09",merged:39.69,pr:56,cxx20:2,cxx23:4,lwg:7,issue:376,bug:122,avg_age:109.02,avg_wait:94.09,sum_age:203.51,sum_wait:175.64},{date:"2021-09-10",merged:46.54,pr:50,cxx20:2,cxx23:3,lwg:6,issue:371,bug:120,avg_age:120.1,avg_wait:105.01,sum_age:200.16,sum_wait:175.02},{date:"2021-09-11",merged:45.39,pr:50,cxx20:2,cxx23:3,lwg:6,issue:371,bug:120,avg_age:121.1,avg_wait:106.01,sum_age:201.83,sum_wait:176.69},{date:"2021-09-12",merged:44.22,pr:51,cxx20:2,cxx23:3,lwg:6,issue:371,bug:120,avg_age:119.17,avg_wait:104.62,sum_age:202.59,sum_wait:177.86},{date:"2021-09-13",merged:43.04,pr:52,cxx20:2,cxx23:3,lwg:6,issue:371,bug:120,avg_age:117.86,avg_wait:103.57,sum_age:204.3,sum_wait:179.53},{date:"2021-09-14",merged:42.94,pr:53,cxx20:2,cxx23:3,lwg:6,issue:371,bug:120,avg_age:116.61,avg_wait:102.59,sum_age:206.02,sum_wait:181.24},{date:"2021-09-15",merged:41.9,pr:52,cxx20:2,cxx23:3,lwg:6,issue:372,bug:121,avg_age:118.46,avg_wait:104.17,sum_age:205.34,sum_wait:180.57},{date:"2021-09-16",merged:40.15,pr:53,cxx20:2,cxx23:3,lwg:6,issue:374,bug:123,avg_age:117.21,avg_wait:101.59,sum_age:207.07,sum_wait:179.47},{date:"2021-09-17",merged:38.4,pr:54,cxx20:2,cxx23:3,lwg:6,issue:375,bug:123,avg_age:116.02,avg_wait:100.69,sum_age:208.84,sum_wait:181.24},{date:"2021-09-18",merged:36.65,pr:55,cxx20:2,cxx23:3,lwg:6,issue:374,bug:123,avg_age:114.91,avg_wait:99.85,sum_age:210.66,sum_wait:183.06},{date:"2021-09-19",merged:34.9,pr:56,cxx20:2,cxx23:3,lwg:6,issue:374,bug:123,avg_age:113.85,avg_wait:99.06,sum_age:212.51,sum_wait:184.91},{date:"2021-09-20",merged:33.14,pr:56,cxx20:2,cxx23:3,lwg:6,issue:374,bug:123,avg_age:114.85,avg_wait:99.58,sum_age:214.38,sum_wait:185.89},{date:"2021-09-21",merged:31.33,pr:56,cxx20:2,cxx23:3,lwg:6,issue:373,bug:123,avg_age:115.85,avg_wait:100.58,sum_age:216.24,sum_wait:187.76},{date:"2021-09-22",merged:29.33,pr:56,cxx20:2,cxx23:3,lwg:6,issue:374,bug:123,avg_age:116.85,avg_wait:100.94,sum_age:218.11,sum_wait:188.42},{date:"2021-09-23",merged:27.33,pr:56,cxx20:2,cxx23:3,lwg:6,issue:376,bug:123,avg_age:117.85,avg_wait:100.52,sum_age:219.98,sum_wait:187.65},{date:"2021-09-24",merged:32.33,pr:49,cxx20:1,cxx23:3,lwg:4,issue:374,bug:123,avg_age:133.74,avg_wait:114.64,sum_age:218.44,sum_wait:187.24},{date:"2021-09-25",merged:30.44,pr:49,cxx20:1,cxx23:3,lwg:4,issue:374,bug:123,avg_age:134.74,avg_wait:115.64,sum_age:220.07,sum_wait:188.87},{date:"2021-09-26",merged:29.14,pr:50,cxx20:1,cxx23:3,lwg:4,issue:375,bug:124,avg_age:133.04,avg_wait:114.31,sum_age:221.73,sum_wait:190.52},{date:"2021-09-27",merged:27.84,pr:54,cxx20:1,cxx23:3,lwg:4,issue:375,bug:124,avg_age:124.14,avg_wait:106.8,sum_age:223.46,sum_wait:192.23},{date:"2021-09-28",merged:26.54,pr:55,cxx20:1,cxx23:3,lwg:4,issue:375,bug:124,avg_age:122.88,avg_wait:105.85,sum_age:225.28,sum_wait:194.05},{date:"2021-09-29",merged:25.24,pr:55,cxx20:1,cxx23:3,lwg:4,issue:374,bug:124,avg_age:123.88,avg_wait:106.72,sum_age:227.11,sum_wait:195.66},{date:"2021-09-30",merged:23.89,pr:55,cxx20:1,cxx23:3,lwg:4,issue:376,bug:126,avg_age:124.88,avg_wait:107.65,sum_age:228.94,sum_wait:197.35},{date:"2021-10-01",merged:22.19,pr:58,cxx20:1,cxx23:3,lwg:4,issue:378,bug:127,avg_age:119.39,avg_wait:103.04,sum_age:230.81,sum_wait:199.22},{date:"2021-10-02",merged:20.51,pr:59,cxx20:1,cxx23:3,lwg:4,issue:379,bug:128,avg_age:118.36,avg_wait:102.29,sum_age:232.77,sum_wait:201.18},{date:"2021-10-03",merged:18.86,pr:60,cxx20:1,cxx23:3,lwg:4,issue:379,bug:128,avg_age:117.38,avg_wait:101.59,sum_age:234.76,sum_wait:203.17},{date:"2021-10-04",merged:18.19,pr:61,cxx20:5,cxx23:15,lwg:6,issue:380,bug:128,avg_age:116.4,avg_wait:100.86,sum_age:236.67,sum_wait:205.08},{date:"2021-10-05",merged:16.68,pr:63,cxx20:5,cxx23:15,lwg:7,issue:381,bug:129,avg_age:111.19,avg_wait:95.18,sum_age:233.5,sum_wait:199.87},{date:"2021-10-06",merged:15.88,pr:65,cxx20:5,cxx23:15,lwg:7,issue:380,bug:129,avg_age:108.76,avg_wait:93.21,sum_age:235.65,sum_wait:201.96},{date:"2021-10-07",merged:15.08,pr:65,cxx20:5,cxx23:15,lwg:7,issue:380,bug:129,avg_age:109.76,avg_wait:94.21,sum_age:237.81,sum_wait:204.13},{date:"2021-10-08",merged:18.28,pr:64,cxx20:5,cxx23:15,lwg:8,issue:378,bug:128,avg_age:109.42,avg_wait:94.23,sum_age:233.42,sum_wait:201.03},{date:"2021-10-09",merged:17.51,pr:64,cxx20:5,cxx23:15,lwg:8,issue:378,bug:128,avg_age:110.42,avg_wait:95.23,sum_age:235.55,sum_wait:203.17},{date:"2021-10-10",merged:16.82,pr:65,cxx20:5,cxx23:15,lwg:8,issue:378,bug:128,avg_age:109.71,avg_wait:94.76,sum_age:237.71,sum_wait:205.32},{date:"2021-10-11",merged:16.18,pr:67,cxx20:5,cxx23:15,lwg:8,issue:379,bug:129,avg_age:107.41,avg_wait:92.91,sum_age:239.89,sum_wait:207.5},{date:"2021-10-12",merged:15.73,pr:68,cxx20:5,cxx23:15,lwg:8,issue:381,bug:129,avg_age:106.82,avg_wait:92.53,sum_age:242.13,sum_wait:209.74},{date:"2021-10-13",merged:15.28,pr:69,cxx20:5,cxx23:15,lwg:8,issue:380,bug:128,avg_age:106.1,avg_wait:91.91,sum_age:244.03,sum_wait:211.4},{date:"2021-10-14",merged:14.79,pr:69,cxx20:5,cxx23:15,lwg:8,issue:381,bug:128,avg_age:107.1,avg_wait:92.67,sum_age:246.33,sum_wait:213.13},{date:"2021-10-15",merged:13.99,pr:69,cxx20:5,cxx23:15,lwg:8,issue:381,bug:128,avg_age:108.1,avg_wait:93.67,sum_age:248.63,sum_wait:215.43},{date:"2021-10-16",merged:13.19,pr:70,cxx20:5,cxx23:15,lwg:8,issue:381,bug:128,avg_age:107.55,avg_wait:93.32,sum_age:250.95,sum_wait:217.75},{date:"2021-10-17",merged:12.39,pr:71,cxx20:5,cxx23:15,lwg:8,issue:381,bug:128,avg_age:107.03,avg_wait:93,sum_age:253.3,sum_wait:220.1},{date:"2021-10-18",merged:11.59,pr:71,cxx20:5,cxx23:15,lwg:8,issue:381,bug:128,avg_age:108.03,avg_wait:92.08,sum_age:255.66,sum_wait:217.93},{date:"2021-10-19",merged:26.79,pr:56,cxx20:4,cxx23:11,lwg:8,issue:381,bug:128,avg_age:130.78,avg_wait:114.24,sum_age:244.12,sum_wait:213.24},{date:"2021-10-20",merged:26.04,pr:58,cxx20:4,cxx23:11,lwg:8,issue:382,bug:128,avg_age:127.24,avg_wait:110.75,sum_age:246,sum_wait:214.13},{date:"2021-10-21",merged:25.64,pr:58,cxx20:4,cxx23:11,lwg:8,issue:383,bug:128,avg_age:128.24,avg_wait:111.75,sum_age:247.94,sum_wait:216.06},{date:"2021-10-22",merged:25.24,pr:61,cxx20:4,cxx23:11,lwg:8,issue:384,bug:128,avg_age:122.91,avg_wait:107.14,sum_age:249.91,sum_wait:217.86},{date:"2021-10-23",merged:24.84,pr:62,cxx20:4,cxx23:11,lwg:8,issue:384,bug:128,avg_age:121.92,avg_wait:106.41,sum_age:251.97,sum_wait:219.91},{date:"2021-10-24",merged:24.45,pr:62,cxx20:4,cxx23:11,lwg:8,issue:385,bug:129,avg_age:122.92,avg_wait:107.41,sum_age:254.04,sum_wait:221.98},{date:"2021-10-25",merged:24.05,pr:64,cxx20:4,cxx23:11,lwg:8,issue:386,bug:129,avg_age:120.06,avg_wait:105.04,sum_age:256.13,sum_wait:224.08},{date:"2021-10-26",merged:23.65,pr:66,cxx20:4,cxx23:11,lwg:8,issue:387,bug:129,avg_age:117.41,avg_wait:102.82,sum_age:258.3,sum_wait:226.2},{date:"2021-10-27",merged:23.25,pr:66,cxx20:4,cxx23:11,lwg:8,issue:387,bug:129,avg_age:118.41,avg_wait:103.49,sum_age:260.5,sum_wait:227.68},{date:"2021-10-28",merged:22.81,pr:67,cxx20:4,cxx23:11,lwg:8,issue:387,bug:129,avg_age:117.63,avg_wait:102.94,sum_age:262.71,sum_wait:229.89},{date:"2021-10-29",merged:23.21,pr:66,cxx20:4,cxx23:11,lwg:8,issue:388,bug:129,avg_age:120.41,avg_wait:105.49,sum_age:264.9,sum_wait:232.08},{date:"2021-10-30",merged:22.61,pr:68,cxx20:4,cxx23:11,lwg:8,issue:390,bug:130,avg_age:117.86,avg_wait:103.38,sum_age:267.15,sum_wait:234.32},{date:"2021-10-31",merged:22.01,pr:68,cxx20:4,cxx23:11,lwg:8,issue:390,bug:130,avg_age:118.86,avg_wait:104.38,sum_age:269.41,sum_wait:236.59},{date:"2021-11-01",merged:21.41,pr:70,cxx20:4,cxx23:11,lwg:9,issue:391,bug:131,avg_age:116.45,avg_wait:102.2,sum_age:271.71,sum_wait:238.48},{date:"2021-11-02",merged:28.81,pr:63,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:128.34,avg_wait:113.58,sum_age:269.51,sum_wait:238.52},{date:"2021-11-03",merged:28.25,pr:66,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:123.49,avg_wait:109.4,sum_age:271.68,sum_wait:240.68},{date:"2021-11-04",merged:28,pr:66,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:124.49,avg_wait:109.94,sum_age:273.88,sum_wait:241.87},{date:"2021-11-05",merged:27.75,pr:67,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:123.62,avg_wait:109.28,sum_age:276.08,sum_wait:244.07},{date:"2021-11-06",merged:27.5,pr:67,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:124.62,avg_wait:110.28,sum_age:278.31,sum_wait:246.3},{date:"2021-11-07",merged:27.24,pr:67,cxx20:4,cxx23:11,lwg:8,issue:390,bug:129,avg_age:125.66,avg_wait:111.33,sum_age:280.64,sum_wait:248.63},{date:"2021-11-08",merged:27.81,pr:67,cxx20:4,cxx23:11,lwg:8,issue:392,bug:130,avg_age:126.61,avg_wait:111.03,sum_age:282.77,sum_wait:247.96},{date:"2021-11-09",merged:26.76,pr:68,cxx20:4,cxx23:11,lwg:8,issue:393,bug:130,avg_age:125.74,avg_wait:110.38,sum_age:285.02,sum_wait:250.2},{date:"2021-11-10",merged:25.71,pr:70,cxx20:4,cxx23:11,lwg:8,issue:394,bug:131,avg_age:123.14,avg_wait:108.22,sum_age:287.32,sum_wait:252.51},{date:"2021-11-11",merged:24.66,pr:70,cxx20:4,cxx23:11,lwg:8,issue:395,bug:131,avg_age:124.14,avg_wait:109.2,sum_age:289.66,sum_wait:254.79},{date:"2021-11-12",merged:36.61,pr:58,cxx20:2,cxx23:9,lwg:8,issue:388,bug:128,avg_age:143.8,avg_wait:128.14,sum_age:278.02,sum_wait:247.73},{date:"2021-11-13",merged:38.57,pr:56,cxx20:2,cxx23:9,lwg:8,issue:386,bug:126,avg_age:149.08,avg_wait:132.85,sum_age:278.28,sum_wait:247.99},{date:"2021-11-14",merged:37.57,pr:57,cxx20:2,cxx23:9,lwg:8,issue:386,bug:126,avg_age:147.45,avg_wait:131.51,sum_age:280.16,sum_wait:249.87},{date:"2021-11-15",merged:36.57,pr:57,cxx20:2,cxx23:9,lwg:8,issue:386,bug:126,avg_age:148.45,avg_wait:132.51,sum_age:282.06,sum_wait:251.77},{date:"2021-11-16",merged:35.57,pr:57,cxx20:2,cxx23:9,lwg:8,issue:386,bug:126,avg_age:147.91,avg_wait:131.97,sum_age:281.03,sum_wait:250.74},{date:"2021-11-17",merged:34.61,pr:57,cxx20:2,cxx23:9,lwg:8,issue:388,bug:126,avg_age:148.91,avg_wait:132.29,sum_age:282.93,sum_wait:251.36},{date:"2021-11-18",merged:33.77,pr:58,cxx20:2,cxx23:9,lwg:8,issue:388,bug:126,avg_age:147.34,avg_wait:130.59,sum_age:284.86,sum_wait:252.48},{date:"2021-11-19",merged:32.92,pr:59,cxx20:2,cxx23:9,lwg:8,issue:389,bug:126,avg_age:145.84,avg_wait:128.85,sum_age:286.82,sum_wait:253.41},{date:"2021-11-20",merged:32.07,pr:59,cxx20:2,cxx23:9,lwg:8,issue:389,bug:126,avg_age:146.84,avg_wait:129.85,sum_age:288.78,sum_wait:255.37},{date:"2021-11-21",merged:31.22,pr:60,cxx20:2,cxx23:9,lwg:8,issue:390,bug:126,avg_age:145.39,avg_wait:128.68,sum_age:290.77,sum_wait:257.36},{date:"2021-11-22",merged:30.31,pr:61,cxx20:2,cxx23:9,lwg:8,issue:392,bug:127,avg_age:143.5,avg_wait:127.07,sum_age:291.79,sum_wait:258.38},{date:"2021-11-23",merged:29.06,pr:63,cxx20:2,cxx23:9,lwg:8,issue:393,bug:127,avg_age:139.94,avg_wait:124.03,sum_age:293.88,sum_wait:260.47},{date:"2021-11-24",merged:27.81,pr:63,cxx20:2,cxx23:9,lwg:8,issue:393,bug:128,avg_age:140.94,avg_wait:125.03,sum_age:295.98,sum_wait:262.57},{date:"2021-11-25",merged:26.56,pr:63,cxx20:2,cxx23:9,lwg:8,issue:393,bug:128,avg_age:141.94,avg_wait:126.03,sum_age:298.08,sum_wait:264.67},{date:"2021-11-26",merged:25.31,pr:63,cxx20:2,cxx23:9,lwg:8,issue:394,bug:128,avg_age:142.94,avg_wait:127.03,sum_age:300.18,sum_wait:266.77},{date:"2021-11-27",merged:24.06,pr:64,cxx20:2,cxx23:9,lwg:8,issue:394,bug:128,avg_age:141.71,avg_wait:126.05,sum_age:302.31,sum_wait:268.9},{date:"2021-11-28",merged:22.98,pr:64,cxx20:2,cxx23:9,lwg:8,issue:394,bug:128,avg_age:142.71,avg_wait:127.05,sum_age:304.44,sum_wait:271.03},{date:"2021-11-29",merged:22.48,pr:64,cxx20:2,cxx23:9,lwg:8,issue:396,bug:129,avg_age:143.71,avg_wait:128.05,sum_age:306.58,sum_wait:273.16},{date:"2021-11-30",merged:21.98,pr:65,cxx20:2,cxx23:9,lwg:8,issue:397,bug:129,avg_age:142.49,avg_wait:127.07,sum_age:308.74,sum_wait:275.32},{date:"2021-12-01",merged:21.48,pr:66,cxx20:2,cxx23:9,lwg:8,issue:398,bug:130,avg_age:141.33,avg_wait:126.14,sum_age:310.92,sum_wait:277.51},{date:"2021-12-02",merged:20.93,pr:66,cxx20:2,cxx23:9,lwg:8,issue:399,bug:130,avg_age:142.33,avg_wait:126.97,sum_age:313.12,sum_wait:279.33},{date:"2021-12-03",merged:19.64,pr:68,cxx20:2,cxx23:9,lwg:8,issue:398,bug:130,avg_age:139.13,avg_wait:124.22,sum_age:315.35,sum_wait:281.56},{date:"2021-12-04",merged:18.34,pr:71,cxx20:2,cxx23:9,lwg:8,issue:399,bug:131,avg_age:134.23,avg_wait:119.95,sum_age:317.68,sum_wait:283.88},{date:"2021-12-05",merged:17.04,pr:73,cxx20:2,cxx23:9,lwg:8,issue:399,bug:130,avg_age:131.54,avg_wait:117.65,sum_age:320.09,sum_wait:286.29},{date:"2021-12-06",merged:15.74,pr:74,cxx20:2,cxx23:9,lwg:8,issue:398,bug:129,avg_age:130.75,avg_wait:117.05,sum_age:322.52,sum_wait:288.73},{date:"2021-12-07",merged:14.44,pr:75,cxx20:2,cxx23:9,lwg:8,issue:398,bug:129,avg_age:130,avg_wait:116.48,sum_age:325,sum_wait:291.2},{date:"2021-12-08",merged:26.18,pr:62,cxx20:2,cxx23:9,lwg:6,issue:395,bug:129,avg_age:154.92,avg_wait:138.57,sum_age:320.17,sum_wait:286.38},{date:"2021-12-09",merged:25.93,pr:63,cxx20:2,cxx23:9,lwg:6,issue:396,bug:129,avg_age:153.46,avg_wait:136.54,sum_age:322.27,sum_wait:286.74},{date:"2021-12-10",merged:25.68,pr:63,cxx20:2,cxx23:9,lwg:21,issue:395,bug:129,avg_age:152.2,avg_wait:137.53,sum_age:319.63,sum_wait:288.81},{date:"2021-12-11",merged:24.43,pr:66,cxx20:2,cxx23:9,lwg:21,issue:397,bug:129,avg_age:146.26,avg_wait:131.78,sum_age:321.77,sum_wait:289.91},{date:"2021-12-12",merged:23.23,pr:69,cxx20:2,cxx23:9,lwg:21,issue:397,bug:129,avg_age:140.88,avg_wait:127.02,sum_age:324.02,sum_wait:292.16},{date:"2021-12-13",merged:22.38,pr:72,cxx20:2,cxx23:9,lwg:21,issue:399,bug:129,avg_age:135.99,avg_wait:122.71,sum_age:326.37,sum_wait:294.51},{date:"2021-12-14",merged:21.53,pr:74,cxx20:2,cxx23:9,lwg:21,issue:399,bug:129,avg_age:133.25,avg_wait:119.96,sum_age:328.68,sum_wait:295.9},{date:"2021-12-15",merged:20.68,pr:75,cxx20:2,cxx23:9,lwg:21,issue:398,bug:129,avg_age:132.46,avg_wait:118.99,sum_age:331.16,sum_wait:297.48},{date:"2021-12-16",merged:38.83,pr:60,cxx20:1,cxx23:6,lwg:11,issue:399,bug:130,avg_age:156.8,avg_wait:139.73,sum_age:313.59,sum_wait:279.46},{date:"2021-12-17",merged:37.98,pr:61,cxx20:1,cxx23:6,lwg:11,issue:401,bug:131,avg_age:155.22,avg_wait:138.34,sum_age:315.6,sum_wait:281.29},{date:"2021-12-18",merged:37.15,pr:65,cxx20:1,cxx23:6,lwg:11,issue:403,bug:132,avg_age:146.63,avg_wait:130.79,sum_age:317.69,sum_wait:283.38},{date:"2021-12-19",merged:36.35,pr:66,cxx20:1,cxx23:6,lwg:11,issue:403,bug:132,avg_age:145.4,avg_wait:129.8,sum_age:319.88,sum_wait:285.56},{date:"2021-12-20",merged:35.55,pr:67,cxx20:1,cxx23:6,lwg:11,issue:406,bug:133,avg_age:144.22,avg_wait:128.85,sum_age:322.08,sum_wait:287.76},{date:"2021-12-21",merged:34.75,pr:68,cxx20:1,cxx23:6,lwg:11,issue:407,bug:134,avg_age:143.09,avg_wait:127.95,sum_age:324.33,sum_wait:290.02},{date:"2021-12-22",merged:34.01,pr:68,cxx20:1,cxx23:6,lwg:11,issue:408,bug:135,avg_age:144.09,avg_wait:128.95,sum_age:326.6,sum_wait:292.28},{date:"2021-12-23",merged:34,pr:68,cxx20:1,cxx23:6,lwg:11,issue:408,bug:135,avg_age:145.09,avg_wait:129.95,sum_age:328.87,sum_wait:294.55},{date:"2021-12-24",merged:34,pr:68,cxx20:1,cxx23:6,lwg:11,issue:408,bug:135,avg_age:146.09,avg_wait:130.95,sum_age:331.13,sum_wait:296.82},{date:"2021-12-25",merged:34,pr:68,cxx20:1,cxx23:6,lwg:11,issue:408,bug:135,avg_age:147.09,avg_wait:131.95,sum_age:333.4,sum_wait:299.08},{date:"2021-12-26",merged:34,pr:69,cxx20:1,cxx23:6,lwg:11,issue:408,bug:135,avg_age:145.95,avg_wait:131.03,sum_age:335.69,sum_wait:301.37},{date:"2021-12-27",merged:34,pr:70,cxx20:1,cxx23:6,lwg:11,issue:409,bug:136,avg_age:144.86,avg_wait:130.16,sum_age:338.02,sum_wait:303.7},{date:"2021-12-28",merged:33.89,pr:70,cxx20:1,cxx23:6,lwg:11,issue:409,bug:136,avg_age:145.86,avg_wait:131.16,sum_age:340.35,sum_wait:306.03},{date:"2021-12-29",merged:33.24,pr:70,cxx20:1,cxx23:6,lwg:11,issue:409,bug:136,avg_age:146.86,avg_wait:132.16,sum_age:342.68,sum_wait:308.37},{date:"2021-12-30",merged:32.53,pr:71,cxx20:1,cxx23:6,lwg:11,issue:409,bug:136,avg_age:145.79,avg_wait:131.29,sum_age:345.03,sum_wait:310.72},{date:"2021-12-31",merged:31.78,pr:72,cxx20:1,cxx23:6,lwg:11,issue:410,bug:137,avg_age:144.75,avg_wait:130.45,sum_age:347.4,sum_wait:313.08},{date:"2022-01-01",merged:31.03,pr:72,cxx20:1,cxx23:6,lwg:11,issue:410,bug:137,avg_age:145.75,avg_wait:131.45,sum_age:349.8,sum_wait:315.48},{date:"2022-01-02",merged:30.28,pr:73,cxx20:1,cxx23:6,lwg:11,issue:412,bug:137,avg_age:144.74,avg_wait:130.64,sum_age:352.2,sum_wait:317.89},{date:"2022-01-03",merged:29.53,pr:73,cxx20:1,cxx23:6,lwg:11,issue:412,bug:137,avg_age:145.74,avg_wait:131.64,sum_age:354.64,sum_wait:320.32},{date:"2022-01-04",merged:28.78,pr:74,cxx20:1,cxx23:6,lwg:11,issue:412,bug:137,avg_age:144.77,avg_wait:130.86,sum_age:357.09,sum_wait:322.78},{date:"2022-01-05",merged:32.86,pr:69,cxx20:1,cxx23:6,lwg:11,issue:411,bug:136,avg_age:149.4,avg_wait:137.78,sum_age:343.61,sum_wait:316.89},{date:"2022-01-06",merged:31.16,pr:70,cxx20:1,cxx23:6,lwg:11,issue:411,bug:136,avg_age:148.25,avg_wait:136.8,sum_age:345.92,sum_wait:319.2},{date:"2022-01-07",merged:29.46,pr:71,cxx20:1,cxx23:6,lwg:11,issue:412,bug:136,avg_age:147.16,avg_wait:135.87,sum_age:348.28,sum_wait:321.56},{date:"2022-01-08",merged:27.76,pr:71,cxx20:1,cxx23:6,lwg:11,issue:412,bug:136,avg_age:148.16,avg_wait:136.87,sum_age:350.65,sum_wait:323.93},{date:"2022-01-09",merged:26.06,pr:71,cxx20:1,cxx23:6,lwg:11,issue:412,bug:136,avg_age:149.16,avg_wait:137.87,sum_age:353.02,sum_wait:326.29},{date:"2022-01-10",merged:24.36,pr:72,cxx20:1,cxx23:6,lwg:11,issue:412,bug:136,avg_age:148.08,avg_wait:136.95,sum_age:355.39,sum_wait:328.67},{date:"2022-01-11",merged:22.66,pr:72,cxx20:1,cxx23:6,lwg:11,issue:412,bug:136,avg_age:149.08,avg_wait:137.95,sum_age:357.79,sum_wait:331.07},{date:"2022-01-12",merged:20.96,pr:72,cxx20:1,cxx23:6,lwg:11,issue:414,bug:136,avg_age:150.08,avg_wait:138.95,sum_age:360.19,sum_wait:333.47},{date:"2022-01-13",merged:20.26,pr:73,cxx20:1,cxx23:6,lwg:11,issue:414,bug:136,avg_age:148.98,avg_wait:137.99,sum_age:362.51,sum_wait:335.79},{date:"2022-01-14",merged:18.56,pr:73,cxx20:1,cxx23:6,lwg:11,issue:417,bug:138,avg_age:149.98,avg_wait:138.61,sum_age:364.94,sum_wait:337.29},{date:"2022-01-15",merged:16.86,pr:78,cxx20:1,cxx23:6,lwg:11,issue:417,bug:138,avg_age:141.33,avg_wait:129.77,sum_age:367.46,sum_wait:337.39},{date:"2022-01-16",merged:16.16,pr:79,cxx20:1,cxx23:6,lwg:11,issue:418,bug:138,avg_age:140.53,avg_wait:129.11,sum_age:370.06,sum_wait:339.99},{date:"2022-01-17",merged:14.57,pr:79,cxx20:1,cxx23:6,lwg:11,issue:419,bug:139,avg_age:141.53,avg_wait:130.11,sum_age:372.69,sum_wait:342.63},{date:"2022-01-18",merged:13.52,pr:79,cxx20:1,cxx23:6,lwg:11,issue:419,bug:139,avg_age:142.53,avg_wait:131.11,sum_age:375.33,sum_wait:345.26},{date:"2022-01-19",merged:20.53,pr:71,cxx20:1,cxx23:6,lwg:9,issue:416,bug:139,avg_age:153.92,avg_wait:141.68,sum_age:364.29,sum_wait:335.31},{date:"2022-01-20",merged:19.58,pr:74,cxx20:1,cxx23:6,lwg:9,issue:415,bug:139,avg_age:148.66,avg_wait:136.91,sum_age:366.69,sum_wait:337.72},{date:"2022-01-21",merged:24.63,pr:69,cxx20:1,cxx23:6,lwg:7,issue:413,bug:139,avg_age:157.64,avg_wait:144.73,sum_age:362.57,sum_wait:332.87},{date:"2022-01-22",merged:23.68,pr:70,cxx20:1,cxx23:6,lwg:7,issue:413,bug:139,avg_age:156.38,avg_wait:143.65,sum_age:364.88,sum_wait:335.19},{date:"2022-01-23",merged:22.73,pr:72,cxx20:1,cxx23:6,lwg:7,issue:413,bug:139,avg_age:153.03,avg_wait:140.65,sum_age:367.26,sum_wait:337.57},{date:"2022-01-24",merged:21.78,pr:72,cxx20:1,cxx23:6,lwg:7,issue:413,bug:139,avg_age:154.03,avg_wait:141.65,sum_age:369.66,sum_wait:339.97},{date:"2022-01-25",merged:23.99,pr:68,cxx20:0,cxx23:6,lwg:7,issue:413,bug:140,avg_age:161.22,avg_wait:149.51,sum_age:365.44,sum_wait:338.89},{date:"2022-01-26",merged:23.74,pr:69,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:159.87,avg_wait:148.33,sum_age:367.71,sum_wait:341.17},{date:"2022-01-27",merged:23.49,pr:70,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:158.58,avg_wait:146.53,sum_age:370.02,sum_wait:341.9},{date:"2022-01-28",merged:23.24,pr:71,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:157.34,avg_wait:145.44,sum_age:372.37,sum_wait:344.22},{date:"2022-01-29",merged:22.99,pr:71,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:158.34,avg_wait:146.44,sum_age:374.73,sum_wait:346.58},{date:"2022-01-30",merged:22.74,pr:71,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:159.34,avg_wait:147.44,sum_age:377.1,sum_wait:348.95},{date:"2022-01-31",merged:25.49,pr:68,cxx20:null,cxx23:6,lwg:7,issue:412,bug:141,avg_age:167.12,avg_wait:154.83,sum_age:378.8,sum_wait:350.95},{date:"2022-02-01",merged:25.24,pr:69,cxx20:null,cxx23:6,lwg:7,issue:412,bug:141,avg_age:165.69,avg_wait:153.58,sum_age:381.09,sum_wait:353.24},{date:"2022-02-02",merged:24.98,pr:68,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:168.84,avg_wait:156.55,sum_age:382.7,sum_wait:354.85},{date:"2022-02-03",merged:24.68,pr:70,cxx20:null,cxx23:6,lwg:7,issue:414,bug:141,avg_age:165,avg_wait:153.06,sum_age:384.99,sum_wait:357.14},{date:"2022-02-04",merged:24.38,pr:71,cxx20:null,cxx23:6,lwg:7,issue:415,bug:141,avg_age:163.67,avg_wait:151.89,sum_age:387.35,sum_wait:359.46},{date:"2022-02-05",merged:24.06,pr:71,cxx20:null,cxx23:6,lwg:7,issue:416,bug:142,avg_age:164.67,avg_wait:152.88,sum_age:389.71,sum_wait:361.82},{date:"2022-02-06",merged:23.71,pr:72,cxx20:null,cxx23:6,lwg:7,issue:416,bug:142,avg_age:163.18,avg_wait:151.56,sum_age:391.62,sum_wait:363.74},{date:"2022-02-07",merged:28.36,pr:71,cxx20:null,cxx23:18,lwg:8,issue:413,bug:143,avg_age:165.8,avg_wait:154.04,sum_age:392.4,sum_wait:364.56},{date:"2022-02-08",merged:27.91,pr:75,cxx20:null,cxx23:18,lwg:14,issue:416,bug:144,avg_age:157.95,avg_wait:146.56,sum_age:394.86,sum_wait:366.4},{date:"2022-02-09",merged:27.16,pr:75,cxx20:null,cxx23:18,lwg:14,issue:416,bug:144,avg_age:158.95,avg_wait:147.56,sum_age:397.36,sum_wait:368.9},{date:"2022-02-10",merged:26.32,pr:76,cxx20:null,cxx23:18,lwg:14,issue:417,bug:145,avg_age:157.84,avg_wait:146.58,sum_age:399.87,sum_wait:371.34},{date:"2022-02-11",merged:37.27,pr:66,cxx20:null,cxx23:16,lwg:14,issue:417,bug:144,avg_age:182.08,avg_wait:169.12,sum_age:400.57,sum_wait:372.05},{date:"2022-02-12",merged:36.22,pr:67,cxx20:null,cxx23:16,lwg:14,issue:417,bug:144,avg_age:180.35,avg_wait:167.58,sum_age:402.77,sum_wait:374.25},{date:"2022-02-13",merged:35.17,pr:69,cxx20:null,cxx23:16,lwg:14,issue:417,bug:144,avg_age:176.11,avg_wait:163.71,sum_age:405.05,sum_wait:376.54},{date:"2022-02-14",merged:34.12,pr:72,cxx20:null,cxx23:16,lwg:14,issue:417,bug:144,avg_age:169.75,avg_wait:157.82,sum_age:407.4,sum_wait:378.78},{date:"2022-02-15",merged:33.17,pr:74,cxx20:null,cxx23:16,lwg:14,issue:418,bug:144,avg_age:166.16,avg_wait:153.99,sum_age:409.86,sum_wait:379.83},{date:"2022-02-16",merged:32.22,pr:75,cxx20:null,cxx23:16,lwg:14,issue:418,bug:143,avg_age:164.93,avg_wait:151.57,sum_age:412.32,sum_wait:378.93},{date:"2022-02-17",merged:39.27,pr:70,cxx20:null,cxx23:16,lwg:10,issue:416,bug:142,avg_age:176.12,avg_wait:161.98,sum_age:410.94,sum_wait:377.95},{date:"2022-02-18",merged:38.32,pr:70,cxx20:null,cxx23:16,lwg:10,issue:417,bug:143,avg_age:177.12,avg_wait:162.98,sum_age:413.28,sum_wait:380.28},{date:"2022-02-19",merged:37.37,pr:73,cxx20:null,cxx23:16,lwg:10,issue:417,bug:143,avg_age:170.82,avg_wait:157.26,sum_age:415.65,sum_wait:382.66},{date:"2022-02-20",merged:36.39,pr:74,cxx20:null,cxx23:16,lwg:10,issue:418,bug:143,avg_age:169.5,avg_wait:156.13,sum_age:418.11,sum_wait:385.11},{date:"2022-02-21",merged:35.29,pr:75,cxx20:null,cxx23:16,lwg:10,issue:417,bug:143,avg_age:168.24,avg_wait:155.04,sum_age:420.6,sum_wait:387.61},{date:"2022-02-22",merged:36.21,pr:74,cxx20:null,cxx23:16,lwg:10,issue:415,bug:142,avg_age:170.32,avg_wait:155.38,sum_age:420.13,sum_wait:383.28},{date:"2022-02-23",merged:35.16,pr:75,cxx20:null,cxx23:16,lwg:10,issue:415,bug:142,avg_age:169.04,avg_wait:152.04,sum_age:422.6,sum_wait:380.1},{date:"2022-02-24",merged:34.11,pr:76,cxx20:null,cxx23:16,lwg:10,issue:416,bug:143,avg_age:167.8,avg_wait:150.93,sum_age:425.1,sum_wait:382.37},{date:"2022-02-25",merged:33.07,pr:76,cxx20:null,cxx23:16,lwg:10,issue:415,bug:142,avg_age:168.8,avg_wait:151.93,sum_age:427.64,sum_wait:384.9},{date:"2022-02-26",merged:32.07,pr:78,cxx20:null,cxx23:16,lwg:10,issue:416,bug:142,avg_age:165.45,avg_wait:149.02,sum_age:430.18,sum_wait:387.44},{date:"2022-02-27",merged:30.95,pr:79,cxx20:null,cxx23:16,lwg:10,issue:416,bug:142,avg_age:164.35,avg_wait:148.12,sum_age:432.79,sum_wait:390.06},{date:"2022-02-28",merged:29.81,pr:80,cxx20:null,cxx23:16,lwg:10,issue:417,bug:143,avg_age:163.29,avg_wait:147.24,sum_age:435.44,sum_wait:392.64},{date:"2022-03-01",merged:29.96,pr:79,cxx20:null,cxx23:16,lwg:10,issue:416,bug:143,avg_age:166.32,avg_wait:150.06,sum_age:437.98,sum_wait:395.15},{date:"2022-03-02",merged:34.2,pr:75,cxx20:null,cxx23:16,lwg:8,issue:417,bug:143,avg_age:174.53,avg_wait:157.23,sum_age:436.31,sum_wait:393.06},{date:"2022-03-03",merged:36.54,pr:72,cxx20:null,cxx23:16,lwg:8,issue:415,bug:142,avg_age:179.65,avg_wait:164.47,sum_age:431.17,sum_wait:394.73},{date:"2022-03-04",merged:38.39,pr:69,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:187.22,avg_wait:171.16,sum_age:430.61,sum_wait:393.67},{date:"2022-03-05",merged:37.24,pr:69,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:188.22,avg_wait:172.16,sum_age:432.91,sum_wait:395.97},{date:"2022-03-06",merged:36.09,pr:69,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:189.22,avg_wait:173.16,sum_age:435.21,sum_wait:398.27},{date:"2022-03-07",merged:35.09,pr:69,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:190.22,avg_wait:174.16,sum_age:437.51,sum_wait:400.57},{date:"2022-03-08",merged:34.09,pr:70,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:188.49,avg_wait:172.66,sum_age:439.82,sum_wait:402.88},{date:"2022-03-09",merged:32.98,pr:70,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:189.49,avg_wait:172.45,sum_age:442.15,sum_wait:402.38},{date:"2022-03-10",merged:31.58,pr:70,cxx20:null,cxx23:16,lwg:8,issue:414,bug:142,avg_age:190.49,avg_wait:173.45,sum_age:444.48,sum_wait:404.72},{date:"2022-03-11",merged:30.18,pr:70,cxx20:null,cxx23:16,lwg:8,issue:414,bug:141,avg_age:191.49,avg_wait:174.45,sum_age:446.82,sum_wait:407.05},{date:"2022-03-12",merged:28.8,pr:70,cxx20:null,cxx23:16,lwg:8,issue:414,bug:141,avg_age:192.49,avg_wait:175.45,sum_age:449.15,sum_wait:409.38},{date:"2022-03-13",merged:27.61,pr:72,cxx20:null,cxx23:16,lwg:8,issue:414,bug:141,avg_age:188.09,avg_wait:171.52,sum_age:451.41,sum_wait:411.65},{date:"2022-03-14",merged:27.33,pr:71,cxx20:null,cxx23:15,lwg:8,issue:414,bug:141,avg_age:191.33,avg_wait:174.77,sum_age:452.82,sum_wait:413.63},{date:"2022-03-15",merged:25.98,pr:71,cxx20:null,cxx23:15,lwg:8,issue:414,bug:141,avg_age:192.33,avg_wait:175.77,sum_age:455.19,sum_wait:416},{date:"2022-03-16",merged:27.63,pr:68,cxx20:null,cxx23:14,lwg:6,issue:414,bug:141,avg_age:198.86,avg_wait:182.82,sum_age:450.74,sum_wait:414.4},{date:"2022-03-17",merged:27.28,pr:68,cxx20:null,cxx23:14,lwg:6,issue:414,bug:141,avg_age:199.79,avg_wait:183.75,sum_age:452.85,sum_wait:416.51},{date:"2022-03-18",merged:25.93,pr:68,cxx20:null,cxx23:14,lwg:6,issue:413,bug:141,avg_age:200.79,avg_wait:184.75,sum_age:455.12,sum_wait:418.78}];var p=[{date:"2017-06-09",cxx17:17,lwg:44,vso:247,libcxx:526},{date:"2017-06-16",cxx17:17,lwg:43,vso:246,libcxx:526},{date:"2017-06-23",cxx17:17,lwg:43,vso:249,libcxx:517},{date:"2017-06-30",cxx17:16,lwg:42,vso:247,libcxx:518},{date:"2017-07-07",cxx17:15,lwg:44,vso:251,libcxx:518},{date:"2017-07-14",cxx17:13,cxx20:0,lwg:42,vso:254,libcxx:519},{date:"2017-07-21",cxx17:12,cxx20:2,lwg:48,vso:257,libcxx:524},{date:"2017-07-28",cxx17:12,cxx20:2,lwg:48,vso:261,libcxx:525},{date:"2017-08-04",cxx17:10,cxx20:2,lwg:46,vso:263,libcxx:524},{date:"2017-08-11",cxx17:10,cxx20:2,lwg:46,vso:263,libcxx:494},{date:"2017-08-18",cxx17:10,cxx20:2,lwg:46,vso:267,libcxx:494},{date:"2017-08-25",cxx17:10,cxx20:2,lwg:46,vso:266,libcxx:494},{date:"2017-09-01",cxx17:10,cxx20:2,lwg:46,vso:271,libcxx:494},{date:"2017-09-08",cxx17:9,cxx20:2,lwg:46,vso:274,libcxx:494},{date:"2017-09-15",cxx17:9,cxx20:2,lwg:46,vso:278,libcxx:494},{date:"2017-09-22",cxx17:8,cxx20:2,lwg:46,vso:279,libcxx:494},{date:"2017-09-29",cxx17:8,cxx20:2,lwg:46,vso:279,libcxx:479},{date:"2017-10-06",cxx17:8,cxx20:2,lwg:46,vso:281,libcxx:481},{date:"2017-10-13",cxx17:8,cxx20:2,lwg:46,vso:282,libcxx:480},{date:"2017-10-20",cxx17:7,cxx20:2,lwg:46,vso:284,libcxx:485},{date:"2017-10-27",cxx17:7,cxx20:2,lwg:46,vso:285,libcxx:486},{date:"2017-11-03",cxx17:6,cxx20:2,lwg:46,vso:283,libcxx:487},{date:"2017-11-10",cxx17:6,cxx20:2,lwg:55,vso:284,libcxx:487},{date:"2017-11-17",cxx17:6,cxx20:15,lwg:55,vso:285,libcxx:487},{date:"2017-11-24",cxx17:5,cxx20:15,lwg:52,vso:291,libcxx:489},{date:"2017-12-01",cxx17:5,cxx20:15,lwg:52,vso:288,libcxx:489},{date:"2017-12-08",cxx17:5,cxx20:15,lwg:52,vso:289,libcxx:515},{date:"2017-12-15",cxx17:5,cxx20:15,lwg:52,vso:287,libcxx:506},{date:"2018-01-05",cxx17:5,cxx20:15,lwg:52,vso:271,libcxx:507},{date:"2018-01-12",cxx17:5,cxx20:15,lwg:52,vso:266,libcxx:497},{date:"2018-01-19",cxx17:5,cxx20:15,lwg:52,vso:268,libcxx:497},{date:"2018-01-26",cxx17:5,cxx20:15,lwg:52,vso:269,libcxx:497},{date:"2018-02-02",cxx17:5,cxx20:15,lwg:52,vso:268,libcxx:497},{date:"2018-02-09",cxx17:5,cxx20:15,lwg:52,vso:271,libcxx:497},{date:"2018-02-16",cxx17:4,cxx20:15,lwg:49,vso:269,libcxx:497},{date:"2018-02-23",cxx17:4,cxx20:15,lwg:49,vso:264,libcxx:497},{date:"2018-03-02",cxx17:4,cxx20:15,lwg:49,vso:263,libcxx:506},{date:"2018-03-09",cxx17:2,cxx20:15,lwg:22,vso:263,libcxx:505},{date:"2018-03-16",cxx17:1,cxx20:15,lwg:19,vso:261,libcxx:505},{date:"2018-03-23",cxx17:1,cxx20:20,lwg:20,vso:263,libcxx:490},{date:"2018-03-30",cxx17:1,cxx20:20,lwg:15,vso:249,libcxx:477},{date:"2018-04-06",cxx17:1,cxx20:20,lwg:15,vso:241,libcxx:477},{date:"2018-04-13",cxx17:1,cxx20:20,lwg:13,vso:234,libcxx:458},{date:"2018-04-20",cxx17:1,cxx20:20,lwg:12,vso:210,libcxx:454},{date:"2018-04-27",cxx17:1,cxx20:20,lwg:6,vso:208,libcxx:419},{date:"2018-05-04",cxx17:1,cxx20:20,lwg:6,vso:208,libcxx:418},{date:"2018-05-11",cxx17:1,cxx20:20,lwg:6,vso:206,libcxx:420},{date:"2018-05-18",cxx17:1,cxx20:20,lwg:3,vso:203,libcxx:411},{date:"2018-05-25",cxx17:1,cxx20:20,lwg:2,vso:205,libcxx:410},{date:"2018-06-01",cxx17:1,cxx20:20,lwg:1,vso:205,libcxx:409},{date:"2018-06-08",cxx17:1,cxx20:20,lwg:1,vso:205,libcxx:409},{date:"2018-06-15",cxx17:1,cxx20:35,lwg:2,vso:206,libcxx:410},{date:"2018-06-22",cxx17:1,cxx20:35,lwg:2,vso:208,libcxx:410},{date:"2018-06-29",cxx17:1,cxx20:35,lwg:2,vso:210,libcxx:410},{date:"2018-07-06",cxx17:1,cxx20:35,lwg:2,vso:212,libcxx:410},{date:"2018-07-13",cxx17:1,cxx20:35,lwg:2,vso:213,libcxx:410},{date:"2018-07-20",cxx17:1,cxx20:35,lwg:2,vso:215,libcxx:410},{date:"2018-07-27",cxx17:1,cxx20:34,lwg:2,vso:216,libcxx:410},{date:"2018-08-03",cxx17:1,cxx20:34,lwg:2,vso:216,libcxx:410},{date:"2018-08-10",cxx17:1,cxx20:34,lwg:2,vso:216,libcxx:533},{date:"2018-08-17",cxx17:1,cxx20:34,lwg:2,vso:216,libcxx:535},{date:"2018-08-24",cxx17:1,cxx20:34,lwg:2,vso:217,libcxx:535},{date:"2018-08-31",cxx17:1,cxx20:34,lwg:2,vso:218,libcxx:530},{date:"2018-09-07",cxx17:1,cxx20:34,lwg:2,vso:219,libcxx:530},{date:"2018-09-14",cxx17:1,cxx20:34,lwg:2,vso:220,libcxx:530},{date:"2018-09-21",cxx17:1,cxx20:34,lwg:2,vso:220,libcxx:530},{date:"2018-09-28",cxx17:1,cxx20:34,lwg:2,vso:220,libcxx:530},{date:"2018-10-05",cxx17:1,cxx20:34,lwg:2,vso:220,libcxx:530},{date:"2018-10-12",cxx17:1,cxx20:34,lwg:2,vso:221,libcxx:530},{date:"2018-10-19",cxx17:1,cxx20:34,lwg:2,vso:223,libcxx:530},{date:"2018-10-26",cxx17:1,cxx20:34,lwg:2,vso:225,libcxx:533},{date:"2018-11-02",cxx17:1,cxx20:34,lwg:2,vso:227,libcxx:533},{date:"2018-11-09",cxx17:1,cxx20:34,lwg:2,vso:229,libcxx:533},{date:"2018-11-16",cxx17:1,cxx20:51,lwg:10,vso:230,libcxx:535},{date:"2018-11-23",cxx17:1,cxx20:51,lwg:10,vso:232,libcxx:535},{date:"2018-11-30",cxx17:1,cxx20:51,lwg:9,vso:233,libcxx:538},{date:"2018-12-07",cxx17:1,cxx20:51,lwg:9,vso:235,libcxx:538},{date:"2018-12-14",cxx17:1,cxx20:51,lwg:9,vso:238,libcxx:538},{date:"2018-12-21",cxx17:1,cxx20:51,lwg:9,vso:238,libcxx:538},{date:"2018-12-28",cxx17:1,cxx20:51,lwg:9,vso:238,libcxx:538},{date:"2019-01-04",cxx17:1,cxx20:51,lwg:9,vso:238,libcxx:538},{date:"2019-01-11",cxx17:1,cxx20:51,lwg:9,vso:235,libcxx:538},{date:"2019-01-18",cxx17:1,cxx20:50,lwg:9,vso:233,libcxx:538},{date:"2019-01-25",cxx17:1,cxx20:49,lwg:9,vso:233,libcxx:541},{date:"2019-02-01",cxx17:1,cxx20:48,lwg:9,vso:233,libcxx:540},{date:"2019-02-08",cxx17:1,cxx20:48,lwg:9,vso:233,libcxx:540},{date:"2019-02-15",cxx17:1,cxx20:48,lwg:9,vso:232,libcxx:540},{date:"2019-02-22",cxx17:1,cxx20:48,lwg:9,vso:234,libcxx:540},{date:"2019-03-01",cxx17:1,cxx20:57,lwg:10,vso:236,libcxx:540},{date:"2019-03-08",cxx17:1,cxx20:55,lwg:10,vso:237,libcxx:540},{date:"2019-03-15",cxx17:1,cxx20:54,lwg:8,vso:235,libcxx:540},{date:"2019-03-22",cxx17:1,cxx20:53,lwg:8,vso:236,libcxx:577},{date:"2019-03-29",cxx17:1,cxx20:52,lwg:8,vso:237,libcxx:577},{date:"2019-04-05",cxx17:1,cxx20:50,lwg:8,vso:238,libcxx:578},{date:"2019-04-12",cxx17:1,cxx20:50,lwg:8,vso:238,libcxx:578},{date:"2019-04-19",cxx17:1,cxx20:50,lwg:8,vso:240,libcxx:578},{date:"2019-04-26",cxx17:1,cxx20:50,lwg:8,vso:243,libcxx:578},{date:"2019-05-03",cxx17:1,cxx20:48,lwg:8,vso:230,libcxx:573},{date:"2019-05-10",cxx17:1,cxx20:47,lwg:8,vso:229,libcxx:541},{date:"2019-05-17",cxx17:1,cxx20:46,lwg:8,vso:232,libcxx:541},{date:"2019-05-24",cxx17:1,cxx20:44,lwg:8,vso:224,libcxx:531},{date:"2019-05-31",cxx17:1,cxx20:44,lwg:7,vso:226,libcxx:531},{date:"2019-06-07",cxx17:1,cxx20:43,lwg:1,vso:223,libcxx:531},{date:"2019-06-14",cxx17:1,cxx20:43,lwg:1,vso:197,libcxx:531},{date:"2019-06-21",cxx17:1,cxx20:43,lwg:1,vso:195,libcxx:531},{date:"2019-06-28",cxx17:1,cxx20:42,lwg:1,vso:196,libcxx:531},{date:"2019-07-05",cxx17:1,cxx20:42,lwg:1,vso:197,libcxx:531},{date:"2019-07-12",cxx17:1,cxx20:42,lwg:1,vso:198,libcxx:531},{date:"2019-07-19",cxx17:1,cxx20:42,lwg:1,vso:199,libcxx:531},{date:"2019-07-26",cxx17:1,cxx20:59,lwg:5,vso:195,libcxx:531},{date:"2019-08-02",cxx17:1,cxx20:59,lwg:5,vso:196,libcxx:531},{date:"2019-08-09",cxx17:1,cxx20:60,lwg:6,vso:198,libcxx:474},{date:"2019-08-16",cxx17:0,cxx20:60,lwg:5,vso:198,libcxx:474},{date:"2019-08-23",cxx20:60,lwg:5,vso:199,libcxx:474},{date:"2019-08-30",cxx20:60,lwg:5,vso:201,libcxx:474},{date:"2019-09-06",vso:202,libcxx:474},{date:"2019-09-13",vso:201,libcxx:474},{date:"2019-09-20",vso:201,libcxx:474},{date:"2019-09-27",vso:200,libcxx:474},{date:"2019-10-04",vso:201,libcxx:474},{date:"2019-10-11",vso:203,libcxx:485},{date:"2019-10-18",vso:201,libcxx:485},{date:"2019-10-25",vso:202,libcxx:490},{date:"2019-11-01",vso:201,libcxx:494},{date:"2019-11-08",vso:201,libcxx:494},{date:"2019-11-15",vso:193,libcxx:494},{date:"2019-11-22",vso:188,libcxx:494},{date:"2019-11-29",vso:188,libcxx:494},{date:"2019-12-06",vso:186,libcxx:496},{date:"2019-12-13",vso:184,libcxx:502},{date:"2019-12-20",vso:187,libcxx:494},{date:"2019-12-27",vso:187,libcxx:494},{date:"2020-01-03",vso:187,libcxx:494},{date:"2020-01-10",vso:183,libcxx:495},{date:"2020-01-17",vso:182,libcxx:501},{date:"2020-01-24",vso:180,libcxx:498},{date:"2020-01-31",vso:181,libcxx:503},{date:"2020-02-07",vso:182,libcxx:504},{date:"2020-02-14",vso:183,libcxx:504},{date:"2020-02-21",vso:182,libcxx:503},{date:"2020-02-28",vso:182,libcxx:503},{date:"2020-03-06",vso:181,libcxx:528},{date:"2020-03-13",vso:182,libcxx:538},{date:"2020-03-20",vso:184,libcxx:542},{date:"2020-03-27",vso:185,libcxx:544},{date:"2020-04-03",vso:184,libcxx:546},{date:"2020-04-10",vso:182,libcxx:545},{date:"2020-04-17",vso:181,libcxx:538},{date:"2020-04-24",vso:178,libcxx:538},{date:"2020-05-01",vso:176,libcxx:578},{date:"2020-05-08",vso:178,libcxx:558},{date:"2020-05-15",vso:178,libcxx:558},{date:"2020-05-22",vso:175,libcxx:545},{date:"2020-05-29",vso:175,libcxx:545},{date:"2020-06-05",vso:176,libcxx:545},{date:"2020-06-12",vso:176,libcxx:545},{date:"2020-06-19",vso:178,libcxx:545},{date:"2020-06-26",vso:176,libcxx:547},{date:"2020-07-03",vso:169,libcxx:548},{date:"2020-07-10",vso:169,libcxx:546},{date:"2020-07-17",vso:166,libcxx:546},{date:"2020-07-24",vso:166,libcxx:546},{date:"2020-07-31",vso:160,libcxx:545},{date:"2020-08-07",vso:161,libcxx:546},{date:"2020-08-14",vso:159,libcxx:534},{date:"2020-08-21",vso:153,libcxx:534},{date:"2020-08-28",vso:142,libcxx:533},{date:"2020-09-04",vso:145,libcxx:539},{date:"2020-09-11",vso:145,libcxx:539},{date:"2020-09-18",vso:146,libcxx:538},{date:"2020-09-25",vso:148,libcxx:535},{date:"2020-10-02",vso:148,libcxx:535},{date:"2020-10-09",vso:147,libcxx:537},{date:"2020-10-16",vso:148,libcxx:537},{date:"2020-10-23",vso:147,libcxx:537},{date:"2020-10-30",vso:142,libcxx:564},{date:"2020-11-06",vso:151,libcxx:564},{date:"2020-11-13",vso:149,libcxx:564},{date:"2020-11-20",vso:150,libcxx:564},{date:"2020-11-27",vso:150,libcxx:564},{date:"2020-12-04",vso:152,libcxx:563},{date:"2020-12-11",vso:150,libcxx:563},{date:"2020-12-18",vso:152,libcxx:563},{date:"2020-12-25",vso:152,libcxx:563},{date:"2021-01-01",vso:152,libcxx:563},{date:"2021-01-08",vso:151,libcxx:563},{date:"2021-01-15",vso:151,libcxx:563},{date:"2021-01-22",vso:152,libcxx:563},{date:"2021-01-29",vso:152,libcxx:563},{date:"2021-02-05",vso:155,libcxx:588},{date:"2021-02-12",vso:158,libcxx:570},{date:"2021-02-19",vso:159,libcxx:579},{date:"2021-02-26",vso:157,libcxx:591},{date:"2021-03-05",vso:159,libcxx:579},{date:"2021-03-12",vso:161,libcxx:579},{date:"2021-03-19",vso:161,libcxx:579},{date:"2021-03-26",vso:159,libcxx:579},{date:"2021-04-02",vso:161,libcxx:579},{date:"2021-04-09",vso:163,libcxx:579},{date:"2021-04-16",vso:164,libcxx:579},{date:"2021-04-23",vso:173,libcxx:594},{date:"2021-04-30",vso:173,libcxx:594},{date:"2021-05-07",vso:176,libcxx:594},{date:"2021-05-14",vso:176,libcxx:594},{date:"2021-05-21",vso:177,libcxx:601},{date:"2021-05-28",vso:178,libcxx:601},{date:"2021-06-04",vso:183,libcxx:601},{date:"2021-06-11",vso:178,libcxx:601},{date:"2021-06-18",vso:175,libcxx:601},{date:"2021-06-25",vso:174,libcxx:601},{date:"2021-07-02",vso:170,libcxx:602},{date:"2021-07-09",vso:172,libcxx:602},{date:"2021-07-16",vso:171,libcxx:602},{date:"2021-07-23",vso:172,libcxx:603},{date:"2021-07-30",vso:173,libcxx:603},{date:"2021-08-06",vso:169,libcxx:603},{date:"2021-08-13",vso:172,libcxx:603},{date:"2021-08-20",vso:172,libcxx:602},{date:"2021-08-27",vso:168,libcxx:604},{date:"2021-09-03",vso:167,libcxx:604},{date:"2021-09-10",vso:168,libcxx:604},{date:"2021-09-17",vso:165,libcxx:604},{date:"2021-09-24",vso:167,libcxx:604},{date:"2021-10-01",vso:167,libcxx:604},{date:"2021-10-08",vso:168,libcxx:604},{date:"2021-10-15",vso:170,libcxx:595},{date:"2021-10-22",vso:169,libcxx:595},{date:"2021-10-29",vso:170,libcxx:595},{date:"2021-11-05",vso:170,libcxx:595},{date:"2021-11-12",vso:169,libcxx:588},{date:"2021-11-19",vso:171,libcxx:588},{date:"2021-11-26",vso:172,libcxx:588},{date:"2021-12-03",vso:174,libcxx:588},{date:"2021-12-10",vso:174,libcxx:588},{date:"2021-12-17",vso:174,libcxx:590},{date:"2021-12-24",vso:176,libcxx:590},{date:"2021-12-31",vso:177,libcxx:590},{date:"2022-01-07",vso:180,libcxx:590},{date:"2022-01-14",vso:182,libcxx:590},{date:"2022-01-21",vso:183,libcxx:587},{date:"2022-01-28",vso:183,libcxx:587},{date:"2022-02-04",vso:185,libcxx:587},{date:"2022-02-11",vso:187,libcxx:586},{date:"2022-02-18",vso:189,libcxx:622},{date:"2022-02-25",vso:191,libcxx:622},{date:"2022-03-04",vso:192,libcxx:626},{date:"2022-03-11",vso:192,libcxx:626},{date:"2022-03-18",vso:194,libcxx:626}];var T=[{date:"2019-10-16",merge_bar:29},{date:"2019-11-16",merge_bar:20},{date:"2019-12-16",merge_bar:26},{date:"2020-01-16",merge_bar:32},{date:"2020-02-16",merge_bar:27},{date:"2020-03-16",merge_bar:49},{date:"2020-04-16",merge_bar:47},{date:"2020-05-16",merge_bar:43},{date:"2020-06-16",merge_bar:29},{date:"2020-07-16",merge_bar:62},{date:"2020-08-16",merge_bar:73},{date:"2020-09-16",merge_bar:35},{date:"2020-10-16",merge_bar:42},{date:"2020-11-16",merge_bar:30},{date:"2020-12-16",merge_bar:30},{date:"2021-01-16",merge_bar:22},{date:"2021-02-16",merge_bar:58},{date:"2021-03-16",merge_bar:52},{date:"2021-04-16",merge_bar:65},{date:"2021-05-16",merge_bar:9},{date:"2021-06-16",merge_bar:43},{date:"2021-07-16",merge_bar:21},{date:"2021-08-16",merge_bar:45},{date:"2021-09-16",merge_bar:20},{date:"2021-10-16",merge_bar:22},{date:"2021-11-16",merge_bar:25},{date:"2021-12-16",merge_bar:34},{date:"2022-01-16",merge_bar:27},{date:"2022-02-16",merge_bar:27}];o.register(...B);function A(g,a){let e=[];for(let x of g){let _=a(x);_!==void 0&&e.push({x:x.date,y:_})}return e}function i(g){return A(l,a=>a[g])}function r(g){return A(p,a=>a[g])}function W(g){return A(T,a=>a[g])}var u=class{constructor(a,e,x=!1){this.url_key=a,this.chart_label=e,this.default_hidden=x}},h=class{static lookup(a,e){let x=this[a].get(e);if(x===void 0)throw new Error("HiddenInfoMaps.lookup() should always find the value.");return x}},v=h;v.url_key=new Map,v.chart_label=new Map,(()=>{let a=[new u("cxx17","C++17 Features"),new u("cxx20","C++20 Features"),new u("cxx23","C++23 Features"),new u("lwg","LWG Resolutions"),new u("pr","Pull Requests"),new u("vso","Old Bugs"),new u("bug","GitHub Bugs"),new u("issue","GitHub Issues"),new u("libcxx","Skipped Libcxx Tests"),new u("avg_age","Average Age",!0),new u("avg_wait","Average Wait",!0),new u("sum_age","Combined Age"),new u("sum_wait","Combined Wait"),new u("merged","Line: Sliding Window"),new u("merge_bar","Bars: Calendar Months")];for(let e of a)h.url_key.set(e.url_key,e),h.chart_label.set(e.chart_label,e)})();var b=new URLSearchParams(window.location.search),E="n",M="y";function s(g){let{chart_label:a,default_hidden:e}=v.lookup("url_key",g),x,_=b.get(g);return _===E?x=!0:_===M?x=!1:x=e,{label:a,hidden:x}}function H(){let g=window.location.pathname,a=`${b}`;a.length>0&&(g+=`?${a}`),window.history.replaceState({},"",g)}var P={datasets:[{data:r("cxx17"),borderColor:"#9966FF",backgroundColor:"#9966FF",borderDash:[10,5],yAxisID:"smallAxis",...s("cxx17")},{data:r("cxx20").concat(i("cxx20")),borderColor:"#7030A0",backgroundColor:"#7030A0",yAxisID:"smallAxis",...s("cxx20")},{data:i("cxx23"),borderColor:"#9966FF",backgroundColor:"#9966FF",yAxisID:"smallAxis",...s("cxx23")},{data:r("lwg").concat(i("lwg")),borderColor:"#0070C0",backgroundColor:"#0070C0",yAxisID:"smallAxis",...s("lwg")},{data:i("pr"),borderColor:"#00B050",backgroundColor:"#00B050",yAxisID:"smallAxis",...s("pr")},{data:r("vso"),borderColor:"#900000",backgroundColor:"#900000",yAxisID:"largeAxis",...s("vso")},{data:i("bug"),borderColor:"#FF0000",backgroundColor:"#FF0000",yAxisID:"largeAxis",...s("bug")},{data:i("issue"),borderColor:"#909090",backgroundColor:"#909090",yAxisID:"largeAxis",...s("issue")},{data:r("libcxx"),borderColor:"#FFC000",backgroundColor:"#FFC000",yAxisID:"largeAxis",...s("libcxx")}]},q={datasets:[{data:i("avg_age"),borderColor:"#909090",backgroundColor:"#909090",yAxisID:"leftAxis",...s("avg_age")},{data:i("avg_wait"),borderColor:"#FF9090",backgroundColor:"#FF9090",yAxisID:"leftAxis",...s("avg_wait")},{data:i("sum_age"),borderColor:"#000000",backgroundColor:"#000000",yAxisID:"rightAxis",...s("sum_age")},{data:i("sum_wait"),borderColor:"#FF0000",backgroundColor:"#FF0000",yAxisID:"rightAxis",...s("sum_wait")}]},z={datasets:[{data:i("merged"),borderColor:"#00B050",backgroundColor:"#00B050",yAxisID:"mergeAxis",...s("merged")},{type:"bar",data:W("merge_bar"),borderColor:"#CCCCCC",borderWidth:1,yAxisID:"mergeAxis",...s("merge_bar")}]},$={min:"2017-06-09",time:{unit:"quarter"}},F={min:"2019-09-20",time:{unit:"quarter"}},G={min:"2021-01-01",time:{unit:"month"}},y=[$,F,G],S=1,w=S,R={animation:{duration:0},elements:{line:{borderCapStyle:"round",borderJoinStyle:"round",fill:!1,spanGaps:!1},point:{radius:0}},hover:{mode:"nearest"}};function U(g,a,e){let x=e.chart,_=a.datasetIndex,m=x.isDatasetVisible(_);m?x.hide(_):x.show(_),a.hidden=m;let{url_key:c,default_hidden:C}=v.lookup("chart_label",a.text);m===C?b.delete(c):(b.set(c,m?E:M),b.sort()),H()}var D={legend:{onClick:U},tooltip:{mode:"nearest",intersect:!1}},I={display:!0,font:{size:24}};function f(g){return{type:"time",min:g.min,max:l[l.length-1].date,grid:{offset:!1},offset:!1,time:{parser:"yyyy-MM-dd",tooltipFormat:"MMM d, yyyy",unit:g.time.unit,displayFormats:{quarter:"MMM yyyy"}}}}var V={...R,plugins:{...D,title:{...I,text:"STL Status Chart"}},scales:{x:f(y[w]),largeAxis:{type:"linear",display:"auto",position:"left",title:{display:!0,text:"Bugs, Issues, Skipped Libcxx Tests"},min:0,max:900,ticks:{stepSize:100}},smallAxis:{type:"linear",display:"auto",position:"right",title:{display:!0,text:"Features, LWG Resolutions, Pull Requests"},min:0,max:90,ticks:{stepSize:10}}}},J={...R,plugins:{...D,title:{...I,text:"Pull Request Age"}},scales:{x:f(F),leftAxis:{type:"linear",display:"auto",position:"left",title:{display:!0,text:"Average Age, Average Wait (days)"},min:0,max:500,ticks:{stepSize:100}},rightAxis:{type:"linear",display:"auto",position:"right",title:{display:!0,text:"Combined Age, Combined Wait (PR-months)"},min:0,max:500,ticks:{stepSize:100}}}},O={...R,plugins:{...D,title:{...I,text:"Monthly Merged PRs"}},scales:{x:f(F),mergeAxis:{type:"linear",display:"auto",position:"right",title:{display:!0,text:"PRs / month"},min:0,max:80,ticks:{stepSize:10}}}};function n(g,a){let e=document.getElementById(g);if(e===null)throw new Error(`document.getElementById('${g}') returned null.`);if(e instanceof a)return e;throw new Error(`document.getElementById('${g}') returned an unexpected type.`)}function j(){let g=new o("statusChart",{type:"line",data:P,options:V}),a=new o("ageChart",{type:"line",data:q,options:J}),e=new o("mergeChart",{type:"line",data:z,options:O});function x(t,d){if(!("scales"in t.options))throw new Error("update_chart_timeframe() expected chart.options.scales to exist.");t.options.scales.x=f(y[d]),t.update()}let _=n("moreHistory",HTMLButtonElement),m=n("lessHistory",HTMLButtonElement);function c(){_.disabled=w===0,m.disabled=w===y.length-1;let t=Math.max(w,S);x(g,w),x(a,t),x(e,t)}_.addEventListener("click",function(){w>0&&--w,c()}),m.addEventListener("click",function(){w - - - - - - + + + @@ -92,10 +93,10 @@

Explanation

and excluding only cxx20, cxx23, and LWG to avoid double-counting.
  • () - - Skipped tests in the libcxx test suite. There are many reasons for skipped tests: + + Skipped/failing tests in the libcxx test suite. There are many reasons for such tests: STL bugs, test bugs, compiler bugs, missing STL features, missing compiler features, etc. - To avoid double-counting, this chart excludes skipped tests due to missing STL features. + To avoid double-counting, this line excludes missing STL features.
  • diff --git a/package-lock.json b/package-lock.json index de7ff52e5c2..af9fd53e91a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,13 +11,17 @@ "dependencies": { "@octokit/graphql": "^4.8.0", "@types/cli-progress": "^3.9.2", - "@types/luxon": "^2.0.9", - "@types/node": "^17.0.13", - "@types/yargs": "^17.0.8", + "@types/luxon": "^2.3.1", + "@types/node": "^17.0.21", + "@types/yargs": "^17.0.10", + "chart.js": "^3.7.1", + "chartjs-adapter-luxon": "^1.1.0", "cli-progress": "^3.10.0", - "dotenv": "^14.3.2", - "luxon": "^2.3.0", - "typescript": "^4.5.5", + "dotenv": "^16.0.0", + "esbuild": "^0.14.27", + "http-server": "^14.1.0", + "luxon": "^2.3.1", + "typescript": "^4.6.2", "yargs": "^17.3.1" } }, @@ -86,27 +90,27 @@ } }, "node_modules/@types/luxon": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.9.tgz", - "integrity": "sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.1.tgz", + "integrity": "sha512-nAPUltOT28fal2eDZz8yyzNhBjHw1NEymFBP7Q9iCShqpflWPybxHbD7pw/46jQmT+HXOy1QN5hNTms8MOTlOQ==" }, "node_modules/@types/node": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz", - "integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "node_modules/@types/yargs": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz", - "integrity": "sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==", + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/ansi-regex": { "version": "5.0.1", @@ -130,6 +134,66 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==" + }, + "node_modules/chartjs-adapter-luxon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/chartjs-adapter-luxon/-/chartjs-adapter-luxon-1.1.0.tgz", + "integrity": "sha512-CS+xBWEyXYVLBZ3dSY/MwlSXhz8er4JjkApazY84ft/++oOLsmkt6TaXBCsUFudum7QdoYmpxiL/gSp20+emkw==", + "peerDependencies": { + "chart.js": "^3.0.0", + "luxon": "^1.0.0 || ^2.0.0" + } + }, "node_modules/cli-progress": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.10.0.tgz", @@ -167,15 +231,31 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "node_modules/dotenv": { - "version": "14.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-14.3.2.tgz", - "integrity": "sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", + "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", "engines": { "node": ">=12" } @@ -185,6 +265,340 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/esbuild": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", + "integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.27", + "esbuild-android-arm64": "0.14.27", + "esbuild-darwin-64": "0.14.27", + "esbuild-darwin-arm64": "0.14.27", + "esbuild-freebsd-64": "0.14.27", + "esbuild-freebsd-arm64": "0.14.27", + "esbuild-linux-32": "0.14.27", + "esbuild-linux-64": "0.14.27", + "esbuild-linux-arm": "0.14.27", + "esbuild-linux-arm64": "0.14.27", + "esbuild-linux-mips64le": "0.14.27", + "esbuild-linux-ppc64le": "0.14.27", + "esbuild-linux-riscv64": "0.14.27", + "esbuild-linux-s390x": "0.14.27", + "esbuild-netbsd-64": "0.14.27", + "esbuild-openbsd-64": "0.14.27", + "esbuild-sunos-64": "0.14.27", + "esbuild-windows-32": "0.14.27", + "esbuild-windows-64": "0.14.27", + "esbuild-windows-arm64": "0.14.27" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", + "integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", + "integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", + "integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", + "integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", + "integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", + "integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", + "integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", + "integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", + "integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", + "integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", + "integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", + "integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", + "integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", + "integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", + "integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", + "integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", + "integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", + "integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", + "integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", + "integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -193,6 +607,35 @@ "node": ">=6" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -201,6 +644,118 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-server": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.0.tgz", + "integrity": "sha512-5lYsIcZtf6pdR8tCtzAHTWrAveo4liUlJdWc7YafwK/maPgYHs+VNP6KpCClmUnSorJrARVMXqtT055zBv11Yg==", + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -217,14 +772,51 @@ "node": ">=0.10.0" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/luxon": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.0.tgz", - "integrity": "sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz", + "integrity": "sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==", "engines": { "node": ">=12" } }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -244,6 +836,14 @@ } } }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -252,6 +852,41 @@ "wrappy": "1" } }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -260,6 +895,39 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -284,15 +952,26 @@ "node": ">=8" } }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -301,16 +980,43 @@ "node": ">=4.2.0" } }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -367,9 +1073,9 @@ } }, "node_modules/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "engines": { "node": ">=12" } @@ -441,27 +1147,27 @@ } }, "@types/luxon": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.0.9.tgz", - "integrity": "sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.1.tgz", + "integrity": "sha512-nAPUltOT28fal2eDZz8yyzNhBjHw1NEymFBP7Q9iCShqpflWPybxHbD7pw/46jQmT+HXOy1QN5hNTms8MOTlOQ==" }, "@types/node": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz", - "integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "@types/yargs": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz", - "integrity": "sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==", + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "ansi-regex": { "version": "5.0.1", @@ -476,6 +1182,51 @@ "color-convert": "^2.0.1" } }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==" + }, + "chartjs-adapter-luxon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/chartjs-adapter-luxon/-/chartjs-adapter-luxon-1.1.0.tgz", + "integrity": "sha512-CS+xBWEyXYVLBZ3dSY/MwlSXhz8er4JjkApazY84ft/++oOLsmkt6TaXBCsUFudum7QdoYmpxiL/gSp20+emkw==", + "requires": {} + }, "cli-progress": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.10.0.tgz", @@ -507,31 +1258,285 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=" + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "dotenv": { - "version": "14.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-14.3.2.tgz", - "integrity": "sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==" + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", + "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "esbuild": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", + "integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", + "requires": { + "esbuild-android-64": "0.14.27", + "esbuild-android-arm64": "0.14.27", + "esbuild-darwin-64": "0.14.27", + "esbuild-darwin-arm64": "0.14.27", + "esbuild-freebsd-64": "0.14.27", + "esbuild-freebsd-arm64": "0.14.27", + "esbuild-linux-32": "0.14.27", + "esbuild-linux-64": "0.14.27", + "esbuild-linux-arm": "0.14.27", + "esbuild-linux-arm64": "0.14.27", + "esbuild-linux-mips64le": "0.14.27", + "esbuild-linux-ppc64le": "0.14.27", + "esbuild-linux-riscv64": "0.14.27", + "esbuild-linux-s390x": "0.14.27", + "esbuild-netbsd-64": "0.14.27", + "esbuild-openbsd-64": "0.14.27", + "esbuild-sunos-64": "0.14.27", + "esbuild-windows-32": "0.14.27", + "esbuild-windows-64": "0.14.27", + "esbuild-windows-arm64": "0.14.27" + } + }, + "esbuild-android-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", + "integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", + "integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", + "integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", + "integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", + "integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", + "integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", + "integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", + "integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", + "integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", + "integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", + "integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", + "integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", + "integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", + "integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", + "integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", + "integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", + "integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", + "integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", + "integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", + "integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-server": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.0.tgz", + "integrity": "sha512-5lYsIcZtf6pdR8tCtzAHTWrAveo4liUlJdWc7YafwK/maPgYHs+VNP6KpCClmUnSorJrARVMXqtT055zBv11Yg==", + "requires": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -542,10 +1547,38 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "luxon": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.0.tgz", - "integrity": "sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz", + "integrity": "sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node-fetch": { "version": "2.6.7", @@ -555,6 +1588,11 @@ "whatwg-url": "^5.0.0" } }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -563,11 +1601,64 @@ "wrappy": "1" } }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -586,26 +1677,55 @@ "ansi-regex": "^5.0.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" + }, + "union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "requires": { + "qs": "^6.4.0" + } }, "universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "requires": { + "iconv-lite": "0.6.3" + } + }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -650,9 +1770,9 @@ } }, "yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" } } } diff --git a/package.json b/package.json index 7cdafc3741f..9431b943cf1 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,11 @@ "description": "STL Status Chart", "main": "gather_stats.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "pregather": "npx tsc -p src_gather/tsconfig.json", + "gather": "node built/gather_stats.js", + "premake": "npx tsc -p src/tsconfig.json", + "make": "npx esbuild src/status_chart.ts --bundle --format=esm --minify --target=es2020 --external:chart.js --external:chartjs-adapter-luxon --outfile=built/status_chart.mjs", + "view": "npx http-server -c-1 -o" }, "repository": { "type": "git", @@ -28,13 +32,17 @@ "dependencies": { "@octokit/graphql": "^4.8.0", "@types/cli-progress": "^3.9.2", - "@types/luxon": "^2.0.9", - "@types/node": "^17.0.13", - "@types/yargs": "^17.0.8", + "@types/luxon": "^2.3.1", + "@types/node": "^17.0.21", + "@types/yargs": "^17.0.10", + "chart.js": "^3.7.1", + "chartjs-adapter-luxon": "^1.1.0", "cli-progress": "^3.10.0", - "dotenv": "^14.3.2", - "luxon": "^2.3.0", - "typescript": "^4.5.5", + "dotenv": "^16.0.0", + "esbuild": "^0.14.27", + "http-server": "^14.1.0", + "luxon": "^2.3.1", + "typescript": "^4.6.2", "yargs": "^17.3.1" } } diff --git a/daily_table.js b/src/daily_table.ts similarity index 99% rename from daily_table.js rename to src/daily_table.ts index 767ef76a80b..583fa12b5ae 100644 --- a/daily_table.js +++ b/src/daily_table.ts @@ -2,8 +2,21 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // Generated file - DO NOT EDIT manually! -'use strict'; -const daily_table = [ +export type DailyRow = { + date: string; + merged: number; + pr: number | null; + cxx20: number | null; + cxx23: number | null; + lwg: number | null; + issue: number | null; + bug: number | null; + avg_age: number; + avg_wait: number; + sum_age: number; + sum_wait: number; +}; +export const daily_table: DailyRow[] = [ { date: '2019-09-05', merged: 3.00, pr: 1, cxx20: 60, cxx23: null, lwg: 7, issue: 5, bug: null, avg_age: 0.23, avg_wait: 0.23, sum_age: 0.01, sum_wait: 0.01, }, { date: '2019-09-06', merged: 6.00, pr: 1, cxx20: 60, cxx23: null, lwg: 7, issue: 6, bug: null, avg_age: 0.03, avg_wait: 0.03, sum_age: 0.00, sum_wait: 0.00, }, { date: '2019-09-07', merged: 6.00, pr: 2, cxx20: 60, cxx23: null, lwg: 7, issue: 6, bug: null, avg_age: 0.84, avg_wait: 0.64, sum_age: 0.06, sum_wait: 0.04, }, diff --git a/monthly_table.js b/src/monthly_table.ts similarity index 92% rename from monthly_table.js rename to src/monthly_table.ts index e0e3772690d..9beef5a0d15 100644 --- a/monthly_table.js +++ b/src/monthly_table.ts @@ -2,8 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // Generated file - DO NOT EDIT manually! -'use strict'; -const monthly_table = [ +export type MonthlyRow = { + date: string; + merge_bar: number; +}; +export const monthly_table: MonthlyRow[] = [ { date: '2019-10-16', merge_bar: 29, }, { date: '2019-11-16', merge_bar: 20, }, { date: '2019-12-16', merge_bar: 26, }, diff --git a/src/status_chart.ts b/src/status_chart.ts new file mode 100644 index 00000000000..5efff6b1046 --- /dev/null +++ b/src/status_chart.ts @@ -0,0 +1,572 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +import { Chart, ChartEvent, ChartType, LegendElement, LegendItem, TimeUnit, registerables } from 'chart.js'; +Chart.register(...registerables); +import 'chartjs-adapter-luxon'; + +import { DailyRow, daily_table } from './daily_table'; +import { WeeklyRow, weekly_table } from './weekly_table'; +import { MonthlyRow, monthly_table } from './monthly_table'; + +type StlDataPoint = { + x: string; + y: number | null; +}; + +function get_values( + table: TimelyRow[], + get_y: (row: TimelyRow) => number | null | undefined +) { + const datapoints: StlDataPoint[] = []; + for (const row of table) { + const y = get_y(row); + if (y !== undefined) { + datapoints.push({ x: row.date, y: y }); + } + } + return datapoints; +} + +function get_daily_values(key: Exclude) { + return get_values(daily_table, row => row[key]); +} + +function get_weekly_values(key: Exclude) { + return get_values(weekly_table, row => row[key]); +} + +function get_monthly_values(key: Exclude) { + return get_values(monthly_table, row => row[key]); +} + +class HiddenInfo { + url_key: string; + chart_label: string; + default_hidden: boolean; + + constructor(url_key: string, chart_label: string, default_hidden: boolean = false) { + this.url_key = url_key; + this.chart_label = chart_label; + this.default_hidden = default_hidden; + } +} + +class HiddenInfoMaps { + static url_key = new Map(); + static chart_label = new Map(); + + static { + const arr = [ + new HiddenInfo('cxx17', 'C++17 Features'), + new HiddenInfo('cxx20', 'C++20 Features'), + new HiddenInfo('cxx23', 'C++23 Features'), + new HiddenInfo('lwg', 'LWG Resolutions'), + new HiddenInfo('pr', 'Pull Requests'), + new HiddenInfo('vso', 'Old Bugs'), + new HiddenInfo('bug', 'GitHub Bugs'), + new HiddenInfo('issue', 'GitHub Issues'), + new HiddenInfo('libcxx', 'Skipped Libcxx Tests'), + + new HiddenInfo('avg_age', 'Average Age', true), + new HiddenInfo('avg_wait', 'Average Wait', true), + new HiddenInfo('sum_age', 'Combined Age'), + new HiddenInfo('sum_wait', 'Combined Wait'), + + new HiddenInfo('merged', 'Line: Sliding Window'), + new HiddenInfo('merge_bar', 'Bars: Calendar Months'), + ]; + + for (const elem of arr) { + this.url_key.set(elem.url_key, elem); + this.chart_label.set(elem.chart_label, elem); + } + } + + static lookup(field: 'url_key' | 'chart_label', value: string) { + const ret = this[field].get(value); + + if (ret === undefined) { + throw new Error('HiddenInfoMaps.lookup() should always find the value.'); + } + + return ret; + } +} + +const url_search_params = new URLSearchParams(window.location.search); +const hide_string = 'n'; +const show_string = 'y'; + +function get_label_and_hidden(url_key: string) { + const { chart_label, default_hidden } = HiddenInfoMaps.lookup('url_key', url_key); + + let hidden: boolean; + + const value = url_search_params.get(url_key); + + if (value === hide_string) { + hidden = true; + } else if (value === show_string) { + hidden = false; + } else { + hidden = default_hidden; + } + + return { + label: chart_label, + hidden: hidden, + }; +} + +function update_url() { + let url = window.location.pathname; + + const params_string = `${url_search_params}`; + + if (params_string.length > 0) { + url += `?${params_string}`; + } + + window.history.replaceState({}, '', url); +} + +const status_data = { + datasets: [ + { + data: get_weekly_values('cxx17'), + borderColor: '#9966FF', + backgroundColor: '#9966FF', + borderDash: [10, 5], + yAxisID: 'smallAxis', + ...get_label_and_hidden('cxx17'), + }, + { + data: get_weekly_values('cxx20').concat(get_daily_values('cxx20')), + borderColor: '#7030A0', + backgroundColor: '#7030A0', + yAxisID: 'smallAxis', + ...get_label_and_hidden('cxx20'), + }, + { + data: get_daily_values('cxx23'), + borderColor: '#9966FF', + backgroundColor: '#9966FF', + yAxisID: 'smallAxis', + ...get_label_and_hidden('cxx23'), + }, + { + data: get_weekly_values('lwg').concat(get_daily_values('lwg')), + borderColor: '#0070C0', + backgroundColor: '#0070C0', + yAxisID: 'smallAxis', + ...get_label_and_hidden('lwg'), + }, + { + data: get_daily_values('pr'), + borderColor: '#00B050', + backgroundColor: '#00B050', + yAxisID: 'smallAxis', + ...get_label_and_hidden('pr'), + }, + { + data: get_weekly_values('vso'), + borderColor: '#900000', + backgroundColor: '#900000', + yAxisID: 'largeAxis', + ...get_label_and_hidden('vso'), + }, + { + data: get_daily_values('bug'), + borderColor: '#FF0000', + backgroundColor: '#FF0000', + yAxisID: 'largeAxis', + ...get_label_and_hidden('bug'), + }, + { + data: get_daily_values('issue'), + borderColor: '#909090', + backgroundColor: '#909090', + yAxisID: 'largeAxis', + ...get_label_and_hidden('issue'), + }, + { + data: get_weekly_values('libcxx'), + borderColor: '#FFC000', + backgroundColor: '#FFC000', + yAxisID: 'largeAxis', + ...get_label_and_hidden('libcxx'), + }, + ], +}; + +const age_data = { + datasets: [ + { + data: get_daily_values('avg_age'), + borderColor: '#909090', + backgroundColor: '#909090', + yAxisID: 'leftAxis', + ...get_label_and_hidden('avg_age'), + }, + { + data: get_daily_values('avg_wait'), + borderColor: '#FF9090', + backgroundColor: '#FF9090', + yAxisID: 'leftAxis', + ...get_label_and_hidden('avg_wait'), + }, + { + data: get_daily_values('sum_age'), + borderColor: '#000000', + backgroundColor: '#000000', + yAxisID: 'rightAxis', + ...get_label_and_hidden('sum_age'), + }, + { + data: get_daily_values('sum_wait'), + borderColor: '#FF0000', + backgroundColor: '#FF0000', + yAxisID: 'rightAxis', + ...get_label_and_hidden('sum_wait'), + }, + ], +}; + +const merge_data = { + datasets: [ + { + data: get_daily_values('merged'), + borderColor: '#00B050', + backgroundColor: '#00B050', + yAxisID: 'mergeAxis', + ...get_label_and_hidden('merged'), + }, + { + type: 'bar' as const, + data: get_monthly_values('merge_bar'), + borderColor: '#CCCCCC', + borderWidth: 1, + yAxisID: 'mergeAxis', + ...get_label_and_hidden('merge_bar'), + }, + ], +}; + +type Timeframe = { + min: string; + time: { unit: TimeUnit }; +}; + +const timeframe_all: Timeframe = { + min: '2017-06-09', + time: { unit: 'quarter' }, +}; +const timeframe_github: Timeframe = { + min: '2019-09-20', // first Friday after 2019-09-16 + time: { unit: 'quarter' }, +}; +const timeframe_2021: Timeframe = { + min: '2021-01-01', + time: { unit: 'month' }, +}; +const timeframes = [timeframe_all, timeframe_github, timeframe_2021]; +const timeframe_github_idx = 1; +let timeframe_idx = timeframe_github_idx; + +const common_options = { + animation: { + duration: 0, + }, + elements: { + line: { + borderCapStyle: 'round' as const, + borderJoinStyle: 'round' as const, + fill: false, + spanGaps: false, + }, + point: { + radius: 0, + }, + }, + hover: { + mode: 'nearest' as const, + }, +}; + +function legend_click_handler(_event: ChartEvent, legend_item: LegendItem, legend: LegendElement) { + const ch = legend.chart; + const index = legend_item.datasetIndex; + + const becoming_hidden = ch.isDatasetVisible(index); + + if (becoming_hidden) { + ch.hide(index); + } else { + ch.show(index); + } + + legend_item.hidden = becoming_hidden; + + const { url_key, default_hidden } = HiddenInfoMaps.lookup('chart_label', legend_item.text); + + if (becoming_hidden === default_hidden) { + url_search_params.delete(url_key); + } else { + url_search_params.set(url_key, becoming_hidden ? hide_string : show_string); + url_search_params.sort(); + } + + update_url(); +} + +const common_plugins = { + legend: { + onClick: legend_click_handler, + }, + tooltip: { + mode: 'nearest' as const, + intersect: false, + }, +}; + +const common_title = { + display: true, + font: { + size: 24, + }, +}; + +function make_xAxis(timeframe: Timeframe) { + return { + type: 'time' as const, + min: timeframe.min, + max: daily_table[daily_table.length - 1].date, + grid: { + offset: false, + }, + offset: false, + time: { + parser: 'yyyy-MM-dd', + tooltipFormat: 'MMM d, yyyy', + unit: timeframe.time.unit, + displayFormats: { + quarter: 'MMM yyyy', + }, + }, + }; +} + +const status_options = { + ...common_options, + plugins: { + ...common_plugins, + title: { + ...common_title, + text: 'STL Status Chart', + }, + }, + scales: { + x: make_xAxis(timeframes[timeframe_idx]), + largeAxis: { + type: 'linear' as const, + display: 'auto' as const, + position: 'left' as const, + title: { + display: true, + text: 'Bugs, Issues, Skipped Libcxx Tests', + }, + min: 0, + max: 900, + ticks: { + stepSize: 100, + }, + }, + smallAxis: { + type: 'linear' as const, + display: 'auto' as const, + position: 'right' as const, + title: { + display: true, + text: 'Features, LWG Resolutions, Pull Requests', + }, + min: 0, + max: 90, + ticks: { + stepSize: 10, + }, + }, + }, +}; + +const age_options = { + ...common_options, + plugins: { + ...common_plugins, + title: { + ...common_title, + text: 'Pull Request Age', + }, + }, + scales: { + x: make_xAxis(timeframe_github), + leftAxis: { + type: 'linear' as const, + display: 'auto' as const, + position: 'left' as const, + title: { + display: true, + text: 'Average Age, Average Wait (days)', + }, + min: 0, + max: 500, + ticks: { + stepSize: 100, + }, + }, + rightAxis: { + type: 'linear' as const, + display: 'auto' as const, + position: 'right' as const, + title: { + display: true, + text: 'Combined Age, Combined Wait (PR-months)', + }, + min: 0, + max: 500, + ticks: { + stepSize: 100, + }, + }, + }, +}; + +const merge_options = { + ...common_options, + plugins: { + ...common_plugins, + title: { + ...common_title, + text: 'Monthly Merged PRs', + }, + }, + scales: { + x: make_xAxis(timeframe_github), + mergeAxis: { + type: 'linear' as const, + display: 'auto' as const, + position: 'right' as const, + title: { + display: true, + text: 'PRs / month', + }, + min: 0, + max: 80, + ticks: { + stepSize: 10, + }, + }, + }, +}; + +function getElementByIdAs(id: string, type: new () => Type) { + const element = document.getElementById(id); + + if (element === null) { + throw new Error(`document.getElementById('${id}') returned null.`); + } + + if (element instanceof type) { + return element as Type; + } + + throw new Error(`document.getElementById('${id}') returned an unexpected type.`); +} + +function load_charts() { + const status_chart = new Chart('statusChart', { + type: 'line', + data: status_data, + options: status_options, + }); + + const age_chart = new Chart('ageChart', { + type: 'line', + data: age_data, + options: age_options, + }); + + const merge_chart = new Chart('mergeChart', { + type: 'line', + data: merge_data, + options: merge_options, + }); + + function update_chart_timeframe(chart: typeof status_chart, idx: number) { + if (!('scales' in chart.options)) { + throw new Error('update_chart_timeframe() expected chart.options.scales to exist.'); + } + + chart.options.scales.x = make_xAxis(timeframes[idx]); + + chart.update(); + } + + const moreHistoryButton = getElementByIdAs('moreHistory', HTMLButtonElement); + const lessHistoryButton = getElementByIdAs('lessHistory', HTMLButtonElement); + + function update_all_timeframes() { + moreHistoryButton.disabled = timeframe_idx === 0; + lessHistoryButton.disabled = timeframe_idx === timeframes.length - 1; + + const clamped_idx = Math.max(timeframe_idx, timeframe_github_idx); + + update_chart_timeframe(status_chart, timeframe_idx); + update_chart_timeframe(age_chart, clamped_idx); + update_chart_timeframe(merge_chart, clamped_idx); + } + + moreHistoryButton.addEventListener('click', function () { + if (timeframe_idx > 0) { + --timeframe_idx; + } + + update_all_timeframes(); + }); + + lessHistoryButton.addEventListener('click', function () { + if (timeframe_idx < timeframes.length - 1) { + ++timeframe_idx; + } + + update_all_timeframes(); + }); + + const daily_keys = [ + 'cxx20', + 'cxx23', + 'lwg', + 'pr', + 'bug', + 'issue', + 'avg_age', + 'avg_wait', + 'sum_age', + 'sum_wait', + 'merged', + ] as const; + for (const field of daily_keys) { + const value = daily_table[daily_table.length - 1][field] ?? 0; + const span = getElementByIdAs(`currentValue-${field}`, HTMLSpanElement); + span.textContent = value.toString(); + } + + const weekly_keys = ['vso', 'libcxx'] as const; + for (const field of weekly_keys) { + const value = weekly_table[weekly_table.length - 1][field]; + const span = getElementByIdAs(`currentValue-${field}`, HTMLSpanElement); + span.textContent = value.toString(); + } +} + +load_charts(); diff --git a/src/tsconfig.json b/src/tsconfig.json new file mode 100644 index 00000000000..e112e4cc8ec --- /dev/null +++ b/src/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.universal.json", + "compilerOptions": { + "module": "ES2020", + "noEmit": true, + }, + "files": [ + "status_chart.ts", + ], +} diff --git a/weekly_table.js b/src/weekly_table.ts similarity index 95% rename from weekly_table.js rename to src/weekly_table.ts index 6cd0c8ee027..23da2df9f7a 100644 --- a/weekly_table.js +++ b/src/weekly_table.ts @@ -1,8 +1,16 @@ // Copyright (c) Microsoft Corporation. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -'use strict'; -const weekly_table = [ +export type WeeklyRow = { + date: string; + cxx17?: number; + cxx20?: number; + lwg?: number; + vso: number; + libcxx: number; +}; + +export const weekly_table: WeeklyRow[] = [ { date: '2017-06-09', cxx17: 17, lwg: 44, vso: 247, libcxx: 526 }, { date: '2017-06-16', cxx17: 17, lwg: 43, vso: 246, libcxx: 526 }, { date: '2017-06-23', cxx17: 17, lwg: 43, vso: 249, libcxx: 517 }, @@ -244,4 +252,11 @@ const weekly_table = [ { date: '2022-01-14', vso: 182, libcxx: 590 }, { date: '2022-01-21', vso: 183, libcxx: 587 }, { date: '2022-01-28', vso: 183, libcxx: 587 }, + { date: '2022-02-04', vso: 185, libcxx: 587 }, + { date: '2022-02-11', vso: 187, libcxx: 586 }, + { date: '2022-02-18', vso: 189, libcxx: 622 }, + { date: '2022-02-25', vso: 191, libcxx: 622 }, + { date: '2022-03-04', vso: 192, libcxx: 626 }, + { date: '2022-03-11', vso: 192, libcxx: 626 }, + { date: '2022-03-18', vso: 194, libcxx: 626 }, ]; diff --git a/src/gather_stats.ts b/src_gather/gather_stats.ts similarity index 92% rename from src/gather_stats.ts rename to src_gather/gather_stats.ts index 6a0455876d8..c06726a4ef4 100644 --- a/src/gather_stats.ts +++ b/src_gather/gather_stats.ts @@ -389,16 +389,16 @@ function calculate_sliding_window(when: DateTime, merged: DateTime) { } function write_generated_file(filename: string, table_str: string) { - const generated_file_warning_comment = '// Generated file - DO NOT EDIT manually!\n'; + const str = ` +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - let str = '// Copyright (c) Microsoft Corporation.\n'; - str += '// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception\n\n'; - str += generated_file_warning_comment; - str += "'use strict';\n"; - str += table_str; - str += generated_file_warning_comment; +// Generated file - DO NOT EDIT manually! +${table_str.trim()} +// Generated file - DO NOT EDIT manually! +`; - fs.writeFileSync(filename, str); + fs.writeFileSync(filename, str.trimStart()); } type Row = { @@ -573,7 +573,23 @@ function write_daily_table(script_start: DateTime, all_prs: CookedPRNode[], all_ progress_bar.stop(); } - let str = 'const daily_table = [\n'; + let str = ` +export type DailyRow = { + date: string; + merged: number; + pr: number | null; + cxx20: number | null; + cxx23: number | null; + lwg: number | null; + issue: number | null; + bug: number | null; + avg_age: number; + avg_wait: number; + sum_age: number; + sum_wait: number; +}; +export const daily_table: DailyRow[] = [ +`; for (let i = 0; i < rows.length; ++i) { const row = rows[i]; @@ -599,7 +615,7 @@ function write_daily_table(script_start: DateTime, all_prs: CookedPRNode[], all_ str += '];\n'; - write_generated_file('./daily_table.js', str); + write_generated_file('./src/daily_table.ts', str); } function write_monthly_table(script_start: DateTime, all_prs: CookedPRNode[]) { @@ -613,7 +629,13 @@ function write_monthly_table(script_start: DateTime, all_prs: CookedPRNode[]) { } } - let str = 'const monthly_table = [\n'; + let str = ` +export type MonthlyRow = { + date: string; + merge_bar: number; +}; +export const monthly_table: MonthlyRow[] = [ +`; // Analyze complete months. const begin = DateTime.fromISO('2019-10-01'); @@ -622,16 +644,14 @@ function write_monthly_table(script_start: DateTime, all_prs: CookedPRNode[]) { const value = monthly_merges.get(year_month) ?? 0; str += ' { '; - str += [ - `date: '${year_month}-16'`, // position each bar in the middle of each month - `merge_bar: ${value}`, - '},\n', - ].join(', '); + str += `date: '${year_month}-16', `; // position each bar in the middle of each month + str += `merge_bar: ${value}, `; + str += '},\n'; } str += '];\n'; - write_generated_file('./monthly_table.js', str); + write_generated_file('./src/monthly_table.ts', str); } async function async_main() { diff --git a/src_gather/tsconfig.json b/src_gather/tsconfig.json new file mode 100644 index 00000000000..0a4db53e162 --- /dev/null +++ b/src_gather/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.universal.json", + "compilerOptions": { + "module": "CommonJS", + }, + "files": [ + "gather_stats.ts", + ], +} diff --git a/status_chart.js b/status_chart.js deleted file mode 100644 index 9f2ff9d4409..00000000000 --- a/status_chart.js +++ /dev/null @@ -1,471 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - -'use strict'; - -function get_values(table, key) { - return table.filter(row => row[key] !== undefined).map(row => ({ x: row.date, y: row[key] })); -} - -const url_search_params = new URLSearchParams(window.location.search); -const hide_string = 'n'; -const show_string = 'y'; - -function get_hidden(key, default_hidden = false) { - let hidden = null; - - const value = url_search_params.get(key); - - if (value === hide_string) { - hidden = true; - } else if (value === show_string) { - hidden = false; - } else { - hidden = default_hidden; - } - - return { - hidden: hidden, - stl_default_hidden: default_hidden, - stl_key: key, - }; -} - -function update_url() { - let url = window.location.pathname; - - const params_string = `${url_search_params}`; - - if (params_string.length > 0) { - url += `?${params_string}`; - } - - window.history.replaceState({}, '', url); -} - -const status_data = { - datasets: [ - { - data: get_values(weekly_table, 'cxx17'), - label: 'C++17 Features', - borderColor: '#9966FF', - backgroundColor: '#9966FF', - borderDash: [10, 5], - yAxisID: 'smallAxis', - ...get_hidden('cxx17'), - }, - { - data: get_values(weekly_table, 'cxx20').concat(get_values(daily_table, 'cxx20')), - label: 'C++20 Features', - borderColor: '#7030A0', - backgroundColor: '#7030A0', - yAxisID: 'smallAxis', - ...get_hidden('cxx20'), - }, - { - data: get_values(daily_table, 'cxx23'), - label: 'C++23 Features', - borderColor: '#9966FF', - backgroundColor: '#9966FF', - yAxisID: 'smallAxis', - ...get_hidden('cxx23'), - }, - { - data: get_values(weekly_table, 'lwg').concat(get_values(daily_table, 'lwg')), - label: 'LWG Resolutions', - borderColor: '#0070C0', - backgroundColor: '#0070C0', - yAxisID: 'smallAxis', - ...get_hidden('lwg'), - }, - { - data: get_values(daily_table, 'pr'), - label: 'Pull Requests', - borderColor: '#00B050', - backgroundColor: '#00B050', - yAxisID: 'smallAxis', - ...get_hidden('pr'), - }, - { - data: get_values(weekly_table, 'vso'), - label: 'Old Bugs', - borderColor: '#900000', - backgroundColor: '#900000', - yAxisID: 'largeAxis', - ...get_hidden('vso'), - }, - { - data: get_values(daily_table, 'bug'), - label: 'GitHub Bugs', - borderColor: '#FF0000', - backgroundColor: '#FF0000', - yAxisID: 'largeAxis', - ...get_hidden('bug'), - }, - { - data: get_values(daily_table, 'issue'), - label: 'GitHub Issues', - borderColor: '#909090', - backgroundColor: '#909090', - yAxisID: 'largeAxis', - ...get_hidden('issue'), - }, - { - data: get_values(weekly_table, 'libcxx'), - label: 'Skipped Libcxx Tests', - borderColor: '#FFC000', - backgroundColor: '#FFC000', - yAxisID: 'largeAxis', - ...get_hidden('libcxx'), - }, - ], -}; - -const age_data = { - datasets: [ - { - data: get_values(daily_table, 'avg_age'), - label: 'Average Age', - borderColor: '#909090', - backgroundColor: '#909090', - yAxisID: 'leftAxis', - ...get_hidden('avg_age', true), - }, - { - data: get_values(daily_table, 'avg_wait'), - label: 'Average Wait', - borderColor: '#FF9090', - backgroundColor: '#FF9090', - yAxisID: 'leftAxis', - ...get_hidden('avg_wait', true), - }, - { - data: get_values(daily_table, 'sum_age'), - label: 'Combined Age', - borderColor: '#000000', - backgroundColor: '#000000', - yAxisID: 'rightAxis', - ...get_hidden('sum_age'), - }, - { - data: get_values(daily_table, 'sum_wait'), - label: 'Combined Wait', - borderColor: '#FF0000', - backgroundColor: '#FF0000', - yAxisID: 'rightAxis', - ...get_hidden('sum_wait'), - }, - ], -}; - -const merge_data = { - datasets: [ - { - data: get_values(daily_table, 'merged'), - label: 'Line: Sliding Window', - borderColor: '#00B050', - backgroundColor: '#00B050', - yAxisID: 'mergeAxis', - ...get_hidden('merged'), - }, - { - type: 'bar', - data: get_values(monthly_table, 'merge_bar'), - label: 'Bars: Calendar Months', - borderColor: '#CCCCCC', - borderWidth: 1, - yAxisID: 'mergeAxis', - ...get_hidden('merge_bar'), - }, - ], -}; - -const timeframe_all = { - min: '2017-06-09', - time: { unit: 'quarter' }, -}; -const timeframe_github = { - min: '2019-09-20', // first Friday after 2019-09-16 - time: { unit: 'quarter' }, -}; -const timeframe_2021 = { - min: '2021-01-01', - time: { unit: 'month' }, -}; -const timeframes = [timeframe_all, timeframe_github, timeframe_2021]; -const timeframe_github_idx = 1; -let timeframe_idx = timeframe_github_idx; - -const common_options = { - animation: { - duration: 0, - }, - elements: { - line: { - borderCapStyle: 'round', - borderJoinStyle: 'round', - fill: false, - spanGaps: false, - }, - point: { - radius: 0, - }, - }, - hover: { - mode: 'nearest', - }, -}; - -function legend_click_handler(_event, legend_item, legend) { - const ch = legend.chart; - const index = legend_item.datasetIndex; - - const { stl_default_hidden, stl_key } = ch.data.datasets[index]; - - const becoming_hidden = ch.isDatasetVisible(index); - - if (becoming_hidden) { - ch.hide(index); - } else { - ch.show(index); - } - - legend_item.hidden = becoming_hidden; - - if (becoming_hidden === stl_default_hidden) { - url_search_params.delete(stl_key); - } else { - url_search_params.set(stl_key, becoming_hidden ? hide_string : show_string); - url_search_params.sort(); - } - - update_url(); -} - -const common_plugins = { - legend: { - onClick: legend_click_handler, - }, - tooltip: { - mode: 'nearest', - intersect: false, - }, -}; - -const common_title = { - display: true, - font: { - size: 24, - }, -}; - -function make_xAxis(timeframe) { - return { - type: 'time', - min: timeframe.min, - max: daily_table[daily_table.length - 1].date, - grid: { - offset: false, - }, - offset: false, - time: { - parser: 'yyyy-MM-dd', - tooltipFormat: 'MMM d, yyyy', - unit: timeframe.time.unit, - displayFormats: { - quarter: 'MMM yyyy', - }, - }, - }; -} - -const status_options = { - ...common_options, - plugins: { - ...common_plugins, - title: { - ...common_title, - text: 'STL Status Chart', - }, - }, - scales: { - x: make_xAxis(timeframes[timeframe_idx]), - largeAxis: { - type: 'linear', - display: 'auto', - position: 'left', - title: { - display: true, - text: 'Bugs, Issues, Skipped Libcxx Tests', - }, - min: 0, - max: 900, - ticks: { - stepSize: 100, - }, - }, - smallAxis: { - type: 'linear', - display: 'auto', - position: 'right', - title: { - display: true, - text: 'Features, LWG Resolutions, Pull Requests', - }, - min: 0, - max: 90, - ticks: { - stepSize: 10, - }, - }, - }, -}; - -const age_options = { - ...common_options, - plugins: { - ...common_plugins, - title: { - ...common_title, - text: 'Pull Request Age', - }, - }, - scales: { - x: make_xAxis(timeframe_github), - leftAxis: { - type: 'linear', - display: 'auto', - position: 'left', - title: { - display: true, - text: 'Average Age, Average Wait (days)', - }, - min: 0, - max: 450, - ticks: { - stepSize: 50, - }, - }, - rightAxis: { - type: 'linear', - display: 'auto', - position: 'right', - title: { - display: true, - text: 'Combined Age, Combined Wait (PR-months)', - }, - min: 0, - max: 450, - ticks: { - stepSize: 50, - }, - }, - }, -}; - -const merge_options = { - ...common_options, - plugins: { - ...common_plugins, - title: { - ...common_title, - text: 'Monthly Merged PRs', - }, - }, - scales: { - x: make_xAxis(timeframe_github), - mergeAxis: { - type: 'linear', - display: 'auto', - position: 'right', - title: { - display: true, - text: 'PRs / month', - }, - min: 0, - max: 80, - ticks: { - stepSize: 10, - }, - }, - }, -}; - -window.onload = function () { - window.status_chart = new Chart('statusChart', { - type: 'line', - data: status_data, - options: status_options, - }); - - window.age_chart = new Chart('ageChart', { - type: 'line', - data: age_data, - options: age_options, - }); - - window.merge_chart = new Chart('mergeChart', { - type: 'line', - data: merge_data, - options: merge_options, - }); - - function update_chart_timeframe(chart, idx) { - const xAxis = chart.options.scales.x; - const new_timeframe = timeframes[idx]; - - xAxis.min = new_timeframe.min; - xAxis.time.unit = new_timeframe.time.unit; - - chart.update(); - } - - function update_all_timeframes() { - document.getElementById('moreHistory').disabled = timeframe_idx === 0; - document.getElementById('lessHistory').disabled = timeframe_idx === timeframes.length - 1; - - const clamped_idx = Math.max(timeframe_idx, timeframe_github_idx); - - update_chart_timeframe(window.status_chart, timeframe_idx); - update_chart_timeframe(window.age_chart, clamped_idx); - update_chart_timeframe(window.merge_chart, clamped_idx); - } - - document.getElementById('moreHistory').addEventListener('click', function () { - if (timeframe_idx > 0) { - --timeframe_idx; - } - - update_all_timeframes(); - }); - - document.getElementById('lessHistory').addEventListener('click', function () { - if (timeframe_idx < timeframes.length - 1) { - ++timeframe_idx; - } - - update_all_timeframes(); - }); - - for (const field of [ - 'cxx20', - 'cxx23', - 'lwg', - 'pr', - 'bug', - 'issue', - 'avg_age', - 'avg_wait', - 'sum_age', - 'sum_wait', - 'merged', - ]) { - const value = daily_table[daily_table.length - 1][field] ?? 0; - document.getElementById(`currentValue-${field}`).textContent = value.toString(); - } - - for (const field of ['vso', 'libcxx']) { - const value = weekly_table[weekly_table.length - 1][field]; - document.getElementById(`currentValue-${field}`).textContent = value.toString(); - } -}; diff --git a/tsconfig.json b/tsconfig.universal.json similarity index 77% rename from tsconfig.json rename to tsconfig.universal.json index daa8e772b28..b2345f1d468 100644 --- a/tsconfig.json +++ b/tsconfig.universal.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "CommonJS", + "moduleResolution": "node", "outDir": "./built", "target": "ES2020", "allowUnreachableCode": false, @@ -10,7 +10,4 @@ "strict": true, "forceConsistentCasingInFileNames": true, }, - "include": [ - "./src/**/*" - ] }