diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bcccd8e19..7bf30f077 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -171,42 +171,46 @@ jobs: name: coverage path: coverage.json - tests-cypress-modern: - name: Run Tests (Cypress - Modern) + tests-playwright: + name: Run Tests (Playwright) if: ${{ github.event.inputs.skiptests == 'false' }} needs: [prepare] runs-on: macos-latest + strategy: + fail-fast: false + matrix: + project: [chromium, firefox] steps: - uses: actions/checkout@v3 + - uses: actions/setup-node@v2 + with: + node-version: '18' + - name: Run all tests run: | echo "Installing dependencies..." yarn - echo "Start Vite Preview..." - yarn preview &>/dev/null & + echo "Installing Playwright..." + cd playwright + mkdir test-results + npm ci + npx playwright install --with-deps ${{ matrix.project }} echo "Running tests..." - yarn cypress + npx playwright test --project=${{ matrix.project }} - - name: Upload Video Recordings + - name: Upload Report uses: actions/upload-artifact@v3.0.0 if: ${{ always() }} continue-on-error: true with: - name: videos-modern - path: cypress/videos/ - - - name: Upload Screenshots - uses: actions/upload-artifact@v3.0.0 - if: ${{ always() }} - continue-on-error: true - with: - name: screenshots-modern - path: cypress/screenshots/ + name: playwright-results-${{ matrix.project }} + path: playwright/test-results/ + if-no-files-found: ignore - tests-cypress-legacy: - name: Run Tests (Cypress - Legacy) + tests-cypress: + name: Run Tests (Cypress) if: ${{ github.event.inputs.skiptests == 'false' }} needs: [prepare] runs-on: ubuntu-latest @@ -256,6 +260,7 @@ jobs: with: name: videos-legacy path: cypress/videos/ + if-no-files-found: ignore - name: Upload Screenshots uses: actions/upload-artifact@v3.0.0 @@ -264,6 +269,7 @@ jobs: with: name: screenshots-modern path: cypress/screenshots/ + if-no-files-found: ignore # ----------------------------------------------------------------- # RELEASE @@ -271,7 +277,7 @@ jobs: release: name: Make Release if: ${{ always() }} - needs: [tests-python, tests-cypress-modern, tests-cypress-legacy, prepare] + needs: [tests-python, tests-playwright, tests-cypress, prepare] runs-on: ubuntu-latest env: SHOULD_DEPLOY: ${{needs.prepare.outputs.should_deploy}} diff --git a/.pnp.cjs b/.pnp.cjs index 8e53e5359..fcbe4c67c 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -61,6 +61,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.0.0"],\ ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.12.1"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.2.5"],\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.0.1"],\ ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.4.0"],\ @@ -3095,10 +3096,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["builtins", [\ - ["npm:4.1.0", {\ - "packageLocation": "./.yarn/cache/builtins-npm-4.1.0-b8969ccdfe-3524f5a589.zip/node_modules/builtins/",\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/builtins-npm-5.0.1-6d4820dd76-66d204657f.zip/node_modules/builtins/",\ "packageDependencies": [\ - ["builtins", "npm:4.1.0"],\ + ["builtins", "npm:5.0.1"],\ ["semver", "npm:7.3.7"]\ ],\ "linkType": "HARD"\ @@ -4862,7 +4863,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/eslint-plugin-promise", null],\ ["eslint", "npm:8.23.0"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ - ["eslint-plugin-n", "virtual:5de208ba69f1abc06b9e76e02d4ce4fc49fcab4f9a21e07e70644bde43652129abc0a8d2e76e362701d48e3019da8bcf1b9d697031ba71659718edb10a775408#npm:15.2.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.2.5"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.0.1"]\ ],\ "packagePeers": [\ @@ -4871,6 +4872,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "@types/eslint-plugin-promise",\ "@types/eslint",\ "eslint-plugin-import",\ + "eslint-plugin-n",\ "eslint-plugin-promise",\ "eslint"\ ],\ @@ -4962,10 +4964,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-9a126af2f5/0/cache/eslint-plugin-es-npm-3.0.1-95e8015220-e57592c523.zip/node_modules/eslint-plugin-es/",\ + ["virtual:01ca464921c9b9f6f05ff324a93e38459f6f1b69ef551b0ff88f975ab15594aa2d383b8c5900d3e9ebd3f172ab1a572bfe06ea18bc9ed6aab7ddec552080fdee#npm:4.1.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-ecad70e987/0/cache/eslint-plugin-es-npm-4.1.0-a4cf26d3cd-26b87a216d.zip/node_modules/eslint-plugin-es/",\ "packageDependencies": [\ - ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ + ["eslint-plugin-es", "virtual:01ca464921c9b9f6f05ff324a93e38459f6f1b69ef551b0ff88f975ab15594aa2d383b8c5900d3e9ebd3f172ab1a572bfe06ea18bc9ed6aab7ddec552080fdee#npm:4.1.0"],\ ["@types/eslint", null],\ ["eslint", "npm:8.23.0"],\ ["eslint-utils", "npm:2.1.0"],\ @@ -4977,10 +4979,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "HARD"\ }],\ - ["virtual:c8e07c2a6b56869a5a6a64a5a2bbfafd2756fdfec2e39799aafeb55edf967e3394125f03e2dbe23e573456f9dc23ed0ee125b7a467ac99d6b6dc124c1fb861dd#npm:4.1.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-2fffa83c77/0/cache/eslint-plugin-es-npm-4.1.0-a4cf26d3cd-26b87a216d.zip/node_modules/eslint-plugin-es/",\ + ["virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-es-virtual-9a126af2f5/0/cache/eslint-plugin-es-npm-3.0.1-95e8015220-e57592c523.zip/node_modules/eslint-plugin-es/",\ "packageDependencies": [\ - ["eslint-plugin-es", "virtual:c8e07c2a6b56869a5a6a64a5a2bbfafd2756fdfec2e39799aafeb55edf967e3394125f03e2dbe23e573456f9dc23ed0ee125b7a467ac99d6b6dc124c1fb861dd#npm:4.1.0"],\ + ["eslint-plugin-es", "virtual:5cccaf00e87dfff96dbbb5eaf7a3055373358b8114d6a1adfb32f54ed6b40ba06068d3aa1fdd8062899a0cad040f68c17cc6b72bac2cdbe9700f3d6330d112f3#npm:3.0.1"],\ ["@types/eslint", null],\ ["eslint", "npm:8.23.0"],\ ["eslint-utils", "npm:2.1.0"],\ @@ -5033,27 +5035,27 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["eslint-plugin-n", [\ - ["npm:15.2.0", {\ - "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-15.2.0-669e8b723e-4303dea35a.zip/node_modules/eslint-plugin-n/",\ + ["npm:15.2.5", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-n-npm-15.2.5-1f66a5b3be-3be265957b.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "npm:15.2.0"]\ + ["eslint-plugin-n", "npm:15.2.5"]\ ],\ "linkType": "SOFT"\ }],\ - ["virtual:5de208ba69f1abc06b9e76e02d4ce4fc49fcab4f9a21e07e70644bde43652129abc0a8d2e76e362701d48e3019da8bcf1b9d697031ba71659718edb10a775408#npm:15.2.0", {\ - "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-c8e07c2a6b/0/cache/eslint-plugin-n-npm-15.2.0-669e8b723e-4303dea35a.zip/node_modules/eslint-plugin-n/",\ + ["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.2.5", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-n-virtual-01ca464921/0/cache/eslint-plugin-n-npm-15.2.5-1f66a5b3be-3be265957b.zip/node_modules/eslint-plugin-n/",\ "packageDependencies": [\ - ["eslint-plugin-n", "virtual:5de208ba69f1abc06b9e76e02d4ce4fc49fcab4f9a21e07e70644bde43652129abc0a8d2e76e362701d48e3019da8bcf1b9d697031ba71659718edb10a775408#npm:15.2.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.2.5"],\ ["@types/eslint", null],\ - ["builtins", "npm:4.1.0"],\ + ["builtins", "npm:5.0.1"],\ ["eslint", "npm:8.23.0"],\ - ["eslint-plugin-es", "virtual:c8e07c2a6b56869a5a6a64a5a2bbfafd2756fdfec2e39799aafeb55edf967e3394125f03e2dbe23e573456f9dc23ed0ee125b7a467ac99d6b6dc124c1fb861dd#npm:4.1.0"],\ + ["eslint-plugin-es", "virtual:01ca464921c9b9f6f05ff324a93e38459f6f1b69ef551b0ff88f975ab15594aa2d383b8c5900d3e9ebd3f172ab1a572bfe06ea18bc9ed6aab7ddec552080fdee#npm:4.1.0"],\ ["eslint-utils", "virtual:4ce1a8504abbef475a07bd77b2f33ca024b044ac2c2313238806e468cfc919e5b56d220f7037cae852750a0611def1618a4dcf884e6a3971f5446ffa4429df13#npm:3.0.0"],\ ["ignore", "npm:5.2.0"],\ - ["is-core-module", "npm:2.9.0"],\ + ["is-core-module", "npm:2.10.0"],\ ["minimatch", "npm:3.1.2"],\ - ["resolve", "patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b"],\ - ["semver", "npm:6.3.0"]\ + ["resolve", "patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b"],\ + ["semver", "npm:7.3.7"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -6291,6 +6293,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["is-core-module", [\ + ["npm:2.10.0", {\ + "packageLocation": "./.yarn/cache/is-core-module-npm-2.10.0-6dff9310aa-0f3f77811f.zip/node_modules/is-core-module/",\ + "packageDependencies": [\ + ["is-core-module", "npm:2.10.0"],\ + ["has", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:2.9.0", {\ "packageLocation": "./.yarn/cache/is-core-module-npm-2.9.0-5ba77c35ae-b27034318b.zip/node_modules/is-core-module/",\ "packageDependencies": [\ @@ -8417,6 +8427,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b", {\ + "packageLocation": "./.yarn/cache/resolve-patch-46f9469d0d-5656f4d0be.zip/node_modules/resolve/",\ + "packageDependencies": [\ + ["resolve", "patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b"],\ + ["is-core-module", "npm:2.10.0"],\ + ["path-parse", "npm:1.0.7"],\ + ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["resolve-from", [\ @@ -8528,6 +8548,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.0.0"],\ ["eslint-plugin-cypress", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.12.1"],\ ["eslint-plugin-import", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:2.26.0"],\ + ["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:15.2.5"],\ ["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\ ["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.0.1"],\ ["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.4.0"],\ diff --git a/.yarn/cache/builtins-npm-5.0.1-6d4820dd76-66d204657f.zip b/.yarn/cache/builtins-npm-5.0.1-6d4820dd76-66d204657f.zip new file mode 100644 index 000000000..9c03e4748 Binary files /dev/null and b/.yarn/cache/builtins-npm-5.0.1-6d4820dd76-66d204657f.zip differ diff --git a/.yarn/cache/eslint-plugin-n-npm-15.2.5-1f66a5b3be-3be265957b.zip b/.yarn/cache/eslint-plugin-n-npm-15.2.5-1f66a5b3be-3be265957b.zip new file mode 100644 index 000000000..0c6488fb8 Binary files /dev/null and b/.yarn/cache/eslint-plugin-n-npm-15.2.5-1f66a5b3be-3be265957b.zip differ diff --git a/.yarn/cache/is-core-module-npm-2.10.0-6dff9310aa-0f3f77811f.zip b/.yarn/cache/is-core-module-npm-2.10.0-6dff9310aa-0f3f77811f.zip new file mode 100644 index 000000000..42dc0c31e Binary files /dev/null and b/.yarn/cache/is-core-module-npm-2.10.0-6dff9310aa-0f3f77811f.zip differ diff --git a/.yarn/cache/resolve-npm-1.22.1-3980488690-07af5fc1e8.zip b/.yarn/cache/resolve-npm-1.22.1-3980488690-07af5fc1e8.zip new file mode 100644 index 000000000..d41402c87 Binary files /dev/null and b/.yarn/cache/resolve-npm-1.22.1-3980488690-07af5fc1e8.zip differ diff --git a/.yarn/cache/resolve-patch-46f9469d0d-5656f4d0be.zip b/.yarn/cache/resolve-patch-46f9469d0d-5656f4d0be.zip new file mode 100644 index 000000000..c3066c360 Binary files /dev/null and b/.yarn/cache/resolve-patch-46f9469d0d-5656f4d0be.zip differ diff --git a/client/App.vue b/client/App.vue index 7e9605bd5..79eae7404 100644 --- a/client/App.vue +++ b/client/App.vue @@ -24,10 +24,6 @@ const agendaStore = useAgendaStore() const appContainer = ref(null) -// INIT - -agendaStore.fetch() - // -------------------------------------------------------------------- // Handle browser resize // -------------------------------------------------------------------- diff --git a/client/agenda/Agenda.vue b/client/agenda/Agenda.vue index 6a9db7c67..38566739a 100644 --- a/client/agenda/Agenda.vue +++ b/client/agenda/Agenda.vue @@ -227,8 +227,8 @@ const titleExtra = computed(() => { return title }) const meetingDate = computed(() => { - const start = DateTime.fromISO(agendaStore.meeting.startDate).setZone(agendaStore.timezone) - const end = DateTime.fromISO(agendaStore.meeting.endDate).setZone(agendaStore.timezone) + const start = DateTime.fromISO(agendaStore.meeting.startDate, { zone: agendaStore.meeting.timezone }).setZone(agendaStore.timezone) + const end = DateTime.fromISO(agendaStore.meeting.endDate, { zone: agendaStore.meeting.timezone }).setZone(agendaStore.timezone) if (start.month === end.month) { return `${start.toFormat('MMMM d')} - ${end.toFormat('d, y')}` } else { @@ -353,6 +353,8 @@ onBeforeUnmount(() => { // MOUNTED onMounted(() => { + agendaStore.fetch(route.params.meetingNumber) + handleCurrentMeetingRedirect() // -> Hide Loading Screen diff --git a/client/agenda/AgendaSettings.vue b/client/agenda/AgendaSettings.vue index 3b51b56e9..c9fbd4dde 100644 --- a/client/agenda/AgendaSettings.vue +++ b/client/agenda/AgendaSettings.vue @@ -31,7 +31,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') n-divider(title-placement='left') i.bi.bi-globe.me-2 small Timezone - n-button-group.mt-2(style='justify-content: stretch; width: 100%;') + n-button-group.mt-2#agenda-settings-tz-btn(style='justify-content: stretch; width: 100%;') n-button( style='flex-grow: 1;' :type='agendaStore.isTimezoneMeeting ? `primary` : `default`' @@ -47,7 +47,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') :type='agendaStore.timezone === `UTC` ? `primary` : `default`' @click='setTimezone(`UTC`)' ) UTC - n-select.mt-2( + n-select.mt-2#agenda-settings-tz-ddn( v-model:value='agendaStore.timezone' :options='timezones' placeholder='Select Time Zone' @@ -61,7 +61,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') //- .d-flex.align-items-center.mt-3 //- n-switch.me-3(v-model:value='agendaStore.listDayCollapse', disabled) //- span.small Collapse Days by Default - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-colorlgd.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.colorLegendShown' aria-label='Display Color Legend' @@ -71,7 +71,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') template(#trigger) i.bi.bi-info-circle span Only displayed when a color is assigned to at least 1 event. - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-infonote.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.infoNoteShown' aria-label='Display Current Meeting Info Note' @@ -81,19 +81,19 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') template(#trigger) i.bi.bi-info-circle span Any update to the note will result in this setting being turned back on. - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-eventicons.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.eventIconsShown' aria-label='Display Event Icons' ) span.small Display Event Icons - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-floorind.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.floorIndicatorsShown' aria-label='Display Floor Indicators' ) span.small Display Floor Indicators - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-groupind.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.areaIndicatorsShown' aria-label='Display Group Area Indicators' @@ -103,7 +103,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') template(#trigger) i.bi.bi-info-circle span Will not be shown on smaller screens, regardless of this setting. - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-redline.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.redhandShown' aria-label='Display Realtime Red Line' @@ -113,7 +113,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') template(#trigger) i.bi.bi-info-circle span Only shown during live events. Updated every 5 seconds. - .d-flex.align-items-center.mt-3 + #agenda-settings-tgl-boldertxt.d-flex.align-items-center.mt-3 n-switch.me-3( v-model:value='agendaStore.bolderText' aria-label='Use Bolder Text' @@ -140,7 +140,7 @@ n-drawer(v-model:show='isShown', placement='right', :width='panelWidth') n-divider#agenda-settings-colors-header(title-placement='left') i.bi.bi-palette.me-2 small Custom Colors / Tags - .d-flex.align-items-center.mt-3(v-for='(cl, idx) of state.colors') + .agenda-settings-colors-row.d-flex.align-items-center.mt-3(v-for='(cl, idx) of state.colors') n-color-picker.me-3( :modes='[`hex`]' :render-label='() => {}' diff --git a/client/agenda/FloorPlan.vue b/client/agenda/FloorPlan.vue index a345befa5..f10522396 100644 --- a/client/agenda/FloorPlan.vue +++ b/client/agenda/FloorPlan.vue @@ -216,10 +216,9 @@ onBeforeUnmount(() => { // MOUNTED onMounted(() => { - // -> Go to current meeting if not provided - if (!route.params.meetingNumber && agendaStore.meeting.number) { - router.replace({ params: { meetingNumber: agendaStore.meeting.number } }) - } + agendaStore.fetch(route.params.meetingNumber) + + handleCurrentMeetingRedirect() // -> Hide Loading Screen if (agendaStore.isLoaded) { diff --git a/client/agenda/store.js b/client/agenda/store.js index 932c29475..42b523877 100644 --- a/client/agenda/store.js +++ b/client/agenda/store.js @@ -133,11 +133,14 @@ export const useAgendaStore = defineStore('agenda', { } }, actions: { - async fetch () { + async fetch (meetingNumber) { try { - const meetingData = JSON.parse(document.getElementById('meeting-data').textContent) + if (!meetingNumber) { + const meetingData = JSON.parse(document.getElementById('meeting-data').textContent) + meetingNumber = meetingData.meetingNumber + } - const resp = await fetch(`/api/meeting/${meetingData.meetingNumber}/agenda-data`, { credentials: 'omit' }) + const resp = await fetch(`/api/meeting/${meetingNumber}/agenda-data`, { credentials: 'omit' }) if (!resp.ok) { throw new Error(resp.statusText) } diff --git a/cypress/e2e-legacy/meeting/agenda.cy.js b/cypress/e2e-legacy/meeting/agenda.cy.js deleted file mode 100644 index 0074ac501..000000000 --- a/cypress/e2e-legacy/meeting/agenda.cy.js +++ /dev/null @@ -1,94 +0,0 @@ -describe('meeting agenda', () => { - before(() => { - cy.visit('/meeting/113/agenda/') - }) - - it('toggle customize panel when clicking on customize header bar', () => { - cy.get('#agenda-filter-customize').click() - cy.get('#customize').should('be.visible').and('have.class', 'show') - - cy.get('#agenda-filter-customize').click() - cy.get('#customize').should('not.be.visible').and('not.have.class', 'show') - }) - - it('customize panel should have at least 3 areas', () => { - cy.get('#agenda-filter-customize').click() - cy.get('.agenda-filter-areaselectbtn').should('have.length.at.least', 3) - }) - - it('customize panel should have at least 10 groups', () => { - cy.get('.agenda-filter-groupselectbtn').should('have.length.at.least', 10) - }) - - it('filtering the agenda should modify the URL', () => { - cy.get('.agenda-filter-groupselectbtn').take(5).as('selectedGroups').each(randomElement => { - cy.wrap(randomElement).click() - cy.wrap(randomElement).invoke('attr', 'data-filter-item').then(keyword => { - cy.url().should('contain', keyword) - }) - }) - - // Deselect everything - cy.get('@selectedGroups').click({ multiple: true }) - }) - - it('selecting an area should select all corresponding groups', () => { - cy.get('.agenda-filter-areaselectbtn').first().click().invoke('attr', 'data-filter-item').then(area => { - cy.url().should('contain', area) - - cy.get(`.agenda-filter-groupselectbtn[data-filter-keywords*="${area}"]`).each(group => { - cy.wrap(group).invoke('attr', 'data-filter-keywords').then(groupKeywords => { - // In case value is a comma-separated list of keywords... - if (groupKeywords.indexOf(',') < 0 || groupKeywords.split(',').includes(area)) { - cy.wrap(group).should('have.class', 'active') - } - }) - }) - }) - }) - - it('weekview iframe should load', () => { - cy.get('#weekview > iframe').its('0.contentDocument').should('exist') - cy.get('#weekview > iframe').its('0.contentDocument.readyState').should('equal', 'complete') - cy.get('#weekview > iframe').its('0.contentDocument.body', { - timeout: 30000 - }).should('not.be.empty') - }) -}) - -describe('meeting agenda weekview', () => { - before(() => { - cy.visit('/meeting/113/agenda/week-view.html') - }) - it('should have day headers', () => { - cy.get('.agenda-weekview-day').should('have.length.greaterThan', 0).and('be.visible') - }) - it('should have day columns', () => { - cy.get('.agenda-weekview-column').should('have.length.greaterThan', 0).and('be.visible') - }) - - it('should have the same number of day headers and columns', () => { - cy.get('.agenda-weekview-day').its('length').then(lgth => { - cy.get('.agenda-weekview-column').should('have.length', lgth) - }) - }) - - it('should have meetings', () => { - cy.get('.agenda-weekview-meeting').should('have.length.greaterThan', 0).and('be.visible') - }) - - it('meeting hover should cause expansion to column width', () => { - cy.get('.agenda-weekview-column:first').invoke('outerWidth').then(colWidth => { - /* eslint-disable cypress/no-unnecessary-waiting */ - cy.get('.agenda-weekview-meeting-mini').any(5).each(meeting => { - cy.wrap(meeting) - .wait(250) - .realHover({ position: 'center' }) - .invoke('outerWidth') - .should('be.closeTo', colWidth, 1) - // Move over to top left corner of the page to end the mouseover of the current meeting block - cy.get('.agenda-weekview-day:first').realHover().wait(250) - }) - }) - }) -}) diff --git a/cypress/e2e/meeting/agenda-neue.cy.js b/cypress/e2e/meeting/agenda-neue.cy.js deleted file mode 100644 index 40187e7b5..000000000 --- a/cypress/e2e/meeting/agenda-neue.cy.js +++ /dev/null @@ -1,1365 +0,0 @@ -import { DateTime } from 'luxon' -import path from 'path' -import { find, first, isEqual, times } from 'lodash-es' -import { faker } from '@faker-js/faker' -import slugify from 'slugify' -import meetingGenerator from '../../generators/meeting' - -const xslugify = (str) => slugify(str.replace('/', '-'), { lower: true, strict: true }) - -const TEST_SEED = 123 - -const viewports = { - desktop: [1536, 960], - smallDesktop: [1280, 800], - tablet: [768, 1024], - mobile: [360, 760] -} - -// Set randomness seed -faker.seed(TEST_SEED) - -/** - * Inject meeting info json into the page - * - * @param {*} win Window Object - * @param {*} meetingNumber Meeting Number - */ -function injectMeetingData (win, meetingNumber) { - const meetingDataScript = win.document.createElement('script') - meetingDataScript.id = 'meeting-data' - meetingDataScript.type = 'application/json' - meetingDataScript.innerHTML = `{"meetingNumber": "${meetingNumber}"}` - win.document.querySelector('head').appendChild(meetingDataScript) -} - -/** - * Format URL by replacing inline variables - * - * @param {String} url Raw URL - * @param {Object} session Session Object - * @param {String} meetingNumber Meeting Number - * @returns Formatted URL - */ -function formatLinkUrl (url, session, meetingNumber) { - return url ? url.replace('{meeting.number}', meetingNumber) - .replace('{group.acronym}', session.groupAcronym) - .replace('{short}', session.short) - .replace('{order_number}', session.orderInMeeting) : url -} - -/** - * Find the first URL in text matching a conference domain - * - * @param {String} txt Raw Text - * @returns First URL found - */ -function findFirstConferenceUrl (txt) { - try { - const fUrl = txt.match(urlRe) - if (fUrl && fUrl[0].length > 0) { - const pUrl = new URL(fUrl[0]) - if (conferenceDomains.some(d => pUrl.hostname.endsWith(d))) { - return fUrl[0] - } - } - } catch (err) { } - return null -} - -// ==================================================================== -// AGENDA-NEUE (past meeting) | DESKTOP viewport -// ==================================================================== - -describe('meeting -> agenda-neue [past, desktop]', { - viewportWidth: viewports.desktop[0], - viewportHeight: viewports.desktop[1] - }, () => { - let meetingData = null - - before(() => { - // Set clock to 2022-02-01 (month is 0-indexed) - cy.clock(new Date(2022, 1, 1)) - - // Generate meeting data - meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'past' }) - - // Intercept Meeting Data API - cy.intercept('GET', `/api/meeting/${meetingData.meeting.number}/agenda-data`, { body: meetingData }).as('getMeetingData') - - // Visit agenda page - cy.visit(`/meeting/${meetingData.meeting.number}/agenda-neue`, { - onBeforeLoad: (win) => { injectMeetingData(win, meetingData.meeting.number) } - }) - cy.wait('@getMeetingData') - - // Fix scroll behavior - // See https://github.com/cypress-io/cypress/issues/3200 - cy.document().then(document => { - const htmlElement = document.querySelector('html') - if (htmlElement) { - htmlElement.style.scrollBehavior = 'inherit' - } - }) - }) - - // -> HEADER - - it(`has IETF 123 title`, () => { - cy.get('.agenda h1').first().contains(`IETF ${meetingData.meeting.number} Meeting Agenda`) - - // Take a snapshot for visual diffing - cy.percySnapshot('meeting -> agenda-neue [past, desktop]', { widths: [viewports.desktop[0]] }) - }) - it(`has meeting city subtitle`, () => { - cy.get('.agenda h4').first().contains(meetingData.meeting.city) - }) - it(`has meeting date subtitle`, () => { - cy.get('.agenda h4').first().contains(/[a-zA-Z] [0-9]{1,2} - ([a-zA-Z]+ )?[0-9]{1,2}, [0-9]{4}/i) - }) - it(`has meeting last updated datetime`, () => { - const updatedDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone(meetingData.meeting.timezone).toFormat(`DD 'at' tt ZZZZ`) - cy.get('.agenda h6').first().contains(updatedDateTime) - }) - - // -> NAV - - it(`has the correct navigation items`, () => { - cy.get('.agenda .meeting-nav > li').should('have.length', 3) - cy.get('.agenda .meeting-nav > li').first().contains('Agenda') - cy.get('.agenda .meeting-nav > li').eq(1).contains('Floor plan') - cy.get('.agenda .meeting-nav > li').last().contains('Plaintext') - }) - it(`has the Settings button on the right`, () => { - cy.get('.agenda .meeting-nav').next('button').should('exist') - .and('include.text', 'Settings') - cy.window().then(win => { - cy.get('.agenda .meeting-nav').next('button').then(el => { - const btnBounds = el[0].getBoundingClientRect() - expect(btnBounds.x).to.be.greaterThan(win.innerWidth - btnBounds.width - 100) - }) - }) - }) - - // -> SCHEDULE LIST -> Header - - it(`has schedule list title`, () => { - cy.get('.agenda h2').first().contains(`Schedule`) - }) - it(`has info note`, () => { - cy.get('.agenda .agenda-infonote').should('exist').and('include.text', meetingData.meeting.infoNote) - }) - it(`info note can be dismissed / reopened`, () => { - cy.get('.agenda .agenda-infonote > button').click() - cy.get('.agenda .agenda-infonote').should('not.exist') - cy.get('.agenda h2').first().next('button').should('exist') - cy.get('.agenda h2').first().next('button').click() - cy.get('.agenda .agenda-infonote').should('exist') - cy.get('.agenda h2').first().next('button').should('not.exist') - }) - it(`has timezone selector`, () => { - cy.get('.agenda .agenda-tz-selector').should('exist') - cy.get('.agenda .agenda-tz-selector').prev().should('exist').and('include.text', 'Timezone:').prev('.bi').should('exist') - cy.get('.agenda .agenda-tz-selector > button').should('have.length', 3) - cy.get('.agenda .agenda-tz-selector > button').first().contains('Meeting') - cy.get('.agenda .agenda-tz-selector > button').eq(1).contains('Local') - cy.get('.agenda .agenda-tz-selector > button').last().contains('UTC') - cy.get('.agenda .agenda-timezone-ddn').should('exist') - }) - it.skip('can change timezone', () => { - // Switch to local timezone - cy.get('.agenda .agenda-tz-selector > button').eq(1).click().should('have.class', 'n-button--primary-type') - .prev('button').should('not.have.class', 'n-button--primary-type') - const localDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('local').toFormat(`DD 'at' tt ZZZZ`) - cy.get('.agenda h6').first().contains(localDateTime) - // Switch to UTC - cy.get('.agenda .agenda-tz-selector > button').last().click().should('have.class', 'n-button--primary-type') - .prev('button').should('not.have.class', 'n-button--primary-type') - const utcDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('utc').toFormat(`DD 'at' tt ZZZZ`) - cy.get('.agenda h6').first().contains(utcDateTime) - cy.get('.agenda .agenda-timezone-ddn').contains('UTC') - // Switch back to meeting timezone - cy.get('.agenda .agenda-tz-selector > button').first().click().should('have.class', 'n-button--primary-type') - cy.get('.agenda .agenda-timezone-ddn').contains('Tokyo') - }) - - // -> SCHEDULE LIST -> Table Headers - - it('has schedule list table headers', () => { - // Table Headers - cy.get('.agenda-table-head-time').should('exist').and('contain', 'Time') - cy.get('.agenda-table-head-location').should('exist').and('contain', 'Location') - cy.get('.agenda-table-head-event').should('exist').and('contain', 'Event') - // Day Headers - cy.get('.agenda-table-display-day').should('have.length', 7).each((el, idx) => { - const localDateTime = DateTime.fromISO(meetingData.meeting.startDate).setZone('local').plus({ days: idx }).toLocaleString(DateTime.DATE_HUGE) - cy.wrap(el).should('contain', localDateTime) - }) - }) - - // -> SCHEDULE LIST -> Table Events - - it('has schedule list table events (can take a while)', { - // This test is VERY memory-intensive, so disable DOM snapshots to prevent browser crash - numTestsKeptInMemory: 0 - }, () => { - let isFirstSession = true - cy.get('tr.agenda-table-display-event').should('have.length', meetingData.schedule.length).each((el, idx) => { - // Apply small arbitrary wait every 10 rows to prevent the test UI from freezing - if (idx % 10 === 0) { - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(10) - } - const event = meetingData.schedule[idx] - const eventStart = DateTime.fromISO(event.startDateTime) - const eventEnd = eventStart.plus({ seconds: event.duration }) - const eventTimeSlot = `${eventStart.toFormat('HH:mm')} - ${eventEnd.toFormat('HH:mm')}` - // -------- - // Location - // -------- - if (event.location?.short) { - // Has floor badge - cy.wrap(el).find('.agenda-table-cell-room > a').should('contain', event.room) - .and('have.attr', 'href', `/meeting/` + meetingData.meeting.number + `/floor-plan-neue?room=` + xslugify(event.room)) - .prev('.badge').should('contain', event.location.short) - } else { - // No floor badge - cy.wrap(el).find('.agenda-table-cell-room > span:not(.badge)').should('contain', event.room) - .prev('.badge').should('not.exist') - } - // --------------------------------------------------- - // Type-specific timeslot / group / name columns tests - // --------------------------------------------------- - if (event.type === 'regular') { - // First session should have header row above it - if (isFirstSession) { - cy.wrap(el).prev('tr.agenda-table-display-session-head').should('exist') - .find('.agenda-table-cell-ts').should('contain', eventTimeSlot) - .next('.agenda-table-cell-name').should('contain', `${DateTime.fromISO(event.startDateTime).toFormat('cccc')} ${event.name}`) - } - // Timeslot - cy.wrap(el).find('.agenda-table-cell-ts').should('contain', '—') - // Group Acronym + Parent - cy.wrap(el).find('.agenda-table-cell-group > .badge').should('contain', event.groupParent.acronym) - .next('a').should('contain', event.acronym).and('have.attr', 'href', `/group/` + event.acronym + `/about/`) - // Group Name - cy.wrap(el).find('.agenda-table-cell-name').should('contain', event.groupName) - isFirstSession = false - } else { - // Timeslot - cy.wrap(el).find('.agenda-table-cell-ts').should('contain', eventTimeSlot) - // Event Name - cy.wrap(el).find('.agenda-table-cell-name').should('contain', event.name) - isFirstSession = true - } - // ----------- - // Name column - // ----------- - // Event icon - if (['break', 'plenary'].includes(event.type) || (event.type === 'other' && ['office hours', 'hackathon'].some(s => event.name.toLowerCase().indexOf(s) >= 0))) { - cy.wrap(el).find('.agenda-table-cell-name > i.bi').should('exist') - } - // Name link - if (event.flags.agenda) { - cy.wrap(el).find('.agenda-table-cell-name > a').should('have.attr', 'href', event.agenda.url) - } - // BoF badge - if (event.isBoF) { - cy.wrap(el).find('.agenda-table-cell-name > .badge').should('contain', 'BoF') - } - // Note - if (event.note) { - cy.wrap(el).find('.agenda-table-cell-name > .agenda-table-note').should('exist') - .find('i.bi').should('exist') - .next('span').should('contain', event.note) - } - // ----------------------- - // Buttons / Status Column - // ----------------------- - switch (event.status) { - // Cancelled - case 'canceled': { - cy.wrap(el).find('.agenda-table-cell-links > .badge.is-cancelled').should('contain', 'Cancelled') - break - } - // Rescheduled - case 'resched': { - cy.wrap(el).find('.agenda-table-cell-links > .badge.is-rescheduled').should('contain', 'Rescheduled') - break - } - // Scheduled - case 'sched': { - if (event.flags.showAgenda || ['regular', 'plenary'].includes(event.type)) { - cy.wrap(el).find('.agenda-table-cell-links > .agenda-table-cell-links-buttons').as('eventbuttons') - if (event.flags.agenda) { - // Show meeting materials button - cy.get('@eventbuttons').find('i.bi.bi-collection').should('exist') - // ZIP materials button - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-tar`).should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) - .children('i.bi').should('exist') - // PDF materials button - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-pdf`).should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) - .children('i.bi').should('exist') - } else if (event.type === 'regular') { - // No meeting materials yet warning badge - cy.get('@eventbuttons').find('.no-meeting-materials').should('exist') - } - // Notepad button - const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-note`).should('have.attr', 'href', hedgeDocLink) - .children('i.bi').should('exist') - // Chat logs - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-logs`).should('have.attr', 'href', event.links.chatArchive) - .children('i.bi').should('exist') - // Recordings - for (const rec of event.links.recordings) { - if (rec.url.indexOf('audio') > 0) { - // -> Audio - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-audio-${rec.id}`).should('have.attr', 'href', rec.url) - .children('i.bi').should('exist') - } else if (rec.url.indexOf('youtu') > 0) { - // -> Youtube - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-youtube-${rec.id}`).should('have.attr', 'href', rec.url) - .children('i.bi').should('exist') - } else { - // -> Others - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-video-${rec.id}`).should('have.attr', 'href', rec.url) - .children('i.bi').should('exist') - } - } - // Video Stream - if (event.links.videoStream) { - const videoStreamLink = `https://www.meetecho.com/ietf${meetingData.meeting.number}/recordings#${event.acronym.toUpperCase()}` - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-rec`).should('have.attr', 'href', videoStreamLink) - .children('i.bi').should('exist') - } - } else { - cy.wrap(el).find('.agenda-table-cell-links > .agenda-table-cell-links-buttons').should('not.exist') - } - break - } - } - }) - }) - - // -> SCHEDULE LIST -> Search - - it('can search meetings', { - // No need to keep DOM snapshots for this test - numTestsKeptInMemory: 0 - }, () => { - cy.get('.agenda-table > .agenda-table-search > button').click() - cy.get('.agenda-search').should('exist').and('be.visible') - const event = find(meetingData.schedule, s => s.type === 'regular') - const eventWithNote = find(meetingData.schedule, s => s.note) - // Search different terms - const searchTerms = [ - 'hack', // Should match hackathon events - event.groupAcronym, // Match group name - event.room.toLowerCase(), // Match room name - eventWithNote.note.substring(0, 10).toLowerCase() // Match partial note - ] - for (const term of searchTerms) { - cy.get('.agenda-search input[type=text]').clear().type(term) - cy.get('.agenda-table .agenda-table-display-event').should('have.length.lessThan', meetingData.schedule.length) - // Let the UI update before checking each displayed row - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000) - cy.get('.agenda-table .agenda-table-display-event').each((el, idx) => { - cy.wrap(el).contains(term, { matchCase: false }) - }) - } - // Clear button - cy.get('.agenda-search button').click() - cy.get('.agenda-search input[type=text]').should('have.value', '') - cy.get('.agenda-table .agenda-table-display-event').should('have.length', meetingData.schedule.length) - // Invalid search - cy.get('.agenda-search input[type=text]').type(faker.vehicle.vin()) - cy.get('.agenda-table .agenda-table-display-event').should('have.length', 0) - cy.get('.agenda-table .agenda-table-display-noresult').should('exist').and('contain', 'No event matching your search query.') - // Closing search should clear search - cy.get('.agenda-table > .agenda-table-search > button').click() - cy.get('.agenda-search').should('not.exist') - cy.get('.agenda-table .agenda-table-display-event').should('have.length', meetingData.schedule.length) - }) - - // -> SCHEDULE LIST -> Show Meeting Materials dialog - - it('can show meeting materials dialog', () => { - const event = find(meetingData.schedule, s => s.flags.showAgenda && s.flags.agenda) - const eventStart = DateTime.fromISO(event.startDateTime) - const eventEnd = eventStart.plus({ seconds: event.duration }) - // Intercept meeting materials request - const materialsUrl = (new URL(event.agenda.url)).pathname - const materialsInfo = { - url: event.agenda.url, - slides: times(5, idx => ({ - id: 100000 + idx, - title: faker.commerce.productName(), - url: `/meeting/${meetingData.meeting.number}/materials/slides-${meetingData.meeting.number}-${event.acronym}-${faker.internet.domainWord()}`, - ext: ['pdf', 'html', 'md', 'txt', 'pptx'][idx] - })), - minutes: { - ext: 'md', - id: 123456, - title: 'Minutes IETF123 Testing', - url: `/meeting/${meetingData.meeting.number}/materials/minutes-${meetingData.meeting.number}-${event.acronym}-${faker.internet.domainWord()}` - } - } - cy.intercept('GET', `/api/meeting/session/${event.sessionId}/materials`, { body: materialsInfo }).as('getMaterialsInfo') - cy.intercept('GET', materialsUrl, { body: 'The internet is a series of tubes.' }).as('getMaterialsText') - cy.intercept('GET', materialsInfo.minutes.url, { body: 'One does not simply walk into mordor.' }).as('getMaterialsMinutes') - // Open dialog - cy.get(`#agenda-rowid-${event.id}`).find(`#btn-lnk-${event.id}-mat`).click() - cy.get('.agenda-eventdetails').should('exist').and('be.visible') - cy.wait('@getMaterialsText') - // Header - cy.get('.agenda-eventdetails .n-card-header__main > .detail-header > .bi').should('exist') - .next('span').should('contain', eventStart.toFormat('DDDD')) - cy.get('.agenda-eventdetails .n-card-header__extra > .detail-header > .bi').should('exist') - .next('strong').should('contain', `${eventStart.toFormat('T')} - ${eventEnd.toFormat('T')}`) - cy.get('.agenda-eventdetails .detail-title > h6 > .bi').should('exist') - .next('span').should('contain', event.name) - cy.get('.agenda-eventdetails .detail-location > .bi').should('exist') - .next('.badge').should('contain', event.location.short) - .next('span').should('contain', event.room) - // Navigation - cy.get('.agenda-eventdetails .detail-nav > a').should('have.length', 3) - .first().should('have.class', 'active') - .nextAll().should('not.have.class', 'active') - // Agenda Tab - cy.get('.agenda-eventdetails .detail-text > iframe').should('have.attr', 'src', materialsUrl) - // Slides Tab - cy.get('.agenda-eventdetails .detail-nav > a').eq(1).click() - .should('have.class', 'active') - .siblings('a').should('not.have.class', 'active') - cy.get('.agenda-eventdetails .detail-text > .list-group > .list-group-item').should('have.length', materialsInfo.slides.length).each((el, idx) => { - cy.wrap(el).should('have.attr', 'href', materialsInfo.slides[idx].url) - .children('.bi').should('have.class', `bi-filetype-${materialsInfo.slides[idx].ext}`) - .next('span').should('contain', materialsInfo.slides[idx].title) - }) - // Minutes Tab - cy.get('.agenda-eventdetails .detail-nav > a').eq(2).click() - .should('have.class', 'active') - .prevAll('a').should('not.have.class', 'active') - cy.wait('@getMaterialsMinutes') - cy.get('.agenda-eventdetails .detail-text > iframe').should('have.attr', 'src', materialsInfo.minutes.url) - // Footer Buttons - const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` - cy.get('.agenda-eventdetails .detail-action > a').should('have.length', 3) - .first().should('contain', 'Download as tarball').should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) - .next().should('contain', 'Download as PDF').should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) - .next().should('contain', 'Notepad').should('have.attr', 'href', hedgeDocLink) - // Clicking X should close the dialog - cy.get('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() - }) - - // -> SCHEDULE LIST -> Show Meeting Materials dialog (EMPTY VARIANT) - - it('can show meeting materials dialog (empty variant)', () => { - const event = find(meetingData.schedule, s => s.flags.showAgenda && s.flags.agenda) - // Intercept meeting materials request - const materialsUrl = (new URL(event.agenda.url)).pathname - const materialsInfo = { - url: event.agenda.url, - slides: [], - minutes: null - } - cy.intercept('GET', `/api/meeting/session/${event.sessionId}/materials`, { body: materialsInfo }).as('getMaterialsInfo') - cy.intercept('GET', materialsUrl, { body: 'The internet is a series of tubes.' }).as('getMaterialsText') - // Open dialog - cy.get(`#agenda-rowid-${event.id}`).find(`#btn-lnk-${event.id}-mat`).click() - cy.get('.agenda-eventdetails').should('exist').and('be.visible') - cy.wait('@getMaterialsText') - // Slides Tab - cy.get('.agenda-eventdetails .detail-nav > a').eq(1).click() - cy.get('.agenda-eventdetails .detail-text').should('contain', 'No slides submitted for this session.') - // Minutes Tab - cy.get('.agenda-eventdetails .detail-nav > a').eq(2).click() - cy.get('.agenda-eventdetails .detail-text').should('contain', 'No minutes submitted for this session.') - // Clicking X should close the dialog - cy.get('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() - }) - - // -> FILTER BY AREA/GROUP DIALOG - - it('can filter by area/group', { - // This test has lot of UI element interactions and the UI can get slow with DOM snapshots, so disable it - numTestsKeptInMemory: 0 - }, () => { - // Open dialog - cy.get('#agenda-quickaccess-filterbyareagroups-btn').should('exist').and('be.visible').click() - cy.get('.agenda-personalize').should('exist').and('be.visible') - // Check header elements - cy.get('.agenda-personalize .n-drawer-header__main > span').contains('Filter Areas + Groups') - cy.get('.agenda-personalize .agenda-personalize-actions > button').should('have.length', 3) - cy.get('.agenda-personalize .agenda-personalize-actions > button').first().contains('Clear Selection') - cy.get('.agenda-personalize .agenda-personalize-actions > button').eq(1).contains('Cancel') - cy.get('.agenda-personalize .agenda-personalize-actions > button').last().contains('Apply') - // Check categories - cy.get('.agenda-personalize .agenda-personalize-category').should('have.length', meetingData.categories.length) - // Check areas + groups - cy.get('.agenda-personalize .agenda-personalize-category').each((el, idx) => { - const cat = meetingData.categories[idx] - cy.wrap(el).find('.agenda-personalize-area').should('have.length', cat.length) - .each((areaEl, areaIdx) => { - // Area Button - const area = cat[areaIdx] - cy.wrap(areaEl).find('.agenda-personalize-areamain').scrollIntoView() - if (area.label) { - cy.wrap(areaEl).find('.agenda-personalize-areamain > button').should('be.visible').contains(area.label) - } else { - cy.wrap(areaEl).find('.agenda-personalize-areamain > button').should('not.exist') - } - // Group Buttons - cy.wrap(areaEl).find('.agenda-personalize-groups > button').should('have.length', area.children.length) - .each((groupEl, groupIdx) => { - const group = area.children[groupIdx] - cy.wrap(groupEl).should('be.visible').contains(group.label) - if (group.is_bof) { - cy.wrap(groupEl).should('have.class', 'is-bof') - cy.wrap(groupEl).find('.badge').should('be.visible').contains('BoF') - } - }) - // Test Area Selection - if (area.label) { - cy.wrap(areaEl).find('.agenda-personalize-areamain > button').click() - cy.wrap(areaEl).find('.agenda-personalize-groups > button').should('have.class', 'is-checked') - cy.wrap(areaEl).find('.agenda-personalize-areamain > button').click() - cy.wrap(areaEl).find('.agenda-personalize-groups > button').should('not.have.class', 'is-checked') - } - // Test Group Selection - cy.wrap(areaEl).find('.agenda-personalize-groups > button').any().click() - .should('have.class', 'is-checked').click().should('not.have.class', 'is-checked') - }) - }) - // Test multi-toggled_by button trigger - cy.get(`.agenda-personalize .agenda-personalize-category:last .agenda-personalize-area:last .agenda-personalize-groups > button:contains('BoF')`).as('bofbtn') - cy.get('@bofbtn').click() - cy.get('.agenda-personalize .agenda-personalize-group:has(.badge)').should('have.class', 'is-checked') - cy.get('@bofbtn').click() - cy.get('.agenda-personalize .agenda-personalize-group:has(.badge)').should('not.have.class', 'is-checked') - // Clicking all groups from area then area button should unselect all - cy.get('.agenda-personalize .agenda-personalize-area:first .agenda-personalize-groups > button').click({ multiple: true }) - cy.get('.agenda-personalize .agenda-personalize-area:first .agenda-personalize-areamain > button').click() - cy.get('.agenda-personalize .agenda-personalize-area:first .agenda-personalize-groups > button').should('not.have.class', 'is-checked') - // Test Clear Selection - cy.get('.agenda-personalize .agenda-personalize-group').any(10).click({ multiple: true }) - cy.get('.agenda-personalize .agenda-personalize-actions > button').first().click() - cy.get('.agenda-personalize .agenda-personalize-group').should('not.have.class', 'is-checked') - // Click Cancel should hide dialog - cy.get('.agenda-personalize .agenda-personalize-actions > button').eq(1).click() - cy.get('.agenda-personalize').should('not.exist') - }) - - // -> PICK SESSIONS - - it('can pick individual sessions', () => { - // Enter pick mode - cy.get('#agenda-quickaccess-picksessions-btn').should('be.visible').click().should('not.exist') - cy.get('#agenda-quickaccess-applypick-btn').should('be.visible') - cy.get('#agenda-quickaccess-discardpick-btn').should('be.visible') - - // Pick 10 random sessions - cy.get('.agenda .agenda-table-cell-check > .n-checkbox').should('have.length', meetingData.schedule.length) - .any(10).click({ multiple: true }) - cy.get('#agenda-quickaccess-applypick-btn').click().should('not.exist') - cy.get('#agenda-quickaccess-modifypick-btn').should('be.visible') - cy.get('#agenda-quickaccess-discardpick-btn').should('be.visible') - cy.get('.agenda .agenda-table-display-event').should('have.length', 10) - - // Change selection (keep existing 5 + add 5 new ones) - cy.get('#agenda-quickaccess-modifypick-btn').click().should('not.exist') - cy.get('#agenda-quickaccess-applypick-btn').should('be.visible') - cy.get('#agenda-quickaccess-discardpick-btn').should('be.visible') - cy.get('.agenda .agenda-table-cell-check > .n-checkbox').should('have.length', meetingData.schedule.length) - .filter('.n-checkbox--checked').should('have.length', 10) - .take(5).click({ multiple: true }) - cy.get('.agenda .agenda-table-cell-check > .n-checkbox:not(.n-checkbox--checked)').any(5).click({ multiple: true }) - cy.get('#agenda-quickaccess-applypick-btn').click() - cy.get('.agenda .agenda-table-display-event').should('have.length', 10) - - // Discard should clear selection - cy.get('#agenda-quickaccess-discardpick-btn').click().should('not.exist') - cy.get('#agenda-quickaccess-modifypick-btn').should('not.exist') - cy.get('#agenda-quickaccess-picksessions-btn').should('be.visible') - cy.get('.agenda .agenda-table-cell-check').should('not.exist') - cy.get('.agenda .agenda-table-display-event').should('have.length', meetingData.schedule.length) - }) - - // -> CALENDAR VIEW - - it('can view calendar', () => { - // Open dialog - cy.get('#agenda-quickaccess-calview-btn').should('be.visible').click() - cy.get('.agenda-calendar').should('exist').and('be.visible') - // Check header elements - cy.get('.agenda-calendar .n-drawer-header__main > span').contains('Calendar View') - cy.get('.agenda-calendar .agenda-calendar-actions').as('diagheader') - cy.get('@diagheader').children('button').should('have.length', 2) - cy.get('@diagheader').children('button').first().should('include.text', 'Filter') - cy.get('@diagheader').children('button').last().should('include.text', 'Close') - // ----------------------- - // Check timezone controls - // ----------------------- -// cy.get('@diagheader').children('small').first().should('contain', 'Timezone') -// // Switch to local timezone -// cy.get('@diagheader').children('.n-button-group').find('button').as('tzbuttons').eq(1).click().should('have.class', 'n-button--primary-type') -// .prev('button').should('not.have.class', 'n-button--primary-type') -// const localDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('local').toFormat(`DD 'at' tt ZZZZ`) -// cy.get('.agenda h6').first().contains(localDateTime) -// // Switch to UTC -// cy.get('@tzbuttons').last().click().should('have.class', 'n-button--primary-type') -// .prev('button').should('not.have.class', 'n-button--primary-type') -// const utcDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('utc').toFormat(`DD 'at' tt ZZZZ`) -// cy.get('.agenda h6').first().contains(utcDateTime) -// // Switch back to meeting timezone -// cy.get('@tzbuttons').first().click().should('have.class', 'n-button--primary-type') - // ---------------------- - // Check Filters Shortcut - // ---------------------- - cy.get('@diagheader').children('button').first().click() - // Only check whether the dialog is shown. We already tested the dialog earlier. - cy.get('.agenda-personalize').should('be.visible') - // Close dialog - cy.get('.agenda-personalize .agenda-personalize-actions > button').eq(1).click() - cy.get('.agenda-personalize').should('not.exist') - // ------------------ - // Check Event Dialog - // ------------------ - const firstEvent = meetingData.schedule[0] - const materialsUrl = (new URL(firstEvent.agenda.url)).pathname - const materialsInfo = { - url: firstEvent.agenda.url, - slides: [], - minutes: null - } - cy.intercept('GET', `/api/meeting/session/${firstEvent.sessionId}/materials`, { body: materialsInfo }).as('getMaterialsInfo') - cy.intercept('GET', materialsUrl, { body: 'The internet is a series of tubes.' }).as('getMaterialsText') - cy.get('.agenda-calendar .fc-event').first().click() - // Only check whether the dialog is shown. We already tested the dialog earlier. - cy.get('.agenda-eventdetails').should('be.visible') - // Close dialog - cy.get('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() - // ----------- - // Event Hover - // ----------- - // First Event - let eventStart = DateTime.fromISO(firstEvent.startDateTime) - let eventEnd = eventStart.plus({ seconds: firstEvent.duration }) - let hoverDateTime = `${eventStart.toFormat('DDDD')} from ${eventStart.toFormat('T')} to ${eventEnd.toFormat('T')}` - cy.get('.agenda-calendar .fc-event').first().realHover({ position: 'center' }) - cy.get('.agenda-calendar-hint > div').first().should('include.text', firstEvent.name) - .next().should('include.text', firstEvent.location.short).and('include.text', firstEvent.room) - .next().should('include.text', hoverDateTime) - // Second Event - const secondEvent = meetingData.schedule[1] - eventStart = DateTime.fromISO(secondEvent.startDateTime) - eventEnd = eventStart.plus({ seconds: secondEvent.duration }) - hoverDateTime = `${eventStart.toFormat('DDDD')} from ${eventStart.toFormat('T')} to ${eventEnd.toFormat('T')}` - cy.get('.agenda-calendar .fc-event').eq(1).realHover({ position: 'center' }) - cy.get('.agenda-calendar-hint > div').first().should('include.text', secondEvent.name) - .next().should('include.text', secondEvent.location.short).and('include.text', secondEvent.room) - .next().should('include.text', hoverDateTime) - // ------------------------------ - // Click Close should hide dialog - // ------------------------------ - cy.get('@diagheader').children('button').last().click() - cy.get('.agenda-calendar').should('not.exist') - }) - - // -> SETTINGS DIALOG - - it('can change settings', () => { - // Open dialog - cy.get('.meeting-nav').next('button').should('exist').and('be.visible').click() - cy.get('.agenda-settings').should('exist').and('be.visible') - // Check header elements - cy.get('.agenda-settings .n-drawer-header__main > span').contains('Agenda Settings') - cy.get('.agenda-settings .agenda-settings-actions > button').should('have.length', 2) - cy.get('.agenda-settings .agenda-settings-actions > button').first().should('be.visible') - cy.get('.agenda-settings .agenda-settings-actions > button').last().contains('Close') - // ------------------- - // Check export config - // ------------------- - cy.get('.agenda-settings .agenda-settings-actions > button').first().click() - cy.get('.n-dropdown-option:contains("Export Configuration")').should('exist').and('be.visible').click() - cy.readFile(path.join(Cypress.config('downloadsFolder'), 'agenda-settings.json'), { timeout: 15000 }).then(cfg => { - cy.fixture('agenda-settings.json').then(cfgValid => { - expect(isEqual(cfg, cfgValid)).to.be.true - }) - }) - // ------------------- - // Check import config - // ------------------- - // Skip test if firefox/safari since they don't support the file picker API - if (!Cypress.isBrowser('firefox') && !Cypress.isBrowser('safari')) { - cy.fixture('agenda-settings.json', { encoding: 'utf8' }).then(cfgImport => { - // Stub the native file picker - // From https://cypresstips.substack.com/p/stub-the-browser-filesystem-api - cy.window().then((win) => { - cy.stub(win, 'showOpenFilePicker').resolves([{ - getFile: cy.stub().resolves({ - text: cy.stub().resolves(JSON.stringify(cfgImport)) - }) - }]) - cy.get('.agenda-settings .agenda-settings-actions > button').first().click() - cy.get('.n-dropdown-option:contains("Import Configuration")').should('exist').and('be.visible').click() - cy.get('.n-message').should('contain', 'Config imported successfully') - }) - }) - } else { - cy.log('Config import test skipped because this browser does not support file picker API, which is required for the test.') - } - // ----------------------- - // Check timezone controls - // ----------------------- -// cy.get('.agenda-settings-content > .n-divider').first().should('contain', 'Timezone').as('settings-timezone') -// // Switch to local timezone -// cy.get('@settings-timezone').next('.n-button-group').find('button').eq(1).click().should('have.class', 'n-button--primary-type') -// .prev('button').should('not.have.class', 'n-button--primary-type') -// const localDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('local').toFormat(`DD 'at' tt ZZZZ`) -// cy.get('.agenda h6').first().contains(localDateTime) -// // Switch to UTC -// cy.get('@settings-timezone').next('.n-button-group').find('button').last().click().should('have.class', 'n-button--primary-type') -// .prev('button').should('not.have.class', 'n-button--primary-type') -// const utcDateTime = DateTime.fromISO(meetingData.meeting.updated).setZone('utc').toFormat(`DD 'at' tt ZZZZ`) -// cy.get('.agenda h6').first().contains(utcDateTime) -// // Switch back to meeting timezone -// cy.get('@settings-timezone').next('.n-button-group').find('button').first().click().should('have.class', 'n-button--primary-type') -// cy.get('@settings-timezone').next('.n-button-group').next('.n-select').contains('Tokyo') - // ---------------------- - // Check display controls - // ---------------------- - cy.get('.agenda-settings-content > .n-divider').eq(1).should('contain', 'Display').as('settings-display') - // -> Test Current Meeting Info Note toggle - cy.get('@settings-display').nextAll('div.d-flex').eq(1).find('div[role=switch]').as('switch-infonote').click() - cy.get('.agenda .agenda-infonote').should('not.exist') - cy.get('@switch-infonote').click() - cy.get('.agenda .agenda-infonote').should('exist') - // -> Test Event Icons toggle - cy.get('@settings-display').nextAll('div.d-flex').eq(2).find('div[role=switch]').as('switch-eventicons').click() - cy.get('.agenda .agenda-event-icon').should('not.exist') - cy.get('@switch-eventicons').click() - cy.get('.agenda .agenda-event-icon').should('exist') - // -> Test Floor Indicators toggle - cy.get('@settings-display').nextAll('div.d-flex').eq(3).find('div[role=switch]').as('switch-floorind').click() - cy.get('.agenda .agenda-table-cell-room > span.badge').should('not.exist') - cy.get('@switch-floorind').click() - cy.get('.agenda .agenda-table-cell-room > span.badge').should('exist') - // -> Test Group Area Indicators toggle - cy.get('@settings-display').nextAll('div.d-flex').eq(4).find('div[role=switch]').as('switch-groupind').click() - cy.get('.agenda .agenda-table-cell-group > span.badge').should('not.exist') - cy.get('@switch-groupind').click() - cy.get('.agenda .agenda-table-cell-group > span.badge').should('exist') - // TODO: realtime red line toggle - // -> Test Bolder Text toggle - cy.get('@settings-display').nextAll('div.d-flex').eq(6).find('div[role=switch]').as('switch-boldertext').click() - cy.get('.agenda').should('have.class', 'bolder-text') - cy.get('@switch-boldertext').click() - cy.get('.agenda').should('not.have.class', 'bolder-text') - - // ---------------------------- - // Check calendar view controls - // ---------------------------- - cy.get('.agenda-settings-content > .n-divider').eq(2).should('contain', 'Calendar View').as('settings-calendar') - // TODO: calendar view checks - // ---------------------------- - // Check calendar view controls - // ---------------------------- - cy.get('.agenda-settings-content > .n-divider').eq(3).should('contain', 'Custom Colors / Tags').as('settings-colors') - // ------------------------------ - // Click Close should hide dialog - // ------------------------------ - cy.get('.agenda-settings .agenda-settings-actions > button').last().click() - cy.get('.agenda-settings').should('not.exist') - }) - - // -> ADD TO CALENDAR - - it('can add to calendar', () => { - cy.get('#agenda-quickaccess-addtocal-btn').should('be.visible').and('include.text', 'Add to your calendar').click() - cy.get('.n-dropdown-menu > .n-dropdown-option').should('have.length', 2) - .first().should('include.text', 'Subscribe') - .next().should('include.text', 'Download') - - // Cannot test if .ics download works because of cypress bug: - // See https://github.com/cypress-io/cypress/issues/14857 - - // // Intercept Download ICS Call - // cy.intercept('GET', `/meeting/${meetingData.meeting.number}/agenda.ics`, { - // body: 'test', - // headers: { - // 'Content-disposition': 'attachment; filename=agenda.ics', - // 'Content-Type': 'text/calendar' - // } - // }).as('getIcs') - - // // Test Download ICS - // cy.get('.n-dropdown-menu > .n-dropdown-option').eq(1).click() - // cy.wait('@getIcs') - }) - - // -> JUMP TO DAY - - it(`can jump to specific days`, () => { - // -> Separator label - cy.get('.agenda .agenda-quickaccess-jumpto').prev('div[role=separator]').should('be.visible').and('include.text', 'Jump to...') - // -> Check nav items - cy.get('.agenda .agenda-quickaccess-jumpto > .nav-item').should('have.length', 7).as('dayjumpbuttons') - .each((el, idx) => { - const localDateTime = DateTime.fromISO(meetingData.meeting.startDate).setZone('local').plus({ days: idx }).toLocaleString(DateTime.DATE_HUGE) - cy.wrap(el).should('contain', localDateTime) - }) - - // Scroll to last day - // Cypress does not handle the IntersectionObserver correctly, so disable this test for now. - // See https://github.com/cypress-io/cypress/issues/3848 - cy.get('@dayjumpbuttons').last().children('a').click({ scrollBehavior: false, force: true }) // .should('have.class', 'active') - cy.get('.agenda-table-display-day').last().isInViewport() - - // Scroll to second day - cy.get('@dayjumpbuttons').eq(1).children('a').click({ scrollBehavior: false, force: true }) // .should('have.class', 'active') - cy.get('.agenda-table-display-day').eq(1).isInViewport() - - cy.scrollTo('top') - }) - - // -> Color Tagging - - it(`can assign colors/tags to sessions`, () => { - cy.scrollTo('top') - cy.get('.agenda .agenda-table-colorpicker').should('be.visible').click({ scrollBehavior: false }) - - // Check Legend - cy.get('.agenda .agenda-colorlegend').should('be.visible') - .children().first().should('include.text', 'Color Legend') - .nextAll().should('have.length', 5) - - // Check color dots - cy.get('.agenda .agenda-table-display-event .agenda-table-colorindicator.is-active').should('have.length', meetingData.schedule.length) - - // ------------------------- - // Assign colors to sessions - // ------------------------- - cy.get('.agenda .agenda-table-display-event').take(5).each((el, idx) => { - cy.wrap(el).find('.agenda-table-colorindicator').should('be.visible').click({ scrollBehavior: false, force: true }) - .prev('.agenda-table-colorchoices').should('be.visible') - .children('.agenda-table-colorchoice').should('have.length', 6) - .eq(idx + 1).click({ scrollBehavior: false }).should('not.exist') - }) - - // Exit color assignment mode - cy.get('.agenda .agenda-table-colorpicker').click({ scrollBehavior: false }) - cy.get('.agenda .agenda-table-display-event .agenda-table-colorindicator').should('have.length', 5).and('not.have.class', 'is-active') - cy.get('.agenda .agenda-colorlegend').should('be.visible') - - // ---------------------------------------- - // Change color legend from settings dialog - // ---------------------------------------- - // Open dialog - cy.get('.meeting-nav').next('button').should('exist').and('be.visible').click() - cy.get('.agenda-settings').should('exist').and('be.visible') - // Toggle color legend switch - cy.get('.agenda-settings-content > .n-divider').eq(1).should('contain', 'Display') - .next('div.d-flex').find('div[role=switch]').as('switch-colorlegend').click() - // Legend should be hidden - cy.get('.agenda .agenda-colorlegend').should('not.exist') - // Toggle color legend back - cy.get('@switch-colorlegend').click() - // Legend should be visible - cy.get('.agenda .agenda-colorlegend').should('be.visible') - // Change color names - cy.get('#agenda-settings-colors-header').nextAll('div.d-flex').each((el, idx) => { - const newName = faker.music.genre() - cy.wrap(el).find('.n-input').clear().type(newName) - // TODO: Color names + values don't update in test mode for some reason... Watcher not triggering? Skipped for now. - // cy.get('.agenda .agenda-colorlegend').children().eq(idx + 1).should('include.text', newName) - }) - // Close dialog - cy.get('.agenda-settings .agenda-settings-actions > button').last().click() - cy.get('.agenda-settings').should('not.exist') - - // --------------- - // Unassign colors - // --------------- - // Re-enter color assignment mode - cy.get('.agenda .agenda-table-colorpicker').should('be.visible').click({ scrollBehavior: false }) - // Remove color selection - cy.get('.agenda .agenda-table-display-event').take(5).each((el, idx) => { - cy.wrap(el).find('.agenda-table-colorindicator').should('be.visible').click({ scrollBehavior: false, force: true }) - .prev('.agenda-table-colorchoices').should('be.visible') - .children('.agenda-table-colorchoice').should('have.length', 6) - .first().click({ scrollBehavior: false }).should('not.exist') - }) - // Exit color assignment mode - cy.get('.agenda .agenda-table-colorpicker').click({ scrollBehavior: false }) - // No colored dots should appear - cy.get('.agenda .agenda-table-display-event .agenda-table-colorindicator').should('not.exist') - // Clear all colors from Settings menu - cy.get('.meeting-nav').next('button').should('exist').and('be.visible').click() - cy.get('.agenda-settings').should('exist').and('be.visible') - cy.get('.agenda-settings .agenda-settings-actions > button').first().click() - cy.get('.n-dropdown-option:contains("Clear Color")').should('exist').and('be.visible').click() - // Color legend should no longer be displayed - cy.get('.agenda .agenda-colorlegend').should('not.exist') - cy.get('.agenda-settings').should('not.exist') - }) -}) - -// ==================================================================== -// AGENDA-NEUE (future meeting) | DESKTOP viewport -// ==================================================================== - -describe('meeting -> agenda-neue [future, desktop]', { - viewportWidth: viewports.desktop[0], - viewportHeight: viewports.desktop[1] - }, () => { - let meetingData = null - - before(() => { - // Set clock to 2022-02-01 (month is 0-indexed) - cy.clock(new Date(2022, 1, 1)) - - // Generate future meeting data - meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'future' }) - - // Intercept Meeting Data API - cy.intercept('GET', `/api/meeting/${meetingData.meeting.number}/agenda-data`, { body: meetingData }).as('getMeetingData') - - // Visit agenda page - cy.visit(`/meeting/${meetingData.meeting.number}/agenda-neue`, { - onBeforeLoad: (win) => { injectMeetingData(win, meetingData.meeting.number) } - }) - cy.wait('@getMeetingData') - }) - - // -> SCHEDULE LIST -> Warning - - it(`has current meeting warning`, () => { - cy.get('.agenda .agenda-currentwarn').should('exist').and('include.text', 'Note: IETF agendas are subject to change, up to and during a meeting.') - }) - - // -> SCHEDULE LIST -> Table Events - - it('has schedule list table events (can take a while)', { - // This test is VERY memory-intensive, so disable DOM snapshots to prevent browser crash - numTestsKeptInMemory: 0 - }, () => { - let isFirstSession = true - cy.get('tr.agenda-table-display-event').should('have.length', meetingData.schedule.length).each((el, idx) => { - // Apply small arbitrary wait every 10 rows to prevent the test UI from freezing - if (idx % 10 === 0) { - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(10) - } - const event = meetingData.schedule[idx] - - // ----------------------- - // Buttons / Status Column - // ----------------------- - if (event.status === 'sched') { - if (event.flags.showAgenda || ['regular', 'plenary'].includes(event.type)) { - cy.wrap(el).find('.agenda-table-cell-links > .agenda-table-cell-links-buttons').as('eventbuttons') - if (event.flags.agenda) { - // Show meeting materials button - cy.get('@eventbuttons').find('i.bi.bi-collection').should('exist') - // ZIP materials button - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-tar`).should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) - .children('i.bi').should('exist') - // PDF materials button - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-pdf`).should('have.attr', 'href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) - .children('i.bi').should('exist') - } else if (event.type === 'regular') { - // No meeting materials yet warning badge - cy.get('@eventbuttons').find('.no-meeting-materials').should('exist') - } - // Notepad button - const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-note`).should('have.attr', 'href', hedgeDocLink) - .children('i.bi').should('exist') - // Chat room - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-room`).should('have.attr', 'href', event.links.chat) - .children('i.bi').should('exist') - // Video Stream - if (event.links.videoStream) { - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-video`).should('have.attr', 'href', formatLinkUrl(event.links.videoStream, event, meetingData.meeting.number)) - .children('i.bi').should('exist') - } - // Onsite Tool - if (event.links.onsitetool) { - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-onsitetool`).should('have.attr', 'href', formatLinkUrl(event.links.onsitetool, event, meetingData.meeting.number)) - .children('i.bi').should('exist') - } - // Audio Stream - if (event.links.audioStream) { - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-audio`).should('have.attr', 'href', formatLinkUrl(event.links.audioStream, event, meetingData.meeting.number)) - .children('i.bi').should('exist') - } - // Remote Call-In - let remoteCallInUrl = null - if (event.note) { - remoteCallInUrl = findFirstConferenceUrl(event.note) - } - if (!remoteCallInUrl && event.remoteInstructions) { - remoteCallInUrl = findFirstConferenceUrl(event.remoteInstructions) - } - if (!remoteCallInUrl && event.links.webex) { - remoteCallInUrl = event.links.webex - } - if (remoteCallInUrl) { - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-remotecallin`).should('have.attr', 'href', remoteCallInUrl) - .children('i.bi').should('exist') - } - // calendar - if (event.links.calendar) { - cy.get('@eventbuttons').find(`#btn-lnk-${event.id}-calendar`).should('have.attr', 'href', event.links.calendar) - .children('i.bi').should('exist') - } - } else { - cy.wrap(el).find('.agenda-table-cell-links > .agenda-table-cell-links-buttons').should('not.exist') - } - } - }) - }) -}) - -// ==================================================================== -// AGENDA-NEUE (live meeting) | DESKTOP viewport -// ==================================================================== - -describe('meeting -> agenda-neue [live, desktop]', { - viewportWidth: viewports.desktop[0], - viewportHeight: viewports.desktop[1] - }, () => { - let meetingData = null - const currentTime = DateTime.fromISO('2022-02-01T13:45:15', { zone: 'Asia/Tokyo' }) - const liveEvents = [] - let lastLiveEvent = null - - before(() => { - // Set clock to 2022-02-01 (month is 0-indexed) - cy.clock(currentTime.toMillis()) - - // Generate live meeting data - meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'current' }) - - // Calculate live events - let lastEventStartTime = null - for (const event of meetingData.schedule) { - const eventStart = DateTime.fromISO(event.startDateTime, { zone: 'Asia/Tokyo' }) - const eventEnd = eventStart.plus({ seconds: event.duration }) - if (currentTime >= eventStart && currentTime < eventEnd) { - liveEvents.push(event) - // -> Find last event before current time - if (lastEventStartTime === eventStart.toMillis()) { - continue - } else { - lastEventStartTime = eventStart.toMillis() - lastLiveEvent = event - } - } - // -> Skip future events - if (eventStart > currentTime) { - break - } - } - - // Intercept Meeting Data API - cy.intercept('GET', `/api/meeting/${meetingData.meeting.number}/agenda-data`, { body: meetingData }).as('getMeetingData') - - // Visit agenda page - cy.visit(`/meeting/${meetingData.meeting.number}/agenda-neue`, { - onBeforeLoad: (win) => { injectMeetingData(win, meetingData.meeting.number) } - }) - cy.wait('@getMeetingData') - - // Fix scroll behavior - // See https://github.com/cypress-io/cypress/issues/3200 - cy.document().then(document => { - const htmlElement = document.querySelector('html') - if (htmlElement) { - htmlElement.style.scrollBehavior = 'inherit' - } - }) - }) - - beforeEach(() => { - cy.clock(currentTime.toMillis()) - }) - - // -> HIGHLIGHTED LIVE SESSIONS - - it(`has live sessions highlighted`, () => { - cy.get('.agenda .agenda-table-display-event.agenda-table-live').should('have.length', liveEvents.length) - }) - - // -> LIVE RED LINE - - it(`has live red line`, () => { - cy.get('.agenda .agenda-table-redhand').should('be.visible').then(el => { - cy.get(`#agenda-rowid-${lastLiveEvent.id}`).then(elEv => { - expect(el.offsetTop).to.equal(elEv.offsetTop) - }) - }) - }) - - // -> JUMP TO NOW - - it(`has jump to now button`, () => { - cy.get('.agenda .agenda-quickaccess-jumpto > .nav-item').should('have.length', 8).first().should('include.text', 'Now').click() - cy.get('.agenda .agenda-table-redhand').isInViewport() - }) - - // -> HIDE RED LINE - // TODO: dialog fails to render for unknown reason (but clicking manually on the window triggers the render) - // Seems like a cypress bug... Skipping for now. - it.skip(`can toggle the live red line`, () => { - // Open settings dialog - cy.get('.meeting-nav').next('button').click() - cy.get('.agenda-settings').should('exist').and('be.visible') - // Toggle red line switch - cy.get('.agenda-settings-content > .n-divider').eq(1).should('contain', 'Display') - .nextAll('div.d-flex').eq(5).find('div[role=switch]').as('switch-redline').click() - // Check red line disappeared - cy.get('.agenda .agenda-table-redhand').should('not.exist') - // Re-enable it - cy.get('@switch-redline').click() - // Check red line is visible again - cy.get('.agenda .agenda-table-redhand').should('be.visible') - // Close dialog - cy.get('.agenda-settings .agenda-settings-actions > button').last().click() - cy.get('.agenda-settings').should('not.exist') - }) -}) - -// ==================================================================== -// AGENDA-NEUE (past meeting) | SMALL DESKTOP/TABLET/MOBILE viewport -// ==================================================================== - -describe('meeting -> agenda-neue [past, small screens]', () => { - // Generate meeting data - const meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'past' }) - - for (const vp of ['smallDesktop', 'tablet', 'mobile']) { - describe(vp, { - viewportWidth: viewports[vp][0], - viewportHeight: viewports[vp][1] - }, () => { - before(() => { - // Set clock to 2022-02-01 (month is 0-indexed) - cy.clock(new Date(2022, 1, 1)) - - // Intercept Meeting Data API - cy.intercept('GET', `/api/meeting/${meetingData.meeting.number}/agenda-data`, { body: meetingData }).as('getMeetingData') - - // Visit agenda page - cy.visit(`/meeting/${meetingData.meeting.number}/agenda-neue`, { - onBeforeLoad: (win) => { injectMeetingData(win, meetingData.meeting.number) } - }) - cy.wait('@getMeetingData') - - // Fix scroll behavior - // See https://github.com/cypress-io/cypress/issues/3200 - cy.document().then(document => { - const htmlElement = document.querySelector('html') - if (htmlElement) { - htmlElement.style.scrollBehavior = 'inherit' - } - }) - }) - - // -> NARROW QUICK ACCESS PANEL (smallDesktop only) - - if (vp === 'smallDesktop') { - it('has narrow quick access panel', () => { - // Alternate labels for buttons - cy.get('#agenda-quickaccess-filterbyareagroups-btn').should('be.visible').and('include.text', 'Filter...') - .next('button').should('be.visible').and('include.text', 'Pick...') - cy.get('#agenda-quickaccess-calview-btn').should('be.visible').and('include.text', 'Cal View') - .next('button').should('be.visible').and('include.text', '.ics') - // -> Shorter date labels for Jump to buttons - cy.get('.agenda .agenda-quickaccess-jumpto > .nav-item').should('have.length', 7).as('dayjumpbuttons') - .each((el, idx) => { - const localDateTime = DateTime.fromISO(meetingData.meeting.startDate).setZone('local').plus({ days: idx }).toFormat('ccc LLL d') - cy.wrap(el).should('contain', localDateTime).find('i.bi').should('not.be.visible') - }) - - // Take a snapshot for visual diffing - cy.percySnapshot(`meeting -> agenda-neue [past, ${vp}]`, { widths: [viewports[vp][0]] }) - }) - } - - // -> TABLET + MOBILE-specific tests - - if (vp === 'tablet' || vp === 'mobile') { - - // Check for elements that should not exist on smaller screens - - it('has no updated date', () => { - cy.get('.agenda > h4 > h6').should('not.be.visible') - - // Take a snapshot for visual diffing - cy.percySnapshot(`meeting -> agenda-neue [past, ${vp}]`, { widths: [viewports[vp][0]] }) - }) - - it('has no timezone dropdown selector', () => { - cy.get('.agenda .agenda-tz-selector').next('.agenda-timezone-ddn').should('not.exist') - }) - - it('has no floor + group indicators', () => { - cy.get('.agenda .agenda-table-cell-room > .badge').should('not.be.visible') - cy.get('.agenda .agenda-table-cell-group > .badge').should('not.exist') - }) - - // Session buttons should be hidden in a dropdown menu - - it('has session buttons dropdown', () => { - cy.get('.agenda .agenda-table-display-event .agenda-table-cell-links-buttons').each(el => { - cy.wrap(el).children().should('have.length', 1) - }) - - // TODO: Check for dropdown links once changed to a custom panel with standard links - }) - - // Bottom Mobile Bar - - it('has no lateral quick access panel', () => { - cy.get('.agenda-quickaccess').should('not.exist') - }) - - it('has a bottom mobile bar', () => { - cy.get('.agenda-mobile-bar').should('be.visible') - .children().should('have.length', 4) - .first().should('include.text', 'Filters') - .next().should('include.text', 'Cal') - .next().should('include.text', '.ics') - .next().children().should('have.length', 1).and('have.class', 'bi') - }) - - it('can open the filters overlay', () => { - cy.get('.agenda-mobile-bar > button').first().click() - cy.get('.agenda-personalize').should('be.visible') - cy.get('.agenda-personalize .agenda-personalize-actions > button').eq(1).click() - cy.get('.agenda-personalize').should('not.exist') - }) - - it('can open the calendar view', () => { - cy.get('.agenda-mobile-bar > button').eq(1).click() - cy.get('.agenda-calendar').should('be.visible') - cy.get('.agenda-calendar .agenda-calendar-actions > button').eq(1).click() - cy.get('.agenda-calendar').should('not.exist') - }) - - it('can open the ics dropdown', () => { - cy.get('.agenda-mobile-bar > button').eq(2).click() - cy.get('.n-dropdown-menu > .n-dropdown-option').should('have.length', 2) - .first().should('include.text', 'Subscribe') - .next().should('include.text', 'Download') - }) - - it('can open the settings overlay', () => { - cy.get('.agenda-mobile-bar > button').last().click() - cy.get('.agenda-settings').should('be.visible') - cy.get('.agenda-settings .agenda-settings-actions > button').eq(1).click() - cy.get('.agenda-settings').should('not.exist') - }) - } - }) - } -}) - -// ==================================================================== -// FLOOR-PLAN-NEUE | All Viewports -// ==================================================================== - -describe(`meeting -> floor-plan-neue`, () => { - for (const vp of ['desktop', 'smallDesktop', 'tablet', 'mobile']) { - describe(vp, { - viewportWidth: viewports[vp][0], - viewportHeight: viewports[vp][1] - }, () => { - const meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'past', skipSchedule: true }) - - before(() => { - cy.intercept('GET', `/api/meeting/${meetingData.meeting.number}/agenda-data`, { body: meetingData }).as('getMeetingData') - cy.visit(`/meeting/${meetingData.meeting.number}/floor-plan-neue`, { - onBeforeLoad: (win) => { injectMeetingData(win, meetingData.meeting.number) } - }) - cy.wait('@getMeetingData') - }) - - // -> HEADER - - it(`has IETF ${meetingData.meeting.number} title`, () => { - cy.get('.floorplan h1').first().contains(`IETF ${meetingData.meeting.number} Floor Plan`) - - // Take a snapshot for visual diffing - cy.percySnapshot(`meeting -> floor-plan-neue [${vp}]`, { widths: [viewports[vp][0]] }) - }) - it(`has meeting city subtitle`, () => { - cy.get('.floorplan h4').first().contains(meetingData.meeting.city) - }) - it(`has meeting date subtitle`, () => { - cy.get('.floorplan h4').first().contains(/[a-zA-Z] [0-9]{1,2} - ([a-zA-Z]+ )?[0-9]{1,2}, [0-9]{4}/i) - }) - - // -> NAV - - it(`has the correct navigation items`, () => { - cy.get('.floorplan .meeting-nav > li').should('have.length', 3) - cy.get('.floorplan .meeting-nav > li').first().contains('Agenda') - cy.get('.floorplan .meeting-nav > li').eq(1).contains('Floor plan') - cy.get('.floorplan .meeting-nav > li').last().contains('Plaintext') - }) - - // -> FLOORS - - it(`can switch between floors`, () => { - cy.get('.floorplan .floorplan-floors > .nav-link').should('have.length', meetingData.floors.length) - cy.get('.floorplan .floorplan-floors > .nav-link').each((el, idx) => { - cy.wrap(el).contains(meetingData.floors[idx].name) - cy.wrap(el).click() - cy.wrap(el).should('have.class', 'active') - cy.wrap(el).siblings().should('not.have.class', 'active') - // Wait for image to load + verify - cy.get('.floorplan .floorplan-plan > img').should('be.visible').and(img => expect(img[0].naturalWidth).to.be.greaterThan(1)) - }) - }) - - // -> ROOMS - - it(`can select rooms`, { retries: 2 }, () => { - const floor = meetingData.floors[0] - cy.get('.floorplan .floorplan-floors > .nav-link').first().click() - cy.get('.floorplan .floorplan-rooms > .list-group-item').should('have.length', floor.rooms.length) - cy.get('.floorplan .floorplan-rooms > .list-group-item').each((el, idx) => { - // Room List - const room = floor.rooms[idx] - cy.wrap(el).find('strong').contains(room.name) - .next('small').contains(room.functionalName) - cy.wrap(el).find('.badge').should('exist').and('include.text', floor.short) - cy.wrap(el).click() - cy.wrap(el).should('have.class', 'active') - cy.wrap(el).siblings().should('not.have.class', 'active') - // URL query segment - cy.location('search').should('include', `room=${room.slug}`) - // Pin Drop - cy.window().then(win => { - cy.get('.floorplan .floorplan-plan > img').then(floorImg => { - const planxRatio = floorImg[0].width / floor.width - const planyRatio = floorImg[0].height / floor.height - cy.get('.floorplan .floorplan-plan-pin').should('exist').then(el => { - const pinMarginLeft = parseInt(win.getComputedStyle(el[0]).getPropertyValue('margin-left').match(/\d+/)) - const xPos = Math.round((room.left + (room.right - room.left) / 2) * planxRatio) - 25 + pinMarginLeft - const yPos = Math.round((room.top + (room.bottom - room.top) / 2) * planyRatio) - 40 - expect(el[0].offsetLeft).to.equal(xPos) - expect(el[0].offsetTop).to.equal(yPos) - }) - }) - }) - }) - }) - }) - } -}) diff --git a/cypress/fixtures/agenda-113-data.json b/cypress/fixtures/agenda-113-data.json deleted file mode 100644 index f8517d931..000000000 --- a/cypress/fixtures/agenda-113-data.json +++ /dev/null @@ -1,10281 +0,0 @@ -{ - "meeting": { - "number": "113", - "city": "Vienna", - "startDate": "2022-03-19", - "endDate": "2022-03-25", - "updated": "2022-03-23T07:52:27-07:00", - "timezone": "Europe/Vienna", - "infoNote": "Times on the text agenda are shown in Vienna local time, UTC +1.
\r\nPlease see our Meeting FAQ for information about hybrid meetings, COVID-19 preparations and more.
\r\nTo see information on public side meetings, visit the meeting wiki.
\r\nFor our social/hallway space, please visit Gather. Password: notewell
\r\nFor Meetecho resources and tutorials, visit Preparing for IETF 113.", - "warningNote": "" - }, - "categories": [ - [ - { - "label": "ART", - "keyword": "art", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "avtcore", - "keyword": "avtcore", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "calext", - "keyword": "calext", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "cdni", - "keyword": "cdni", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "core", - "keyword": "core", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "dispatch", - "keyword": "dispatch", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "emailcore", - "keyword": "emailcore", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "httpapi", - "keyword": "httpapi", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "jmap", - "keyword": "jmap", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "mediaman", - "keyword": "mediaman", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "moq", - "keyword": "moq", - "toggled_by": [ - "bof", - "art" - ], - "is_bof": true - }, - { - "label": "regext", - "keyword": "regext", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "scim", - "keyword": "scim", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "sedate", - "keyword": "sedate", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "webtrans", - "keyword": "webtrans", - "toggled_by": [ - "art" - ], - "is_bof": false - }, - { - "label": "wish", - "keyword": "wish", - "toggled_by": [ - "art" - ], - "is_bof": false - } - ] - }, - { - "label": "GEN", - "keyword": "gen", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "gendispatch", - "keyword": "gendispatch", - "toggled_by": [ - "gen" - ], - "is_bof": false - }, - { - "label": "shmoo", - "keyword": "shmoo", - "toggled_by": [ - "gen" - ], - "is_bof": false - } - ] - }, - { - "label": "INT", - "keyword": "int", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "6lo", - "keyword": "6lo", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "6man", - "keyword": "6man", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "add", - "keyword": "add", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "dmm", - "keyword": "dmm", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "dprive", - "keyword": "dprive", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "drip", - "keyword": "drip", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "intarea", - "keyword": "intarea", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "lpwan", - "keyword": "lpwan", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "madinas", - "keyword": "madinas", - "toggled_by": [ - "int" - ], - "is_bof": false - }, - { - "label": "savnet", - "keyword": "savnet", - "toggled_by": [ - "bof", - "int" - ], - "is_bof": true - } - ] - }, - { - "label": "OPS", - "keyword": "ops", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "anima", - "keyword": "anima", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "bmwg", - "keyword": "bmwg", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "dnsop", - "keyword": "dnsop", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "grow", - "keyword": "grow", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "iotops", - "keyword": "iotops", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "mboned", - "keyword": "mboned", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "mops", - "keyword": "mops", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "netconf", - "keyword": "netconf", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "netmod", - "keyword": "netmod", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "opsawg", - "keyword": "opsawg", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "sidrops", - "keyword": "sidrops", - "toggled_by": [ - "ops" - ], - "is_bof": false - }, - { - "label": "v6ops", - "keyword": "v6ops", - "toggled_by": [ - "ops" - ], - "is_bof": false - } - ] - }, - { - "label": "RTG", - "keyword": "rtg", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "bess", - "keyword": "bess", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "bier", - "keyword": "bier", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "can", - "keyword": "can", - "toggled_by": [ - "bof", - "rtg" - ], - "is_bof": true - }, - { - "label": "ccamp", - "keyword": "ccamp", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "detnet", - "keyword": "detnet", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "idr", - "keyword": "idr", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "lisp", - "keyword": "lisp", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "lsr", - "keyword": "lsr", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "lsvr", - "keyword": "lsvr", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "manet", - "keyword": "manet", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "mpls", - "keyword": "mpls", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "pals", - "keyword": "pals", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "pce", - "keyword": "pce", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "pim", - "keyword": "pim", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "raw", - "keyword": "raw", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "rift", - "keyword": "rift", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "roll", - "keyword": "roll", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "rtgarea", - "keyword": "rtgarea", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "rtgwg", - "keyword": "rtgwg", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "spring", - "keyword": "spring", - "toggled_by": [ - "rtg" - ], - "is_bof": false - }, - { - "label": "teas", - "keyword": "teas", - "toggled_by": [ - "rtg" - ], - "is_bof": false - } - ] - }, - { - "label": "SEC", - "keyword": "sec", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "ace", - "keyword": "ace", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "acme", - "keyword": "acme", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "cose", - "keyword": "cose", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "dance", - "keyword": "dance", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "emu", - "keyword": "emu", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "gnap", - "keyword": "gnap", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "i2nsf", - "keyword": "i2nsf", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "ipsecme", - "keyword": "ipsecme", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "lake", - "keyword": "lake", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "lamps", - "keyword": "lamps", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "mls", - "keyword": "mls", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "oauth", - "keyword": "oauth", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "ohai", - "keyword": "ohai", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "openpgp", - "keyword": "openpgp", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "ppm", - "keyword": "ppm", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "privacypass", - "keyword": "privacypass", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "rats", - "keyword": "rats", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "saag", - "keyword": "saag", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "secdispatch", - "keyword": "secdispatch", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "suit", - "keyword": "suit", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "teep", - "keyword": "teep", - "toggled_by": [ - "sec" - ], - "is_bof": false - }, - { - "label": "tls", - "keyword": "tls", - "toggled_by": [ - "sec" - ], - "is_bof": false - } - ] - }, - { - "label": "TSV", - "keyword": "tsv", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "alto", - "keyword": "alto", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "dtn", - "keyword": "dtn", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "ippm", - "keyword": "ippm", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "masque", - "keyword": "masque", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "quic", - "keyword": "quic", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "taps", - "keyword": "taps", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "tcpm", - "keyword": "tcpm", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "tsvarea", - "keyword": "tsvarea", - "toggled_by": [ - "tsv" - ], - "is_bof": false - }, - { - "label": "tsvwg", - "keyword": "tsvwg", - "toggled_by": [ - "tsv" - ], - "is_bof": false - } - ] - } - ], - [ - { - "label": "IAB", - "keyword": "iab", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "iabopen", - "keyword": "iabopen", - "toggled_by": [ - "iab" - ], - "is_bof": false - } - ] - }, - { - "label": "IRTF", - "keyword": "irtf", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "cfrg", - "keyword": "cfrg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "coinrg", - "keyword": "coinrg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "gaia", - "keyword": "gaia", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "hrpc", - "keyword": "hrpc", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "icnrg", - "keyword": "icnrg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "irtfopen", - "keyword": "irtfopen", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "maprg", - "keyword": "maprg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "nmrg", - "keyword": "nmrg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "panrg", - "keyword": "panrg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "pearg", - "keyword": "pearg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - }, - { - "label": "qirg", - "keyword": "qirg", - "toggled_by": [ - "irtf" - ], - "is_bof": false - } - ] - } - ], - [ - { - "label": "Administrative", - "keyword": "admin", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "IETF Registration", - "keyword": "ietf-registration", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "INT AD Office Hours", - "keyword": "int-ad-office-hours", - "toggled_by": [ - "admin", - "iesg" - ], - "is_bof": false - }, - { - "label": "RTG AD Office Hours", - "keyword": "rtg-ad-office-hours", - "toggled_by": [ - "admin", - "iesg" - ], - "is_bof": false - }, - { - "label": "TSV AD Office Hours", - "keyword": "tsv-ad-office-hours", - "toggled_by": [ - "admin", - "iesg" - ], - "is_bof": false - }, - { - "label": "Gather Newcomers' Quick Connections (Note that pre-registration is required)", - "keyword": "gather-newcomers-quick-connections-note-that-pre-registration-is-required", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "Onsite Newcomers' Quick Connections (Note that pre-registration is required)", - "keyword": "onsite-newcomers-quick-connections-note-that-pre-registration-is-required", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "RPC Office Hours", - "keyword": "rpc-office-hours", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "ISE Office Hours", - "keyword": "ise-office-hours", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "SEC AD Office Hours", - "keyword": "sec-ad-office-hours", - "toggled_by": [ - "admin", - "iesg" - ], - "is_bof": false - }, - { - "label": "ART AD Office Hours", - "keyword": "art-ad-office-hours", - "toggled_by": [ - "admin", - "iesg" - ], - "is_bof": false - }, - { - "label": "IANA Office Hours", - "keyword": "iana-office-hours", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - }, - { - "label": "Newcomers' Feedback Session", - "keyword": "newcomers-feedback-session", - "toggled_by": [ - "admin", - "secretariat" - ], - "is_bof": false - } - ] - }, - { - "label": "Coding", - "keyword": "coding", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "Hackathon", - "keyword": "hackathon", - "toggled_by": [ - "coding", - "hackathon" - ], - "is_bof": false - }, - { - "label": "Code Sprint", - "keyword": "code-sprint", - "toggled_by": [ - "coding", - "tools" - ], - "is_bof": false - }, - { - "label": "Hackdemo Happy Hour", - "keyword": "hackdemo-happy-hour", - "toggled_by": [ - "coding", - "hackathon" - ], - "is_bof": false - } - ] - }, - { - "label": "Plenary", - "keyword": "plenary", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "IETF Plenary", - "keyword": "ietf-plenary", - "toggled_by": [ - "plenary", - "ietf" - ], - "is_bof": false - } - ] - }, - { - "label": "Presentation", - "keyword": "presentation", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "Hackathon Kickoff", - "keyword": "hackathon-kickoff", - "toggled_by": [ - "presentation", - "hackathon" - ], - "is_bof": false - }, - { - "label": "Hackathon Results Presentations", - "keyword": "hackathon-results-presentations", - "toggled_by": [ - "presentation", - "hackathon" - ], - "is_bof": false - }, - { - "label": "", - "keyword": null, - "toggled_by": [ - "presentation", - "iepg" - ], - "is_bof": false - }, - { - "label": "Hot RFC Lightning Talks", - "keyword": "hot-rfc-lightning-talks", - "toggled_by": [ - "presentation", - "hotrfc" - ], - "is_bof": false - }, - { - "label": "Host Speaker Series: IPv6 Adoption Worldwide: Momentum, Challenges and Next Steps", - "keyword": "host-speaker-series-ipv6-adoption-worldwide-momentum-challenges-and-next-steps", - "toggled_by": [ - "presentation", - "ietf" - ], - "is_bof": false - } - ] - }, - { - "label": "Social", - "keyword": "social", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "Welcome Reception", - "keyword": "welcome-reception", - "toggled_by": [ - "social", - "ietf" - ], - "is_bof": false - }, - { - "label": "Break", - "keyword": "break", - "toggled_by": [ - "social", - "secretariat" - ], - "is_bof": false - }, - { - "label": "Beverage and Snack Break", - "keyword": "beverage-and-snack-break", - "toggled_by": [ - "social", - "secretariat" - ], - "is_bof": false - }, - { - "label": "Newcomers' Dinner (Open to newcomers. Note that pre-registration is required and a $25USD fee will be charged.)", - "keyword": "newcomers-dinner-open-to-newcomers-note-that-pre-registration-is-required-and-a-25usd-fee-will-be-charged", - "toggled_by": [ - "social", - "secretariat" - ], - "is_bof": false - }, - { - "label": "Systers Networking Event", - "keyword": "systers-networking-event", - "toggled_by": [ - "social", - "systers" - ], - "is_bof": false - }, - { - "label": "Newcomers' Coffee Break (in Gather)", - "keyword": "newcomers-coffee-break-in-gather", - "toggled_by": [ - "social", - "emodir" - ], - "is_bof": false - }, - { - "label": "WG Chairs Lunch (For WG Chairs Only)", - "keyword": "wg-chairs-lunch-for-wg-chairs-only", - "toggled_by": [ - "social", - "emodir" - ], - "is_bof": false - }, - { - "label": "Beverage Break", - "keyword": "beverage-break", - "toggled_by": [ - "social", - "secretariat" - ], - "is_bof": false - } - ] - }, - { - "label": "Tutorial", - "keyword": "tutorial", - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "Tutorial: Newcomers' Overview", - "keyword": "tutorial-newcomers-overview", - "toggled_by": [ - "tutorial", - "emodir" - ], - "is_bof": false - } - ] - }, - { - "label": null, - "keyword": null, - "toggled_by": [], - "is_bof": false, - "children": [ - { - "label": "BoF", - "keyword": "bof", - "toggled_by": [], - "is_bof": false - }, - { - "label": "emodir", - "keyword": "emodir", - "toggled_by": [ - "gen" - ], - "is_bof": false - }, - { - "label": "Hackathon", - "keyword": "hackathon", - "toggled_by": [ - "gen" - ], - "is_bof": false - }, - { - "label": "hotrfc", - "keyword": "hotrfc", - "toggled_by": [ - "ietf" - ], - "is_bof": false - }, - { - "label": "IEPG", - "keyword": "iepg", - "toggled_by": [], - "is_bof": false - }, - { - "label": "Systers", - "keyword": "systers", - "toggled_by": [ - "gen" - ], - "is_bof": false - }, - { - "label": "Tools", - "keyword": "tools", - "toggled_by": [ - "gen" - ], - "is_bof": false - } - ] - } - ] - ], - "isCurrentMeeting": false, - "useHedgeDoc": true, - "schedule": [ - { - "id": 104180, - "sessionId": 29440, - "room": "Grand Klimt Hall 1/2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "hackathon", - "duration": 41400, - "name": "Hackathon", - "startDateTime": "2022-03-19T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "coding", - "hackathon", - "hackathon-sessc" - ], - "groupAcronym": "hackathon", - "groupName": "Hackathon", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hackathon-sessc-02" - }, - "orderInMeeting": 1, - "short": "Hackathon", - "sessionToken": "sessc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive": "https://www.ietf.org/jabber/logs/hackathon?C=M;O=D", - "recordings": [ - { - "id": 107273, - "name": "recording-113-hackathon-1", - "title": "Video recording for HACKATHON on 2022-03-19 at 09:30:00", - "url": "https://www.youtube.com/watch?v=TcSwaaeAdpc" - } - ], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29440.ics" - } - }, - { - "id": 104178, - "sessionId": 29439, - "room": "Park Suite 7", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "tools", - "duration": 21600, - "name": "Code Sprint", - "startDateTime": "2022-03-19T10:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "code-sprint", - "coding", - "tools" - ], - "groupAcronym": "tools", - "groupName": "The Tools Team", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "https://ietf.zoom.us/j/82964431863?pwd=V2RGU0NrYmpQMUczcWlESU1TUVpRZz09", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "Code Sprint", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tools", - "chatArchive": "https://www.ietf.org/jabber/logs/tools?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29439.ics" - } - }, - { - "id": 104179, - "sessionId": 29272, - "room": "Grand Klimt Hall 1/2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "hackathon", - "duration": 1800, - "name": "Hackathon Kickoff", - "startDateTime": "2022-03-19T10:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "hackathon", - "hackathon-kickoff", - "hackathon-sessa", - "presentation" - ], - "groupAcronym": "hackathon", - "groupName": "Hackathon", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "https://meetings.conf.meetecho.com/ietf113/?group=hackathon", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hackathon-sessa-00" - }, - "orderInMeeting": 2, - "short": "Hackathon Kickoff", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive": "https://www.ietf.org/jabber/logs/hackathon?C=M;O=D", - "recordings": [ - { - "id": 107279, - "name": "recording-113-hackathon-2", - "title": "Video recording for HACKATHON on 2022-03-19 at 10:30:00", - "url": "https://www.youtube.com/watch?v=KEe_oML3FMk" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf113/?group=hackathon", - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29272.ics" - } - }, - { - "id": 104181, - "sessionId": 29441, - "room": "Grand Klimt Hall 1/2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "hackathon", - "duration": 23400, - "name": "Hackathon", - "startDateTime": "2022-03-20T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "coding", - "hackathon", - "hackathon-sessd" - ], - "groupAcronym": "hackathon", - "groupName": "Hackathon", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hackathon-sessd-00" - }, - "orderInMeeting": 3, - "short": "Hackathon", - "sessionToken": "sessd", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive": "https://www.ietf.org/jabber/logs/hackathon?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29441.ics" - } - }, - { - "id": 104172, - "sessionId": 29443, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 28800, - "name": "IETF Registration", - "startDateTime": "2022-03-20T10:00:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessa" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "IETF Registration", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29443.ics" - } - }, - { - "id": 104523, - "sessionId": 29469, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "emodir", - "duration": 3600, - "name": "Tutorial: Newcomers", - "startDateTime": "2022-03-20T12:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "emodir", - "emodir-sessb", - "tutorial", - "tutorial-newcomers-overview" - ], - "groupAcronym": "emodir", - "groupName": "Education, Mentoring and Outreach Directorate", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "https://meetings.conf.meetecho.com/ietf113/?group=emodir", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-emodir-sessb-00" - }, - "orderInMeeting": 1, - "short": "Tutorial: Newcomers' Overview", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive": "https://www.ietf.org/jabber/logs/emodir?C=M;O=D", - "recordings": [ - { - "id": 107274, - "name": "recording-113-emodir-1", - "title": "Video recording for EMODIR on 2022-03-20 at 12:30:00", - "url": "https://www.youtube.com/watch?v=kHcK2D05MnU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf113/?group=emodir", - "audioStream": null, - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite113/?group=emodir", - "calendar": "/meeting/113/session/29469.ics" - } - }, - { - "id": 104768, - "sessionId": 29495, - "room": "Green Room 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "iesg", - "duration": 3600, - "name": "INT AD Office Hours", - "startDateTime": "2022-03-20T13:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iesg", - "iesg-sesse", - "int-ad-office-hours" - ], - "groupAcronym": "iesg", - "groupName": "Internet Engineering Steering Group", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "https://cisco.webex.com/cisco/j.php?MTID=mdd8ae7aaea1245e77276eccfb7abc275", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 3, - "short": "INT AD Office Hours", - "sessionToken": "sesse", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive": "https://www.ietf.org/jabber/logs/iesg?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29495.ics" - } - }, - { - "id": 104541, - "sessionId": 29485, - "room": "Park Suite 1", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iesg", - "duration": 3600, - "name": "RTG AD Office Hours", - "startDateTime": "2022-03-20T13:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iesg", - "iesg-sessb", - "rtg-ad-office-hours" - ], - "groupAcronym": "iesg", - "groupName": "Internet Engineering Steering Group", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "https://ietf.webex.com/meet/pr1424879951771", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 2, - "short": "RTG AD Office Hours", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive": "https://www.ietf.org/jabber/logs/iesg?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29485.ics" - } - }, - { - "id": 104537, - "sessionId": 29481, - "room": "Park Suite 6", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iesg", - "duration": 3600, - "name": "TSV AD Office Hours", - "startDateTime": "2022-03-20T13:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iesg", - "iesg-sessa", - "tsv-ad-office-hours" - ], - "groupAcronym": "iesg", - "groupName": "Internet Engineering Steering Group", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "https://ietf.webex.com/ietf/j.php?MTID=m6cb0f6dbb61114a0d962cf5ef05ab3d0", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "TSV AD Office Hours", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive": "https://www.ietf.org/jabber/logs/iesg?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29481.ics" - } - }, - { - "id": 104182, - "sessionId": 29273, - "room": "Grand Klimt Hall 1/2", - "location": {}, - "acronym": "hackathon", - "duration": 7200, - "name": "Hackathon Results Presentations", - "startDateTime": "2022-03-20T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "hackathon", - "hackathon-results-presentations", - "hackathon-sessb", - "presentation" - ], - "groupAcronym": "hackathon", - "groupName": "Hackathon", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "https://meetings.conf.meetecho.com/ietf113/?group=hackathon&item=2", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hackathon-sessb-00" - }, - "orderInMeeting": 4, - "short": "Hackathon Results Presentations", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive": "https://www.ietf.org/jabber/logs/hackathon?C=M;O=D", - "recordings": [], - "videoStream": "https://meetings.conf.meetecho.com/ietf113/?group=hackathon_2", - "audioStream": null, - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite113/?group=hackathon_2", - "calendar": "/meeting/113/session/29273.ics" - } - }, - { - "id": 104773, - "sessionId": 29500, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 3600, - "name": "Gather Newcomers' Quick Connections (Note that pre-registration is required)", - "startDateTime": "2022-03-20T16:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "gather-newcomers-quick-connections-note-that-pre-registration-is-required", - "secretariat", - "secretariat-sessbh" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 2, - "short": "Gather Newcomers' Quick Connections (Note that pre-registration is required)", - "sessionToken": "sessbh", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29500.ics" - } - }, - { - "id": 104524, - "sessionId": 29468, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 3600, - "name": "Newcomers' Quick Connections", - "startDateTime": "2022-03-20T16:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "onsite-newcomers-quick-connections-note-that-pre-registration-is-required", - "secretariat", - "secretariat-sesss" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "Onsite Newcomers' Quick Connections (Note that pre-registration is required)", - "sessionToken": "sesss", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29468.ics" - } - }, - { - "id": 104187, - "sessionId": 29461, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "ietf", - "duration": 7200, - "name": "Welcome Reception", - "startDateTime": "2022-03-20T17:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "ietf", - "ietf-sessb", - "social", - "welcome-reception" - ], - "groupAcronym": "ietf", - "groupName": "IETF", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "Welcome Reception", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ietf", - "chatArchive": "https://www.ietf.org/jabber/logs/ietf?C=M;O=D", - "recordings": [ - { - "id": 107626, - "name": "recording-113-ietf-2", - "title": "Video recording for IETF on 2022-03-20 at 17:00:00", - "url": "https://www.youtube.com/watch?v=V0-aTFE8YNw" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29461.ics" - } - }, - { - "id": 104538, - "sessionId": 29482, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iepg", - "duration": 7200, - "name": "IEPG Meeting", - "startDateTime": "2022-03-20T18:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "iepg", - "presentation" - ], - "groupAcronym": "iepg", - "groupName": "IEPG", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://meetings.conf.meetecho.com/ietf113/?group=iepg", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "iepg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iepg", - "chatArchive": "https://www.ietf.org/jabber/logs/iepg?C=M;O=D", - "recordings": [ - { - "id": 107275, - "name": "recording-113-iepg-1", - "title": "Video recording for IEPG on 2022-03-20 at 18:00:00", - "url": "https://www.youtube.com/watch?v=u2wVZnJ3fo0" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf113/?group=iepg", - "audioStream": null, - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite113/?group=iepg", - "calendar": "/meeting/113/session/29482.ics" - } - }, - { - "id": 104766, - "sessionId": 29493, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "hotrfc", - "duration": 3600, - "name": "Hot RFC Lightning Talks", - "startDateTime": "2022-03-20T19:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "hot-rfc-lightning-talks", - "hotrfc", - "presentation" - ], - "groupAcronym": "hotrfc", - "groupName": "Hot RFC Lightning Talks", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hotrfc-sessa-09" - }, - "orderInMeeting": 1, - "short": "Hot RFC Lightning Talks", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hotrfc", - "chatArchive": "https://www.ietf.org/jabber/logs/hotrfc?C=M;O=D", - "recordings": [ - { - "id": 107272, - "name": "recording-113-hotrfc-1", - "title": "Video recording for HOTRFC on 2022-03-20 at 19:00:00", - "url": "https://www.youtube.com/watch?v=rt-2H_AAucc" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29493.ics" - } - }, - { - "id": 104173, - "sessionId": 29444, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 28800, - "name": "IETF Registration", - "startDateTime": "2022-03-21T08:30:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessb" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 2, - "short": "IETF Registration", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29444.ics" - } - }, - { - "id": 104769, - "sessionId": 29499, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 27000, - "name": "RPC Office Hours", - "startDateTime": "2022-03-21T09:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "rpc-office-hours", - "secretariat", - "secretariat-sessbg" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 3, - "short": "RPC Office Hours", - "sessionToken": "sessbg", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29499.ics" - } - }, - { - "id": 104525, - "sessionId": 29470, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-21T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sesst" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 4, - "short": "ISE Office Hours", - "sessionToken": "sesst", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29470.ics" - } - }, - { - "id": 104053, - "sessionId": 29339, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "dispatch", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "dispatch", - "regular" - ], - "groupAcronym": "dispatch", - "groupName": "Dispatch", - "groupParent": { - "acronym": "art" - }, - "note": "Joint with ARTAREA", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dispatch-01" - }, - "orderInMeeting": 1, - "short": "dispatch", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dispatch", - "chatArchive": "https://www.ietf.org/jabber/logs/dispatch?C=M;O=D", - "recordings": [ - { - "id": 107450, - "name": "recording-113-dispatch-1", - "title": "Video recording for DISPATCH on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=sW-VRK1U708" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29339.ics" - } - }, - { - "id": 104054, - "sessionId": 29416, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "dmm", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "dmm", - "int", - "regular" - ], - "groupAcronym": "dmm", - "groupName": "Distributed Mobility Management", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dmm-00" - }, - "orderInMeeting": 1, - "short": "dmm", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dmm", - "chatArchive": "https://www.ietf.org/jabber/logs/dmm?C=M;O=D", - "recordings": [ - { - "id": 107452, - "name": "recording-113-dmm-1", - "title": "Video recording for DMM on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=otDY-x7--JE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29416.ics" - } - }, - { - "id": 104055, - "sessionId": 29284, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "v6ops", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ops", - "regular", - "v6ops" - ], - "groupAcronym": "v6ops", - "groupName": "IPv6 Operations", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-v6ops-02" - }, - "orderInMeeting": 1, - "short": "v6ops", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/v6ops", - "chatArchive": "https://www.ietf.org/jabber/logs/v6ops?C=M;O=D", - "recordings": [ - { - "id": 107454, - "name": "recording-113-v6ops-1", - "title": "Video recording for V6OPS on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=BRnk-C9tOPU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29284.ics" - } - }, - { - "id": 104056, - "sessionId": 29326, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "bess", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "bess", - "regular", - "rtg" - ], - "groupAcronym": "bess", - "groupName": "BGP Enabled ServiceS", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-bess-02" - }, - "orderInMeeting": 1, - "short": "bess", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/bess", - "chatArchive": "https://www.ietf.org/jabber/logs/bess?C=M;O=D", - "recordings": [ - { - "id": 107451, - "name": "recording-113-bess-1", - "title": "Video recording for BESS on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=9kERhqbJIz4" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29326.ics" - } - }, - { - "id": 104057, - "sessionId": 29389, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "raw", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "raw", - "regular", - "rtg" - ], - "groupAcronym": "raw", - "groupName": "Reliable and Available Wireless", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-raw-02" - }, - "orderInMeeting": 1, - "short": "raw", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/raw", - "chatArchive": "https://www.ietf.org/jabber/logs/raw?C=M;O=D", - "recordings": [ - { - "id": 107453, - "name": "recording-113-raw-1", - "title": "Video recording for RAW on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=lgTrZJC79ZA" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29389.ics" - } - }, - { - "id": 104154, - "sessionId": 29406, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "openpgp", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "openpgp", - "regular", - "sec" - ], - "groupAcronym": "openpgp", - "groupName": "Open Specification for Pretty Good Privacy", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-openpgp-03" - }, - "orderInMeeting": 1, - "short": "openpgp", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/openpgp", - "chatArchive": "https://www.ietf.org/jabber/logs/openpgp?C=M;O=D", - "recordings": [ - { - "id": 107448, - "name": "recording-113-openpgp-1", - "title": "Video recording for OPENPGP on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=wTYxGs5zm2M" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29406.ics" - } - }, - { - "id": 104059, - "sessionId": 29428, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "teep", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "sec", - "teep" - ], - "groupAcronym": "teep", - "groupName": "Trusted Execution Environment Provisioning", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-teep-02" - }, - "orderInMeeting": 1, - "short": "teep", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/teep", - "chatArchive": "https://www.ietf.org/jabber/logs/teep?C=M;O=D", - "recordings": [ - { - "id": 107455, - "name": "recording-113-teep-1", - "title": "Video recording for TEEP on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=rl-8imBGNV8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29428.ics" - } - }, - { - "id": 104122, - "sessionId": 29330, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ippm", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-21T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ippm", - "regular", - "tsv" - ], - "groupAcronym": "ippm", - "groupName": "IP Performance Measurement", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ippm-03" - }, - "orderInMeeting": 1, - "short": "ippm", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ippm", - "chatArchive": "https://www.ietf.org/jabber/logs/ippm?C=M;O=D", - "recordings": [ - { - "id": 107449, - "name": "recording-113-ippm-1", - "title": "Video recording for IPPM on 2022-03-21 at 10:00:00", - "url": "https://www.youtube.com/watch?v=rMw0QwnS16k" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29330.ics" - } - }, - { - "id": 104163, - "sessionId": 29449, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 3600, - "name": "Lunch Break", - "startDateTime": "2022-03-21T12:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "break", - "secretariat", - "secretariat-sessg", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "Break", - "sessionToken": "sessg", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29449.ics" - } - }, - { - "id": 104061, - "sessionId": 29300, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "sedate", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "regular", - "sedate" - ], - "groupAcronym": "sedate", - "groupName": "Serialising Extended Data About Times and Events", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-sedate-00" - }, - "orderInMeeting": 1, - "short": "sedate", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/sedate", - "chatArchive": "https://www.ietf.org/jabber/logs/sedate?C=M;O=D", - "recordings": [ - { - "id": 107278, - "name": "recording-113-sedate-1", - "title": "Video recording for SEDATE on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=msDNoiA8vAo" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29300.ics" - } - }, - { - "id": 104062, - "sessionId": 29359, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "wish", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "regular", - "wish" - ], - "groupAcronym": "wish", - "groupName": "WebRTC Ingest Signaling over HTTPS", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-wish-00" - }, - "orderInMeeting": 1, - "short": "wish", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/wish", - "chatArchive": "https://www.ietf.org/jabber/logs/wish?C=M;O=D", - "recordings": [ - { - "id": 107281, - "name": "recording-113-wish-1", - "title": "Video recording for WISH on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=vBIlf0L1RTM" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29359.ics" - } - }, - { - "id": 104063, - "sessionId": 29423, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "pearg", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "pearg", - "regular" - ], - "groupAcronym": "pearg", - "groupName": "Privacy Enhancements and Assessments Research Group", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-pearg-02" - }, - "orderInMeeting": 1, - "short": "pearg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/pearg", - "chatArchive": "https://www.ietf.org/jabber/logs/pearg?C=M;O=D", - "recordings": [ - { - "id": 107282, - "name": "recording-113-pearg-1", - "title": "Video recording for PEARG on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=eWPeHsMz8Uo" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29423.ics" - } - }, - { - "id": 104064, - "sessionId": 29424, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "manet", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "manet", - "regular", - "rtg" - ], - "groupAcronym": "manet", - "groupName": "Mobile Ad-hoc Networks", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-manet-00" - }, - "orderInMeeting": 1, - "short": "manet", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/manet", - "chatArchive": "https://www.ietf.org/jabber/logs/manet?C=M;O=D", - "recordings": [ - { - "id": 107280, - "name": "recording-113-manet-1", - "title": "Video recording for MANET on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=wNtJ170kfis" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29424.ics" - } - }, - { - "id": 104065, - "sessionId": 29280, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "pce", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "pce", - "pce-sessa", - "regular", - "rtg" - ], - "groupAcronym": "pce", - "groupName": "Path Computation Element", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-pce-08" - }, - "orderInMeeting": 1, - "short": "pce", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/pce", - "chatArchive": "https://www.ietf.org/jabber/logs/pce?C=M;O=D", - "recordings": [ - { - "id": 107271, - "name": "recording-113-pce-1", - "title": "Video recording for PCE on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=0B42q75br24" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29280.ics" - } - }, - { - "id": 104066, - "sessionId": 29279, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "acme", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "acme", - "regular", - "sec" - ], - "groupAcronym": "acme", - "groupName": "Automated Certificate Management Environment", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-acme-00" - }, - "orderInMeeting": 1, - "short": "acme", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/acme", - "chatArchive": "https://www.ietf.org/jabber/logs/acme?C=M;O=D", - "recordings": [ - { - "id": 107276, - "name": "recording-113-acme-1", - "title": "Video recording for ACME on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=g11bCfSfmIU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29279.ics" - } - }, - { - "id": 104067, - "sessionId": 29308, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "cose", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "cose", - "regular", - "sec" - ], - "groupAcronym": "cose", - "groupName": "CBOR Object Signing and Encryption", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-cose-01" - }, - "orderInMeeting": 1, - "short": "cose", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/cose", - "chatArchive": "https://www.ietf.org/jabber/logs/cose?C=M;O=D", - "recordings": [ - { - "id": 107277, - "name": "recording-113-cose-1", - "title": "Video recording for COSE on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=ySETUSkxhsg" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29308.ics" - } - }, - { - "id": 104068, - "sessionId": 29380, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "tsvwg", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-21T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "tsv", - "tsvwg", - "tsvwg-sessa" - ], - "groupAcronym": "tsvwg", - "groupName": "Transport Area Working Group", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-tsvwg-07" - }, - "orderInMeeting": 1, - "short": "tsvwg", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tsvwg", - "chatArchive": "https://www.ietf.org/jabber/logs/tsvwg?C=M;O=D", - "recordings": [ - { - "id": 107460, - "name": "recording-113-tsvwg-1", - "title": "Video recording for TSVWG on 2022-03-21 at 13:00:00", - "url": "https://www.youtube.com/watch?v=wia5eZJf7HE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29380.ics" - } - }, - { - "id": 104167, - "sessionId": 29454, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage and Snack Break", - "startDateTime": "2022-03-21T14:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessl", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 2, - "short": "Beverage and Snack Break", - "sessionToken": "sessl", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29454.ics" - } - }, - { - "id": 104526, - "sessionId": 29471, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-21T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessu" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 5, - "short": "ISE Office Hours", - "sessionToken": "sessu", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29471.ics" - } - }, - { - "id": 104070, - "sessionId": 29298, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "jmap", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "jmap", - "regular" - ], - "groupAcronym": "jmap", - "groupName": "JSON Mail Access Protocol", - "groupParent": { - "acronym": "art" - }, - "note": "Joint with EXTRA", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-jmap-00" - }, - "orderInMeeting": 1, - "short": "jmap", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/jmap", - "chatArchive": "https://www.ietf.org/jabber/logs/jmap?C=M;O=D", - "recordings": [ - { - "id": 107456, - "name": "recording-113-jmap-1", - "title": "Video recording for JMAP on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=2YfZMoSBLJA" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29298.ics" - } - }, - { - "id": 104071, - "sessionId": 29354, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "gendispatch", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "canceled", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "gen", - "gendispatch", - "regular" - ], - "groupAcronym": "gendispatch", - "groupName": "General Area Dispatch", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "gendispatch", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/gendispatch", - "chatArchive": "https://www.ietf.org/jabber/logs/gendispatch?C=M;O=D", - "recordings": [], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29354.ics" - } - }, - { - "id": 104072, - "sessionId": 29370, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "mops", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "mops", - "ops", - "regular" - ], - "groupAcronym": "mops", - "groupName": "Media OPerationS", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-mops-04" - }, - "orderInMeeting": 1, - "short": "mops", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/mops", - "chatArchive": "https://www.ietf.org/jabber/logs/mops?C=M;O=D", - "recordings": [ - { - "id": 107459, - "name": "recording-113-mops-1", - "title": "Video recording for MOPS on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=6UB6zY1q0XU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29370.ics" - } - }, - { - "id": 104073, - "sessionId": 29291, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "netconf", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "netconf", - "ops", - "regular" - ], - "groupAcronym": "netconf", - "groupName": "Network Configuration", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-netconf-03" - }, - "orderInMeeting": 1, - "short": "netconf", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/netconf", - "chatArchive": "https://www.ietf.org/jabber/logs/netconf?C=M;O=D", - "recordings": [ - { - "id": 107462, - "name": "recording-113-netconf-1", - "title": "Video recording for NETCONF on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=8Maze4HunuU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29291.ics" - } - }, - { - "id": 104074, - "sessionId": 29310, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "rtgwg", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rtg", - "rtgwg" - ], - "groupAcronym": "rtgwg", - "groupName": "Routing Area Working Group", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-rtgwg-02" - }, - "orderInMeeting": 1, - "short": "rtgwg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/rtgwg", - "chatArchive": "https://www.ietf.org/jabber/logs/rtgwg?C=M;O=D", - "recordings": [ - { - "id": 107463, - "name": "recording-113-rtgwg-1", - "title": "Video recording for RTGWG on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=BNv4Y_9nM-8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29310.ics" - } - }, - { - "id": 104075, - "sessionId": 29382, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "lake", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "lake", - "regular", - "sec" - ], - "groupAcronym": "lake", - "groupName": "Lightweight Authenticated Key Exchange", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lake-04" - }, - "orderInMeeting": 1, - "short": "lake", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lake", - "chatArchive": "https://www.ietf.org/jabber/logs/lake?C=M;O=D", - "recordings": [ - { - "id": 107461, - "name": "recording-113-lake-1", - "title": "Video recording for LAKE on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=9cZ2oJ4KDxQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29382.ics" - } - }, - { - "id": 104076, - "sessionId": 29293, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "oauth", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "oauth", - "oauth-sessb", - "regular", - "sec" - ], - "groupAcronym": "oauth", - "groupName": "Web Authorization Protocol", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-oauth-00" - }, - "orderInMeeting": 1, - "short": "oauth", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/oauth", - "chatArchive": "https://www.ietf.org/jabber/logs/oauth?C=M;O=D", - "recordings": [ - { - "id": 107457, - "name": "recording-113-oauth-1", - "title": "Video recording for OAUTH on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=2x1sAYn59UU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29293.ics" - } - }, - { - "id": 104077, - "sessionId": 29334, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "masque", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-21T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "masque", - "regular", - "tsv" - ], - "groupAcronym": "masque", - "groupName": "Multiplexed Application Substrate over QUIC Encryption", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-masque-00" - }, - "orderInMeeting": 1, - "short": "masque", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/masque", - "chatArchive": "https://www.ietf.org/jabber/logs/masque?C=M;O=D", - "recordings": [ - { - "id": 107458, - "name": "recording-113-masque-1", - "title": "Video recording for MASQUE on 2022-03-21 at 14:30:00", - "url": "https://www.youtube.com/watch?v=ZJmwp5lA45g" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29334.ics" - } - }, - { - "id": 104767, - "sessionId": 29494, - "room": "Park Suite 6", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iesg", - "duration": 3600, - "name": "SEC AD Office Hours", - "startDateTime": "2022-03-21T16:45:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iesg", - "iesg-sessd", - "sec-ad-office-hours" - ], - "groupAcronym": "iesg", - "groupName": "Internet Engineering Steering Group", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "https://ietf.webex.com/ietf/j.php?MTID=m764e32a6866d3e8c47ced2bccdbb1e24", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 4, - "short": "SEC AD Office Hours", - "sessionToken": "sessd", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive": "https://www.ietf.org/jabber/logs/iesg?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29494.ics" - } - }, - { - "id": 104183, - "sessionId": 29442, - "room": "Grand Klimt Hall 1", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "hackathon", - "duration": 5400, - "name": "Hackdemo Happy Hour", - "startDateTime": "2022-03-21T17:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "coding", - "hackathon", - "hackathon-sesse", - "hackdemo-happy-hour" - ], - "groupAcronym": "hackathon", - "groupName": "Hackathon", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 5, - "short": "Hackdemo Happy Hour", - "sessionToken": "sesse", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive": "https://www.ietf.org/jabber/logs/hackathon?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29442.ics" - } - }, - { - "id": 104184, - "sessionId": 29459, - "room": "Restaurant Lenz Overflow Room", - "location": {}, - "acronym": "secretariat", - "duration": 5400, - "name": "Newcomers Dinner", - "startDateTime": "2022-03-21T19:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "newcomers-dinner-open-to-newcomers-note-that-pre-registration-is-required-and-a-25usd-fee-will-be-charged", - "secretariat", - "secretariat-sessq", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 6, - "short": "Newcomers' Dinner (Open to newcomers. Note that pre-registration is required and a $25USD fee will be charged.)", - "sessionToken": "sessq", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29459.ics" - } - }, - { - "id": 104542, - "sessionId": 29486, - "room": "Park Suite 6", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iesg", - "duration": 3600, - "name": "ART AD Office Hours", - "startDateTime": "2022-03-22T08:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "art-ad-office-hours", - "iesg", - "iesg-sessc" - ], - "groupAcronym": "iesg", - "groupName": "Internet Engineering Steering Group", - "groupParent": { - "acronym": "ietf" - }, - "note": "", - "remoteInstructions": "https://ietf.webex.com/ietf/j.php?MTID=m1a4717da352ffafc03920849b0732dce", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 5, - "short": "ART AD Office Hours", - "sessionToken": "sessc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive": "https://www.ietf.org/jabber/logs/iesg?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29486.ics" - } - }, - { - "id": 104174, - "sessionId": 29445, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 28800, - "name": "IETF Registration", - "startDateTime": "2022-03-22T08:30:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessc" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 3, - "short": "IETF Registration", - "sessionToken": "sessc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29445.ics" - } - }, - { - "id": 104188, - "sessionId": 29462, - "room": "Restaurant Lenz Overflow Room", - "location": {}, - "acronym": "systers", - "duration": 3600, - "name": "Systers Networking Event", - "startDateTime": "2022-03-22T08:45:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "social", - "systers", - "systers-networking-event" - ], - "groupAcronym": "systers", - "groupName": "Systers", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "Systers Networking Event", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/systers", - "chatArchive": "https://www.ietf.org/jabber/logs/systers?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29462.ics" - } - }, - { - "id": 104770, - "sessionId": 29498, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 27000, - "name": "RPC Office Hours", - "startDateTime": "2022-03-22T09:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "rpc-office-hours", - "secretariat", - "secretariat-sessbf" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 7, - "short": "RPC Office Hours", - "sessionToken": "sessbf", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29498.ics" - } - }, - { - "id": 104527, - "sessionId": 29472, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-22T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessv" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 8, - "short": "ISE Office Hours", - "sessionToken": "sessv", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29472.ics" - } - }, - { - "id": 104078, - "sessionId": 29301, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "calext", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "calext", - "regular" - ], - "groupAcronym": "calext", - "groupName": "Calendaring Extensions", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-calext-01" - }, - "orderInMeeting": 1, - "short": "calext", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/calext", - "chatArchive": "https://www.ietf.org/jabber/logs/calext?C=M;O=D", - "recordings": [ - { - "id": 107468, - "name": "recording-113-calext-1", - "title": "Video recording for CALEXT on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=2s5jq8FG8F8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29301.ics" - } - }, - { - "id": 104079, - "sessionId": 29282, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "6man", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "6man", - "int", - "regular" - ], - "groupAcronym": "6man", - "groupName": "IPv6 Maintenance", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-6man-04" - }, - "orderInMeeting": 1, - "short": "6man", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/6man", - "chatArchive": "https://www.ietf.org/jabber/logs/6man?C=M;O=D", - "recordings": [ - { - "id": 107522, - "name": "recording-113-6man-1", - "title": "Video recording for 6MAN on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=PtJdmQb-ImM" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29282.ics" - } - }, - { - "id": 104080, - "sessionId": 29436, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "gaia", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "gaia", - "irtf", - "regular" - ], - "groupAcronym": "gaia", - "groupName": "Global Access to the Internet for All", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-gaia-02" - }, - "orderInMeeting": 1, - "short": "gaia", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/gaia", - "chatArchive": "https://www.ietf.org/jabber/logs/gaia?C=M;O=D", - "recordings": [ - { - "id": 107475, - "name": "recording-113-gaia-1", - "title": "Video recording for GAIA on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=2FRUlormZEA" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29436.ics" - } - }, - { - "id": 104081, - "sessionId": 29286, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "dnsop", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "dnsop", - "ops", - "regular" - ], - "groupAcronym": "dnsop", - "groupName": "Domain Name System Operations", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dnsop-04" - }, - "orderInMeeting": 1, - "short": "dnsop", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dnsop", - "chatArchive": "https://www.ietf.org/jabber/logs/dnsop?C=M;O=D", - "recordings": [ - { - "id": 107473, - "name": "recording-113-dnsop-1", - "title": "Video recording for DNSOP on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=7HxcmvFOnlU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29286.ics" - } - }, - { - "id": 104082, - "sessionId": 29323, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "netmod", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "netmod", - "ops", - "regular" - ], - "groupAcronym": "netmod", - "groupName": "Network Modeling", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-netmod-00" - }, - "orderInMeeting": 1, - "short": "netmod", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/netmod", - "chatArchive": "https://www.ietf.org/jabber/logs/netmod?C=M;O=D", - "recordings": [ - { - "id": 107481, - "name": "recording-113-netmod-1", - "title": "Video recording for NETMOD on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=AZgPzExPLTs" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29323.ics" - } - }, - { - "id": 104083, - "sessionId": 29432, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "can", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": true, - "filterKeywords": [ - "bof", - "can", - "regular", - "rtg" - ], - "groupAcronym": "can", - "groupName": "Computing-Aware Networking", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-can-01" - }, - "orderInMeeting": 1, - "short": "can", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/can", - "chatArchive": "https://www.ietf.org/jabber/logs/can?C=M;O=D", - "recordings": [ - { - "id": 107465, - "name": "recording-113-can-1", - "title": "Video recording for CAN on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=_0uanSBJz5c" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29432.ics" - } - }, - { - "id": 104084, - "sessionId": 29425, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "rats", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "rats", - "rats-sessa", - "regular", - "sec" - ], - "groupAcronym": "rats", - "groupName": "Remote ATtestation ProcedureS", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-rats-01" - }, - "orderInMeeting": 1, - "short": "rats", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/rats", - "chatArchive": "https://www.ietf.org/jabber/logs/rats?C=M;O=D", - "recordings": [ - { - "id": 107521, - "name": "recording-113-rats-1", - "title": "Video recording for RATS on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=m6oSoJE1G1Q" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29425.ics" - } - }, - { - "id": 104085, - "sessionId": 29302, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "quic", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-22T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "quic", - "regular", - "tsv" - ], - "groupAcronym": "quic", - "groupName": "QUIC", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-quic-01" - }, - "orderInMeeting": 1, - "short": "quic", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/quic", - "chatArchive": "https://www.ietf.org/jabber/logs/quic?C=M;O=D", - "recordings": [ - { - "id": 107520, - "name": "recording-113-quic-1", - "title": "Video recording for QUIC on 2022-03-22 at 10:00:00", - "url": "https://www.youtube.com/watch?v=yHyv7ay6mIk" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29302.ics" - } - }, - { - "id": 104164, - "sessionId": 29450, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 3600, - "name": "Lunch Break", - "startDateTime": "2022-03-22T12:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "break", - "secretariat", - "secretariat-sessh", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 3, - "short": "Break", - "sessionToken": "sessh", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29450.ics" - } - }, - { - "id": 104539, - "sessionId": 29483, - "room": "Gather", - "location": {}, - "acronym": "emodir", - "duration": 1800, - "name": "Newcomers' Coffee Break", - "startDateTime": "2022-03-22T12:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "emodir", - "emodir-sessc", - "newcomers-coffee-break-in-gather", - "social" - ], - "groupAcronym": "emodir", - "groupName": "Education, Mentoring and Outreach Directorate", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 2, - "short": "Newcomers' Coffee Break (in Gather)", - "sessionToken": "sessc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive": "https://www.ietf.org/jabber/logs/emodir?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29483.ics" - } - }, - { - "id": 104086, - "sessionId": 29392, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "regext", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "regext", - "regular" - ], - "groupAcronym": "regext", - "groupName": "Registration Protocols Extensions", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-regext-01" - }, - "orderInMeeting": 1, - "short": "regext", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/regext", - "chatArchive": "https://www.ietf.org/jabber/logs/regext?C=M;O=D", - "recordings": [ - { - "id": 107477, - "name": "recording-113-regext-1", - "title": "Video recording for REGEXT on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=zs3oAPaKQ9I" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29392.ics" - } - }, - { - "id": 104087, - "sessionId": 29312, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "lpwan", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "int", - "lpwan", - "regular" - ], - "groupAcronym": "lpwan", - "groupName": "IPv6 over Low Power Wide-Area Networks", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lpwan-02" - }, - "orderInMeeting": 1, - "short": "lpwan", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lpwan", - "chatArchive": "https://www.ietf.org/jabber/logs/lpwan?C=M;O=D", - "recordings": [ - { - "id": 107464, - "name": "recording-113-lpwan-1", - "title": "Video recording for LPWAN on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=a7MPB-hgk_E" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29312.ics" - } - }, - { - "id": 104088, - "sessionId": 29395, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "qirg", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "qirg", - "regular" - ], - "groupAcronym": "qirg", - "groupName": "Quantum Internet Research Group", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-qirg-01" - }, - "orderInMeeting": 1, - "short": "qirg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/qirg", - "chatArchive": "https://www.ietf.org/jabber/logs/qirg?C=M;O=D", - "recordings": [ - { - "id": 107467, - "name": "recording-113-qirg-1", - "title": "Video recording for QIRG on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=ugsZgqe1Wh0" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29395.ics" - } - }, - { - "id": 104089, - "sessionId": 29336, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "lisp", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "lisp", - "regular", - "rtg" - ], - "groupAcronym": "lisp", - "groupName": "Locator/ID Separation Protocol", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lisp-03" - }, - "orderInMeeting": 1, - "short": "lisp", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lisp", - "chatArchive": "https://www.ietf.org/jabber/logs/lisp?C=M;O=D", - "recordings": [ - { - "id": 107476, - "name": "recording-113-lisp-1", - "title": "Video recording for LISP on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=RzwTCgkoFmU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29336.ics" - } - }, - { - "id": 104090, - "sessionId": 29281, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "pce", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "pce", - "pce-sessb", - "regular", - "rtg" - ], - "groupAcronym": "pce", - "groupName": "Path Computation Element", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-pce-08" - }, - "orderInMeeting": 2, - "short": "pce", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/pce", - "chatArchive": "https://www.ietf.org/jabber/logs/pce?C=M;O=D", - "recordings": [ - { - "id": 107469, - "name": "recording-113-pce-2", - "title": "Video recording for PCE on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=bEvqcX1uPI4" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29281.ics" - } - }, - { - "id": 104091, - "sessionId": 29341, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ace", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ace", - "regular", - "sec" - ], - "groupAcronym": "ace", - "groupName": "Authentication and Authorization for Constrained Environments", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ace-00" - }, - "orderInMeeting": 1, - "short": "ace", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ace", - "chatArchive": "https://www.ietf.org/jabber/logs/ace?C=M;O=D", - "recordings": [ - { - "id": 107471, - "name": "recording-113-ace-1", - "title": "Video recording for ACE on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=klCxFok9p5w" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29341.ics" - } - }, - { - "id": 104092, - "sessionId": 29379, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "emu", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "emu", - "regular", - "sec" - ], - "groupAcronym": "emu", - "groupName": "EAP Method Update", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-emu-01" - }, - "orderInMeeting": 1, - "short": "emu", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emu", - "chatArchive": "https://www.ietf.org/jabber/logs/emu?C=M;O=D", - "recordings": [ - { - "id": 107701, - "name": "recording-113-emu-1", - "title": "Video recording for EMU on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=oONzCclwNFw" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29379.ics" - } - }, - { - "id": 104093, - "sessionId": 29333, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "tsvarea", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-22T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "tsv", - "tsvarea" - ], - "groupAcronym": "tsvarea", - "groupName": "Transport Area Open Meeting", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-tsvarea-00" - }, - "orderInMeeting": 1, - "short": "tsvarea", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tsvarea", - "chatArchive": "https://www.ietf.org/jabber/logs/tsvarea?C=M;O=D", - "recordings": [ - { - "id": 107478, - "name": "recording-113-tsvarea-1", - "title": "Video recording for TSVAREA on 2022-03-22 at 13:00:00", - "url": "https://www.youtube.com/watch?v=MLVHdCTtsOE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29333.ics" - } - }, - { - "id": 104168, - "sessionId": 29455, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage and Snack Break", - "startDateTime": "2022-03-22T14:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessm", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 4, - "short": "Beverage and Snack Break", - "sessionToken": "sessm", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29455.ics" - } - }, - { - "id": 104123, - "sessionId": 29345, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "cdni", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "cdni", - "regular" - ], - "groupAcronym": "cdni", - "groupName": "Content Delivery Networks Interconnection", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-cdni-02" - }, - "orderInMeeting": 1, - "short": "cdni", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/cdni", - "chatArchive": "https://www.ietf.org/jabber/logs/cdni?C=M;O=D", - "recordings": [ - { - "id": 107470, - "name": "recording-113-cdni-1", - "title": "Video recording for CDNI on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=MAwNcv6Oe-g" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29345.ics" - } - }, - { - "id": 104095, - "sessionId": 29329, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "intarea", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "int", - "intarea", - "regular" - ], - "groupAcronym": "intarea", - "groupName": "Internet Area Working Group", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-intarea-05" - }, - "orderInMeeting": 1, - "short": "intarea", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/intarea", - "chatArchive": "https://www.ietf.org/jabber/logs/intarea?C=M;O=D", - "recordings": [ - { - "id": 107480, - "name": "recording-113-intarea-1", - "title": "Video recording for INTAREA on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=jOPFejJeWeU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29329.ics" - } - }, - { - "id": 104096, - "sessionId": 29347, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "irtfopen", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "irtfopen", - "regular" - ], - "groupAcronym": "irtfopen", - "groupName": "IRTF Open Meeting", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-irtfopen-00" - }, - "orderInMeeting": 1, - "short": "irtfopen", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/irtfopen", - "chatArchive": "https://www.ietf.org/jabber/logs/irtfopen?C=M;O=D", - "recordings": [ - { - "id": 107472, - "name": "recording-113-irtfopen-1", - "title": "Video recording for IRTFOPEN on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=sJ3002ZMk58" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29347.ics" - } - }, - { - "id": 104097, - "sessionId": 29274, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "mboned", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "mboned", - "ops", - "regular" - ], - "groupAcronym": "mboned", - "groupName": "MBONE Deployment", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-mboned-03" - }, - "orderInMeeting": 1, - "short": "mboned", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/mboned", - "chatArchive": "https://www.ietf.org/jabber/logs/mboned?C=M;O=D", - "recordings": [ - { - "id": 107479, - "name": "recording-113-mboned-1", - "title": "Video recording for MBONED on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=ItCG-TN-TwQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29274.ics" - } - }, - { - "id": 104098, - "sessionId": 29322, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "detnet", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "detnet", - "regular", - "rtg" - ], - "groupAcronym": "detnet", - "groupName": "Deterministic Networking", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-detnet-05" - }, - "orderInMeeting": 1, - "short": "detnet", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/detnet", - "chatArchive": "https://www.ietf.org/jabber/logs/detnet?C=M;O=D", - "recordings": [ - { - "id": 107548, - "name": "recording-113-detnet-1", - "title": "Video recording for DETNET on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=7Uuo-_6ruqE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29322.ics" - } - }, - { - "id": 104099, - "sessionId": 29324, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "idr", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "idr", - "idr-sessa", - "regular", - "rtg" - ], - "groupAcronym": "idr", - "groupName": "Inter-Domain Routing", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-idr-05" - }, - "orderInMeeting": 1, - "short": "idr", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/idr", - "chatArchive": "https://www.ietf.org/jabber/logs/idr?C=M;O=D", - "recordings": [ - { - "id": 107549, - "name": "recording-113-idr-1", - "title": "Video recording for IDR on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=bRqTpPiQnX0" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29324.ics" - } - }, - { - "id": 104100, - "sessionId": 29378, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secdispatch", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "sec", - "secdispatch" - ], - "groupAcronym": "secdispatch", - "groupName": "Security Dispatch", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-secdispatch-02" - }, - "orderInMeeting": 1, - "short": "secdispatch", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secdispatch", - "chatArchive": "https://www.ietf.org/jabber/logs/secdispatch?C=M;O=D", - "recordings": [ - { - "id": 107466, - "name": "recording-113-secdispatch-1", - "title": "Video recording for SECDISPATCH on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=tHbIaQG_UFs" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29378.ics" - } - }, - { - "id": 104101, - "sessionId": 29401, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "dtn", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-22T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "dtn", - "regular", - "tsv" - ], - "groupAcronym": "dtn", - "groupName": "Delay/Disruption Tolerant Networking", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dtn-03" - }, - "orderInMeeting": 1, - "short": "dtn", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dtn", - "chatArchive": "https://www.ietf.org/jabber/logs/dtn?C=M;O=D", - "recordings": [ - { - "id": 107474, - "name": "recording-113-dtn-1", - "title": "Video recording for DTN on 2022-03-22 at 14:30:00", - "url": "https://www.youtube.com/watch?v=nOyL-Pz6zLI" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29401.ics" - } - }, - { - "id": 104778, - "sessionId": 29506, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 7200, - "name": "IANA Office Hours", - "startDateTime": "2022-03-22T15:30:00", - "status": "schedw", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iana-office-hours", - "secretariat", - "secretariat-sessbl" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://gather.town/app/L4fNNdm1NJa1sE2v/ietf", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 9, - "short": "IANA Office Hours", - "sessionToken": "sessbl", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29506.ics" - } - }, - { - "id": 104536, - "sessionId": 29480, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ietf", - "duration": 2700, - "name": "Host Speaker Series", - "startDateTime": "2022-03-22T16:45:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "host-speaker-series-ipv6-adoption-worldwide-momentum-challenges-and-next-steps", - "ietf", - "ietf-sessc", - "presentation" - ], - "groupAcronym": "ietf", - "groupName": "IETF", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://meetings.conf.meetecho.com/ietf113/?group=hostspeaker", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ietf-sessc-00" - }, - "orderInMeeting": 2, - "short": "Host Speaker Series: IPv6 Adoption Worldwide: Momentum, Challenges and Next Steps", - "sessionToken": "sessc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ietf", - "chatArchive": "https://www.ietf.org/jabber/logs/ietf?C=M;O=D", - "recordings": [ - { - "id": 107695, - "name": "recording-113-ietf-3", - "title": "Video recording for IETF on 2022-03-22 at 16:45:00", - "url": "https://www.youtube.com/watch?v=LRZJOnOHsY4" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf113/?group=hostspeaker", - "audioStream": null, - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite113/?group=hostspeaker", - "calendar": "/meeting/113/session/29480.ics" - } - }, - { - "id": 104528, - "sessionId": 29473, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-22T17:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessw" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 10, - "short": "ISE Office Hours", - "sessionToken": "sessw", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29473.ics" - } - }, - { - "id": 104175, - "sessionId": 29446, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 30600, - "name": "IETF Registration", - "startDateTime": "2022-03-23T08:30:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessd" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 4, - "short": "IETF Registration", - "sessionToken": "sessd", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29446.ics" - } - }, - { - "id": 104776, - "sessionId": 29503, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 30600, - "name": "IANA Office Hours", - "startDateTime": "2022-03-23T09:00:00", - "status": "schedw", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iana-office-hours", - "secretariat", - "secretariat-sessbi" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://gather.town/app/L4fNNdm1NJa1sE2v/ietf", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 12, - "short": "IANA Office Hours", - "sessionToken": "sessbi", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29503.ics" - } - }, - { - "id": 104771, - "sessionId": 29497, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 27000, - "name": "RPC Office Hours", - "startDateTime": "2022-03-23T09:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "rpc-office-hours", - "secretariat", - "secretariat-sessbe" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 11, - "short": "RPC Office Hours", - "sessionToken": "sessbe", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29497.ics" - } - }, - { - "id": 104529, - "sessionId": 29474, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-23T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessx" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 13, - "short": "ISE Office Hours", - "sessionToken": "sessx", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29474.ics" - } - }, - { - "id": 104102, - "sessionId": 29431, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "moq", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": true, - "filterKeywords": [ - "art", - "bof", - "moq", - "regular" - ], - "groupAcronym": "moq", - "groupName": "Media Over QUIC", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-moq-06" - }, - "orderInMeeting": 1, - "short": "moq", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/moq", - "chatArchive": "https://www.ietf.org/jabber/logs/moq?C=M;O=D", - "recordings": [ - { - "id": 107596, - "name": "recording-113-moq-1", - "title": "Video recording for MOQ on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=qwL1tkM5D7A" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29431.ics" - } - }, - { - "id": 104103, - "sessionId": 29412, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "6lo", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "6lo", - "int", - "regular" - ], - "groupAcronym": "6lo", - "groupName": "IPv6 over Networks of Resource-constrained Nodes", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-6lo-01" - }, - "orderInMeeting": 1, - "short": "6lo", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/6lo", - "chatArchive": "https://www.ietf.org/jabber/logs/6lo?C=M;O=D", - "recordings": [ - { - "id": 107599, - "name": "recording-113-6lo-1", - "title": "Video recording for 6LO on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=QL5hqBo8oHw" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29412.ics" - } - }, - { - "id": 104104, - "sessionId": 29316, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "hrpc", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "hrpc", - "irtf", - "regular" - ], - "groupAcronym": "hrpc", - "groupName": "Human Rights Protocol Considerations", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-hrpc-01" - }, - "orderInMeeting": 1, - "short": "hrpc", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/hrpc", - "chatArchive": "https://www.ietf.org/jabber/logs/hrpc?C=M;O=D", - "recordings": [ - { - "id": 107597, - "name": "recording-113-hrpc-1", - "title": "Video recording for HRPC on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=SpVEC7P3o30" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29316.ics" - } - }, - { - "id": 104105, - "sessionId": 29375, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "maprg", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "maprg", - "regular" - ], - "groupAcronym": "maprg", - "groupName": "Measurement and Analysis for Protocols", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-maprg-03" - }, - "orderInMeeting": 1, - "short": "maprg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/maprg", - "chatArchive": "https://www.ietf.org/jabber/logs/maprg?C=M;O=D", - "recordings": [ - { - "id": 107605, - "name": "recording-113-maprg-1", - "title": "Video recording for MAPRG on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=vYOBBT69IfI" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29375.ics" - } - }, - { - "id": 104106, - "sessionId": 29297, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "bmwg", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "bmwg", - "ops", - "regular" - ], - "groupAcronym": "bmwg", - "groupName": "Benchmarking Methodology", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-bmwg-01" - }, - "orderInMeeting": 1, - "short": "bmwg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/bmwg", - "chatArchive": "https://www.ietf.org/jabber/logs/bmwg?C=M;O=D", - "recordings": [ - { - "id": 107600, - "name": "recording-113-bmwg-1", - "title": "Video recording for BMWG on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=OKvXWuNrioQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29297.ics" - } - }, - { - "id": 104107, - "sessionId": 29327, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "rtgarea", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rtg", - "rtgarea" - ], - "groupAcronym": "rtgarea", - "groupName": "Routing Area Open Meeting", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-rtgarea-00" - }, - "orderInMeeting": 1, - "short": "rtgarea", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/rtgarea", - "chatArchive": "https://www.ietf.org/jabber/logs/rtgarea?C=M;O=D", - "recordings": [ - { - "id": 107593, - "name": "recording-113-rtgarea-1", - "title": "Video recording for RTGAREA on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=ByYIBES8CBo" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29327.ics" - } - }, - { - "id": 104108, - "sessionId": 29355, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "tls", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "sec", - "tls" - ], - "groupAcronym": "tls", - "groupName": "Transport Layer Security", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-tls-03" - }, - "orderInMeeting": 1, - "short": "tls", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tls", - "chatArchive": "https://www.ietf.org/jabber/logs/tls?C=M;O=D", - "recordings": [ - { - "id": 107592, - "name": "recording-113-tls-1", - "title": "Video recording for TLS on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=Ci3iMZbjohs" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29355.ics" - } - }, - { - "id": 104109, - "sessionId": 29317, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "alto", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-23T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "alto", - "regular", - "tsv" - ], - "groupAcronym": "alto", - "groupName": "Application-Layer Traffic Optimization", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-alto-08" - }, - "orderInMeeting": 1, - "short": "alto", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/alto", - "chatArchive": "https://www.ietf.org/jabber/logs/alto?C=M;O=D", - "recordings": [ - { - "id": 107595, - "name": "recording-113-alto-1", - "title": "Video recording for ALTO on 2022-03-23 at 10:00:00", - "url": "https://www.youtube.com/watch?v=38dJ4cxY7IU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29317.ics" - } - }, - { - "id": 104165, - "sessionId": 29451, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 3600, - "name": "Lunch Break", - "startDateTime": "2022-03-23T12:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "break", - "secretariat", - "secretariat-sessi", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 5, - "short": "Break", - "sessionToken": "sessi", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29451.ics" - } - }, - { - "id": 104190, - "sessionId": 29463, - "room": "Lenz Restaurant", - "location": {}, - "acronym": "emodir", - "duration": 3600, - "name": "WG Chairs Lunch (For WG Chairs Only)", - "startDateTime": "2022-03-23T12:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "emodir", - "emodir-sessa", - "social", - "wg-chairs-lunch-for-wg-chairs-only" - ], - "groupAcronym": "emodir", - "groupName": "Education, Mentoring and Outreach Directorate", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 3, - "short": "WG Chairs Lunch (For WG Chairs Only)", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive": "https://www.ietf.org/jabber/logs/emodir?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29463.ics" - } - }, - { - "id": 104110, - "sessionId": 29437, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "mediaman", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "mediaman", - "regular" - ], - "groupAcronym": "mediaman", - "groupName": "Media Type Maintenance", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-mediaman-00" - }, - "orderInMeeting": 1, - "short": "mediaman", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/mediaman", - "chatArchive": "https://www.ietf.org/jabber/logs/mediaman?C=M;O=D", - "recordings": [ - { - "id": 107594, - "name": "recording-113-mediaman-1", - "title": "Video recording for MEDIAMAN on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=D4sNpseV9Cg" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29437.ics" - } - }, - { - "id": 104111, - "sessionId": 29342, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "drip", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "drip", - "int", - "regular" - ], - "groupAcronym": "drip", - "groupName": "Drone Remote ID Protocol", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-drip-04" - }, - "orderInMeeting": 1, - "short": "drip", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/drip", - "chatArchive": "https://www.ietf.org/jabber/logs/drip?C=M;O=D", - "recordings": [ - { - "id": 107589, - "name": "recording-113-drip-1", - "title": "Video recording for DRIP on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=lAXRcQyJu6o" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29342.ics" - } - }, - { - "id": 104112, - "sessionId": 29402, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "grow", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "grow", - "ops", - "regular" - ], - "groupAcronym": "grow", - "groupName": "Global Routing Operations", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-grow-00" - }, - "orderInMeeting": 1, - "short": "grow", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/grow", - "chatArchive": "https://www.ietf.org/jabber/logs/grow?C=M;O=D", - "recordings": [ - { - "id": 107602, - "name": "recording-113-grow-1", - "title": "Video recording for GROW on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=5Pe1JTYMRXo" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29402.ics" - } - }, - { - "id": 104113, - "sessionId": 29414, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "roll", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "roll", - "rtg" - ], - "groupAcronym": "roll", - "groupName": "Routing Over Low power and Lossy networks", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-roll-02" - }, - "orderInMeeting": 1, - "short": "roll", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/roll", - "chatArchive": "https://www.ietf.org/jabber/logs/roll?C=M;O=D", - "recordings": [ - { - "id": 107607, - "name": "recording-113-roll-1", - "title": "Video recording for ROLL on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=P0V4s9Hoyd4" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29414.ics" - } - }, - { - "id": 104114, - "sessionId": 29353, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "teas", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rtg", - "teas", - "teas-sessb" - ], - "groupAcronym": "teas", - "groupName": "Traffic Engineering Architecture and Signaling", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-teas-01" - }, - "orderInMeeting": 1, - "short": "teas", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/teas", - "chatArchive": "https://www.ietf.org/jabber/logs/teas?C=M;O=D", - "recordings": [ - { - "id": 107604, - "name": "recording-113-teas-2", - "title": "Video recording for TEAS on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=XAyrNm4kf1c" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29353.ics" - } - }, - { - "id": 104115, - "sessionId": 29374, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "mls", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "mls", - "regular", - "sec" - ], - "groupAcronym": "mls", - "groupName": "Messaging Layer Security", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-mls-01" - }, - "orderInMeeting": 1, - "short": "mls", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/mls", - "chatArchive": "https://www.ietf.org/jabber/logs/mls?C=M;O=D", - "recordings": [ - { - "id": 107603, - "name": "recording-113-mls-1", - "title": "Video recording for MLS on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=LzyIc8-YHtQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29374.ics" - } - }, - { - "id": 104116, - "sessionId": 29426, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "rats", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "rats", - "rats-sessb", - "regular", - "sec" - ], - "groupAcronym": "rats", - "groupName": "Remote ATtestation ProcedureS", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-rats-01" - }, - "orderInMeeting": 2, - "short": "rats", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/rats", - "chatArchive": "https://www.ietf.org/jabber/logs/rats?C=M;O=D", - "recordings": [ - { - "id": 107601, - "name": "recording-113-rats-2", - "title": "Video recording for RATS on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=sjSbl6dEzkQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29426.ics" - } - }, - { - "id": 104117, - "sessionId": 29409, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "taps", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-23T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "taps", - "tsv" - ], - "groupAcronym": "taps", - "groupName": "Transport Services", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-taps-00" - }, - "orderInMeeting": 1, - "short": "taps", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/taps", - "chatArchive": "https://www.ietf.org/jabber/logs/taps?C=M;O=D", - "recordings": [ - { - "id": 107588, - "name": "recording-113-taps-1", - "title": "Video recording for TAPS on 2022-03-23 at 13:00:00", - "url": "https://www.youtube.com/watch?v=l433k1p4Zz4" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29409.ics" - } - }, - { - "id": 104171, - "sessionId": 29458, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage Break", - "startDateTime": "2022-03-23T14:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-break", - "secretariat", - "secretariat-sessp", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 6, - "short": "Beverage Break", - "sessionToken": "sessp", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29458.ics" - } - }, - { - "id": 104530, - "sessionId": 29475, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-23T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessy" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 14, - "short": "ISE Office Hours", - "sessionToken": "sessy", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29475.ics" - } - }, - { - "id": 104118, - "sessionId": 29427, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "scim", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-23T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "regular", - "scim" - ], - "groupAcronym": "scim", - "groupName": "System for Cross-domain Identity Management", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-scim-03" - }, - "orderInMeeting": 1, - "short": "scim", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/scim", - "chatArchive": "https://www.ietf.org/jabber/logs/scim?C=M;O=D", - "recordings": [ - { - "id": 107598, - "name": "recording-113-scim-1", - "title": "Video recording for SCIM on 2022-03-23 at 14:30:00", - "url": "https://www.youtube.com/watch?v=L-vjdOzR4zg" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29427.ics" - } - }, - { - "id": 104119, - "sessionId": 29391, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "bier", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-23T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "bier", - "regular", - "rtg" - ], - "groupAcronym": "bier", - "groupName": "Bit Indexed Explicit Replication", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-bier-00" - }, - "orderInMeeting": 1, - "short": "bier", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/bier", - "chatArchive": "https://www.ietf.org/jabber/logs/bier?C=M;O=D", - "recordings": [ - { - "id": 107606, - "name": "recording-113-bier-1", - "title": "Video recording for BIER on 2022-03-23 at 14:30:00", - "url": "https://www.youtube.com/watch?v=bL0QKQbu11U" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29391.ics" - } - }, - { - "id": 104120, - "sessionId": 29352, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "teas", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-23T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rtg", - "teas", - "teas-sessa" - ], - "groupAcronym": "teas", - "groupName": "Traffic Engineering Architecture and Signaling", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-teas-01" - }, - "orderInMeeting": 2, - "short": "teas", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/teas", - "chatArchive": "https://www.ietf.org/jabber/logs/teas?C=M;O=D", - "recordings": [ - { - "id": 107591, - "name": "recording-113-teas-1", - "title": "Video recording for TEAS on 2022-03-23 at 14:30:00", - "url": "https://www.youtube.com/watch?v=yvnrigAdkpA" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29352.ics" - } - }, - { - "id": 104121, - "sessionId": 29421, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ohai", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-23T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ohai", - "regular", - "sec" - ], - "groupAcronym": "ohai", - "groupName": "Oblivious HTTP Application Intermediation", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ohai-01" - }, - "orderInMeeting": 1, - "short": "ohai", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ohai", - "chatArchive": "https://www.ietf.org/jabber/logs/ohai?C=M;O=D", - "recordings": [ - { - "id": 107590, - "name": "recording-113-ohai-1", - "title": "Video recording for OHAI on 2022-03-23 at 14:30:00", - "url": "https://www.youtube.com/watch?v=oriNEz2kkH8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29421.ics" - } - }, - { - "id": 104060, - "sessionId": 29296, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "tcpm", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-23T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "tcpm", - "tsv" - ], - "groupAcronym": "tcpm", - "groupName": "TCP Maintenance and Minor Extensions", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-tcpm-02" - }, - "orderInMeeting": 1, - "short": "tcpm", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tcpm", - "chatArchive": "https://www.ietf.org/jabber/logs/tcpm?C=M;O=D", - "recordings": [ - { - "id": 107624, - "name": "recording-113-tcpm-1", - "title": "Video recording for TCPM on 2022-03-23 at 14:30:00", - "url": "https://www.youtube.com/watch?v=To8Jf634l_A" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29296.ics" - } - }, - { - "id": 104169, - "sessionId": 29456, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage and Snack Break", - "startDateTime": "2022-03-23T16:30:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessn", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 7, - "short": "Beverage and Snack Break", - "sessionToken": "sessn", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29456.ics" - } - }, - { - "id": 104186, - "sessionId": 29460, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "ietf", - "duration": 7200, - "name": "Plenary", - "startDateTime": "2022-03-23T17:00:00", - "status": "sched", - "type": "plenary", - "isBoF": false, - "filterKeywords": [ - "ietf", - "ietf-plenary", - "ietf-sessa", - "plenary" - ], - "groupAcronym": "ietf", - "groupName": "IETF", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ietf-sessa-03" - }, - "orderInMeeting": 1, - "short": "IETF Plenary", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/plenary", - "chatArchive": "https://www.ietf.org/jabber/logs/plenary?C=M;O=D", - "recordings": [ - { - "id": 107625, - "name": "recording-113-ietf-1", - "title": "Video recording for IETF on 2022-03-23 at 17:00:00", - "url": "https://www.youtube.com/watch?v=V0-aTFE8YNw" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29460.ics" - } - }, - { - "id": 104522, - "sessionId": 29467, - "room": "Grand Klimt Hall 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "secretariat", - "duration": 3600, - "name": "Newcomers' Feedback Session", - "startDateTime": "2022-03-24T08:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "newcomers-feedback-session", - "secretariat", - "secretariat-sessr" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://meeting.conf.meetecho.com/ietf113/?group=newcomersfeedback", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 15, - "short": "Newcomers' Feedback Session", - "sessionToken": "sessr", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29467.ics" - } - }, - { - "id": 104176, - "sessionId": 29447, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 28800, - "name": "IETF Registration", - "startDateTime": "2022-03-24T08:30:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sesse" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 5, - "short": "IETF Registration", - "sessionToken": "sesse", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29447.ics" - } - }, - { - "id": 104777, - "sessionId": 29505, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 30600, - "name": "IANA Office Hours", - "startDateTime": "2022-03-24T09:00:00", - "status": "schedw", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "iana-office-hours", - "secretariat", - "secretariat-sessbk" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "https://gather.town/app/L4fNNdm1NJa1sE2v/ietf", - "flags": { - "agenda": false, - "showAgenda": true - }, - "agenda": { - "url": null - }, - "orderInMeeting": 17, - "short": "IANA Office Hours", - "sessionToken": "sessbk", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29505.ics" - } - }, - { - "id": 104772, - "sessionId": 29496, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 27000, - "name": "RPC Office Hours", - "startDateTime": "2022-03-24T09:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "rpc-office-hours", - "secretariat", - "secretariat-sessbd" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 16, - "short": "RPC Office Hours", - "sessionToken": "sessbd", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29496.ics" - } - }, - { - "id": 104531, - "sessionId": 29476, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-24T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessz" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 18, - "short": "ISE Office Hours", - "sessionToken": "sessz", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29476.ics" - } - }, - { - "id": 104094, - "sessionId": 29314, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "httpapi", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "httpapi", - "regular" - ], - "groupAcronym": "httpapi", - "groupName": "Building Blocks for HTTP APIs", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-httpapi-01" - }, - "orderInMeeting": 1, - "short": "httpapi", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/httpapi", - "chatArchive": "https://www.ietf.org/jabber/logs/httpapi?C=M;O=D", - "recordings": [ - { - "id": 107716, - "name": "recording-113-httpapi-1", - "title": "Video recording for HTTPAPI on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=Q2Awiz2xl5w" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29314.ics" - } - }, - { - "id": 104125, - "sessionId": 29348, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "coinrg", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "canceled", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "coinrg", - "irtf", - "regular" - ], - "groupAcronym": "coinrg", - "groupName": "Computing in the Network Research Group", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 1, - "short": "coinrg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/coinrg", - "chatArchive": "https://www.ietf.org/jabber/logs/coinrg?C=M;O=D", - "recordings": [], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29348.ics" - } - }, - { - "id": 104126, - "sessionId": 29385, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "nmrg", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "nmrg", - "regular" - ], - "groupAcronym": "nmrg", - "groupName": "Network Management", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-nmrg-04" - }, - "orderInMeeting": 1, - "short": "nmrg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/nmrg", - "chatArchive": "https://www.ietf.org/jabber/logs/nmrg?C=M;O=D", - "recordings": [ - { - "id": 107699, - "name": "recording-113-nmrg-1", - "title": "Video recording for NMRG on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=nxaDakQppoE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29385.ics" - } - }, - { - "id": 104127, - "sessionId": 29377, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iotops", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "iotops", - "ops", - "regular" - ], - "groupAcronym": "iotops", - "groupName": "IOT Operations", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-iotops-02" - }, - "orderInMeeting": 1, - "short": "iotops", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iotops", - "chatArchive": "https://www.ietf.org/jabber/logs/iotops?C=M;O=D", - "recordings": [ - { - "id": 107700, - "name": "recording-113-iotops-1", - "title": "Video recording for IOTOPS on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=3TdUUdOwX2k" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29377.ics" - } - }, - { - "id": 104128, - "sessionId": 29398, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "lsvr", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "lsvr", - "regular", - "rtg" - ], - "groupAcronym": "lsvr", - "groupName": "Link State Vector Routing", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lsvr-00" - }, - "orderInMeeting": 1, - "short": "lsvr", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lsvr", - "chatArchive": "https://www.ietf.org/jabber/logs/lsvr?C=M;O=D", - "recordings": [ - { - "id": 107752, - "name": "recording-113-lsvr-1", - "title": "Video recording for LSVR on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=6NqfQR6cMYI" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29398.ics" - } - }, - { - "id": 104129, - "sessionId": 29289, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "pals", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "pals", - "regular", - "rtg" - ], - "groupAcronym": "pals", - "groupName": "Pseudowire And LDP-enabled Services", - "groupParent": { - "acronym": "rtg" - }, - "note": "Joint PALS/MPLS/DETNET", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-pals-01" - }, - "orderInMeeting": 1, - "short": "pals", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/pals", - "chatArchive": "https://www.ietf.org/jabber/logs/pals?C=M;O=D", - "recordings": [ - { - "id": 107756, - "name": "recording-113-pals-1", - "title": "Video recording for PALS on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=V7DBF9K8cdQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29289.ics" - } - }, - { - "id": 104124, - "sessionId": 29433, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "savnet", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": true, - "filterKeywords": [ - "bof", - "int", - "regular", - "savnet" - ], - "groupAcronym": "savnet", - "groupName": "Source Address Validation in Intra-domain and Inter-domain Networks", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-savnet-01" - }, - "orderInMeeting": 1, - "short": "savnet", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/savnet", - "chatArchive": "https://www.ietf.org/jabber/logs/savnet?C=M;O=D", - "recordings": [ - { - "id": 107717, - "name": "recording-113-savnet-1", - "title": "Video recording for SAVNET on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=dMw0rbunhSs" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29433.ics" - } - }, - { - "id": 104130, - "sessionId": 29364, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "saag", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-24T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "saag", - "sec" - ], - "groupAcronym": "saag", - "groupName": "Security Area Open Meeting", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-saag-00" - }, - "orderInMeeting": 1, - "short": "saag", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/saag", - "chatArchive": "https://www.ietf.org/jabber/logs/saag?C=M;O=D", - "recordings": [ - { - "id": 107754, - "name": "recording-113-saag-1", - "title": "Video recording for SAAG on 2022-03-24 at 10:00:00", - "url": "https://www.youtube.com/watch?v=eRjBgfPt3HE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29364.ics" - } - }, - { - "id": 104166, - "sessionId": 29452, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 3600, - "name": "Lunch Break", - "startDateTime": "2022-03-24T12:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "break", - "secretariat", - "secretariat-sessj", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 8, - "short": "Break", - "sessionToken": "sessj", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29452.ics" - } - }, - { - "id": 104131, - "sessionId": 29369, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "iabopen", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "iab", - "iabopen", - "regular" - ], - "groupAcronym": "iabopen", - "groupName": "IAB Open Meeting", - "groupParent": { - "acronym": "iab" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-iabopen-02" - }, - "orderInMeeting": 1, - "short": "iabopen", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/iabopen", - "chatArchive": "https://www.ietf.org/jabber/logs/iabopen?C=M;O=D", - "recordings": [ - { - "id": 107698, - "name": "recording-113-iabopen-1", - "title": "Video recording for IABOPEN on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=Qif5aZGPsEA" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29369.ics" - } - }, - { - "id": 104132, - "sessionId": 29368, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "madinas", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "int", - "madinas", - "regular" - ], - "groupAcronym": "madinas", - "groupName": "MAC Address Device Identification for Network and Application Services", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-madinas-02" - }, - "orderInMeeting": 1, - "short": "madinas", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/madinas", - "chatArchive": "https://www.ietf.org/jabber/logs/madinas?C=M;O=D", - "recordings": [ - { - "id": 107702, - "name": "recording-113-madinas-1", - "title": "Video recording for MADINAS on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=NFijHo5BkR8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29368.ics" - } - }, - { - "id": 104133, - "sessionId": 29350, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "panrg", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "irtf", - "panrg", - "regular" - ], - "groupAcronym": "panrg", - "groupName": "Path Aware Networking RG", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-panrg-07" - }, - "orderInMeeting": 1, - "short": "panrg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/panrg", - "chatArchive": "https://www.ietf.org/jabber/logs/panrg?C=M;O=D", - "recordings": [ - { - "id": 107704, - "name": "recording-113-panrg-1", - "title": "Video recording for PANRG on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=XboM9W8z5-c" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29350.ics" - } - }, - { - "id": 104134, - "sessionId": 29290, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "mpls", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "mpls", - "regular", - "rtg" - ], - "groupAcronym": "mpls", - "groupName": "Multiprotocol Label Switching", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-mpls-03" - }, - "orderInMeeting": 1, - "short": "mpls", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/mpls", - "chatArchive": "https://www.ietf.org/jabber/logs/mpls?C=M;O=D", - "recordings": [ - { - "id": 107714, - "name": "recording-113-mpls-1", - "title": "Video recording for MPLS on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=NU-HaB5aH5o" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29290.ics" - } - }, - { - "id": 104135, - "sessionId": 29366, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "rift", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rift", - "rtg" - ], - "groupAcronym": "rift", - "groupName": "Routing In Fat Trees", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-rift-00" - }, - "orderInMeeting": 1, - "short": "rift", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/rift", - "chatArchive": "https://www.ietf.org/jabber/logs/rift?C=M;O=D", - "recordings": [ - { - "id": 107753, - "name": "recording-113-rift-1", - "title": "Video recording for RIFT on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=YYhAnqLgk-Y" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29366.ics" - } - }, - { - "id": 104136, - "sessionId": 29394, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "i2nsf", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "i2nsf", - "regular", - "sec" - ], - "groupAcronym": "i2nsf", - "groupName": "Interface to Network Security Functions", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-i2nsf-01" - }, - "orderInMeeting": 1, - "short": "i2nsf", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/i2nsf", - "chatArchive": "https://www.ietf.org/jabber/logs/i2nsf?C=M;O=D", - "recordings": [ - { - "id": 107703, - "name": "recording-113-i2nsf-1", - "title": "Video recording for I2NSF on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=nvPGyO8O_v8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29394.ics" - } - }, - { - "id": 104137, - "sessionId": 29415, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "privacypass", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "privacypass", - "regular", - "sec" - ], - "groupAcronym": "privacypass", - "groupName": "Privacy Pass", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-privacypass-00" - }, - "orderInMeeting": 1, - "short": "privacypass", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/privacypass", - "chatArchive": "https://www.ietf.org/jabber/logs/privacypass?C=M;O=D", - "recordings": [ - { - "id": 107696, - "name": "recording-113-privacypass-1", - "title": "Video recording for PRIVACYPASS on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=wip30cWHRBI" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29415.ics" - } - }, - { - "id": 104138, - "sessionId": 29283, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "suit", - "duration": 3600, - "name": "Afternoon session I", - "startDateTime": "2022-03-24T13:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "sec", - "suit" - ], - "groupAcronym": "suit", - "groupName": "Software Updates for Internet of Things", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-suit-03" - }, - "orderInMeeting": 1, - "short": "suit", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/suit", - "chatArchive": "https://www.ietf.org/jabber/logs/suit?C=M;O=D", - "recordings": [ - { - "id": 107697, - "name": "recording-113-suit-1", - "title": "Video recording for SUIT on 2022-03-24 at 13:00:00", - "url": "https://www.youtube.com/watch?v=sO4dDnTdKmY" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29283.ics" - } - }, - { - "id": 104170, - "sessionId": 29453, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage and Snack Break", - "startDateTime": "2022-03-24T14:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessk", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 9, - "short": "Beverage and Snack Break", - "sessionToken": "sessk", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29453.ics" - } - }, - { - "id": 104532, - "sessionId": 29477, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-24T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessba" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 19, - "short": "ISE Office Hours", - "sessionToken": "sessba", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29477.ics" - } - }, - { - "id": 104540, - "sessionId": 29484, - "room": "Gather", - "location": {}, - "acronym": "emodir", - "duration": 1800, - "name": "Newcomers' Coffee Break", - "startDateTime": "2022-03-24T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "emodir", - "emodir-sessd", - "newcomers-coffee-break-in-gather", - "social" - ], - "groupAcronym": "emodir", - "groupName": "Education, Mentoring and Outreach Directorate", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 4, - "short": "Newcomers' Coffee Break (in Gather)", - "sessionToken": "sessd", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive": "https://www.ietf.org/jabber/logs/emodir?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29484.ics" - } - }, - { - "id": 104139, - "sessionId": 29332, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "webtrans", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "regular", - "webtrans" - ], - "groupAcronym": "webtrans", - "groupName": "WebTransport", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-webtrans-02" - }, - "orderInMeeting": 1, - "short": "webtrans", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/webtrans", - "chatArchive": "https://www.ietf.org/jabber/logs/webtrans?C=M;O=D", - "recordings": [ - { - "id": 107719, - "name": "recording-113-webtrans-1", - "title": "Video recording for WEBTRANS on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=9ys7hwscwXM" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29332.ics" - } - }, - { - "id": 104140, - "sessionId": 29318, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "shmoo", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "gen", - "regular", - "shmoo" - ], - "groupAcronym": "shmoo", - "groupName": "Stay Home Meet Only Online", - "groupParent": { - "acronym": "gen" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-shmoo-01" - }, - "orderInMeeting": 1, - "short": "shmoo", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/shmoo", - "chatArchive": "https://www.ietf.org/jabber/logs/shmoo?C=M;O=D", - "recordings": [ - { - "id": 107715, - "name": "recording-113-shmoo-1", - "title": "Video recording for SHMOO on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=JnnPIBmSD28" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29318.ics" - } - }, - { - "id": 104149, - "sessionId": 29344, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "add", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "add", - "int", - "regular" - ], - "groupAcronym": "add", - "groupName": "Adaptive DNS Discovery", - "groupParent": { - "acronym": "int" - }, - "note": "Split session with DPRIVE", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-add-05" - }, - "orderInMeeting": 1, - "short": "add", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/add", - "chatArchive": "https://www.ietf.org/jabber/logs/add?C=M;O=D", - "recordings": [ - { - "id": 107726, - "name": "recording-113-add-1", - "title": "Video recording for ADD on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=yC9UucsXBOE" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29344.ics" - } - }, - { - "id": 104142, - "sessionId": 29275, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "cfrg", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "cfrg", - "irtf", - "regular" - ], - "groupAcronym": "cfrg", - "groupName": "Crypto Forum", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-cfrg-03" - }, - "orderInMeeting": 1, - "short": "cfrg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/cfrg", - "chatArchive": "https://www.ietf.org/jabber/logs/cfrg?C=M;O=D", - "recordings": [ - { - "id": 107730, - "name": "recording-113-cfrg-1", - "title": "Video recording for CFRG on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=gmk5JZmD2Hc" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29275.ics" - } - }, - { - "id": 104143, - "sessionId": 29351, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "opsawg", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ops", - "opsawg", - "regular" - ], - "groupAcronym": "opsawg", - "groupName": "Operations and Management Area Working Group", - "groupParent": { - "acronym": "ops" - }, - "note": "Combined OpsAWG/OpsAREA", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-opsawg-03" - }, - "orderInMeeting": 1, - "short": "opsawg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/opsawg", - "chatArchive": "https://www.ietf.org/jabber/logs/opsawg?C=M;O=D", - "recordings": [ - { - "id": 107718, - "name": "recording-113-opsawg-1", - "title": "Video recording for OPSAWG on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=EaA-Aeobubs" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29351.ics" - } - }, - { - "id": 104144, - "sessionId": 29288, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "lsr", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "lsr", - "regular", - "rtg" - ], - "groupAcronym": "lsr", - "groupName": "Link State Routing", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lsr-03" - }, - "orderInMeeting": 1, - "short": "lsr", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lsr", - "chatArchive": "https://www.ietf.org/jabber/logs/lsr?C=M;O=D", - "recordings": [ - { - "id": 107742, - "name": "recording-113-lsr-1", - "title": "Video recording for LSR on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=7Gfp24Q_h1g" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29288.ics" - } - }, - { - "id": 104145, - "sessionId": 29328, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "pim", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "pim", - "regular", - "rtg" - ], - "groupAcronym": "pim", - "groupName": "Protocols for IP Multicast", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-pim-00" - }, - "orderInMeeting": 1, - "short": "pim", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/pim", - "chatArchive": "https://www.ietf.org/jabber/logs/pim?C=M;O=D", - "recordings": [ - { - "id": 107731, - "name": "recording-113-pim-1", - "title": "Video recording for PIM on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=uJ5NR1ece1s" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29328.ics" - } - }, - { - "id": 104146, - "sessionId": 29292, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "oauth", - "duration": 7200, - "name": "Afternoon Session II", - "startDateTime": "2022-03-24T14:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "oauth", - "oauth-sessa", - "regular", - "sec" - ], - "groupAcronym": "oauth", - "groupName": "Web Authorization Protocol", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-oauth-00" - }, - "orderInMeeting": 2, - "short": "oauth", - "sessionToken": "sessa", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/oauth", - "chatArchive": "https://www.ietf.org/jabber/logs/oauth?C=M;O=D", - "recordings": [ - { - "id": 107720, - "name": "recording-113-oauth-2", - "title": "Video recording for OAUTH on 2022-03-24 at 14:30:00", - "url": "https://www.youtube.com/watch?v=GEVeFiY3H4w" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29292.ics" - } - }, - { - "id": 104177, - "sessionId": 29448, - "room": "Park Ensemble", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "secretariat", - "duration": 16200, - "name": "IETF Registration", - "startDateTime": "2022-03-25T08:30:00", - "status": "sched", - "type": "reg", - "isBoF": false, - "filterKeywords": [ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessf" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 6, - "short": "IETF Registration", - "sessionToken": "sessf", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29448.ics" - } - }, - { - "id": 104533, - "sessionId": 29478, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-25T09:30:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessbb" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 20, - "short": "ISE Office Hours", - "sessionToken": "sessbb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29478.ics" - } - }, - { - "id": 104147, - "sessionId": 29331, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "avtcore", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "avtcore", - "regular" - ], - "groupAcronym": "avtcore", - "groupName": "Audio/Video Transport Core Maintenance", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-avtcore-02" - }, - "orderInMeeting": 1, - "short": "avtcore", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/avtcore", - "chatArchive": "https://www.ietf.org/jabber/logs/avtcore?C=M;O=D", - "recordings": [ - { - "id": 107765, - "name": "recording-113-avtcore-1", - "title": "Video recording for AVTCORE on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=0GKzlYSBjM8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29331.ics" - } - }, - { - "id": 104148, - "sessionId": 29408, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "core", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "core", - "regular" - ], - "groupAcronym": "core", - "groupName": "Constrained RESTful Environments", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-core-00" - }, - "orderInMeeting": 1, - "short": "core", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/core", - "chatArchive": "https://www.ietf.org/jabber/logs/core?C=M;O=D", - "recordings": [ - { - "id": 107758, - "name": "recording-113-core-1", - "title": "Video recording for CORE on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=MLGvEEJGtc8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29408.ics" - } - }, - { - "id": 104520, - "sessionId": 29466, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ccamp", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ccamp", - "regular", - "rtg" - ], - "groupAcronym": "ccamp", - "groupName": "Common Control and Measurement Plane", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ccamp-00" - }, - "orderInMeeting": 1, - "short": "ccamp", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ccamp", - "chatArchive": "https://www.ietf.org/jabber/logs/ccamp?C=M;O=D", - "recordings": [ - { - "id": 107764, - "name": "recording-113-ccamp-1", - "title": "Video recording for CCAMP on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=UxRbfT52UF8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29466.ics" - } - }, - { - "id": 104151, - "sessionId": 29325, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "idr", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "idr", - "idr-sessb", - "regular", - "rtg" - ], - "groupAcronym": "idr", - "groupName": "Inter-Domain Routing", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-idr-05" - }, - "orderInMeeting": 2, - "short": "idr", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/idr", - "chatArchive": "https://www.ietf.org/jabber/logs/idr?C=M;O=D", - "recordings": [ - { - "id": 107757, - "name": "recording-113-idr-2", - "title": "Video recording for IDR on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=ciI302JHKNo" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29325.ics" - } - }, - { - "id": 104058, - "sessionId": 29435, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "dance", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "dance", - "regular", - "sec" - ], - "groupAcronym": "dance", - "groupName": "DANE Authentication for Network Clients Everywhere", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dance-04" - }, - "orderInMeeting": 1, - "short": "dance", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dance", - "chatArchive": "https://www.ietf.org/jabber/logs/dance?C=M;O=D", - "recordings": [ - { - "id": 107755, - "name": "recording-113-dance-1", - "title": "Video recording for DANCE on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=tWLNi_UkmS8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29435.ics" - } - }, - { - "id": 104152, - "sessionId": 29277, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "gnap", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "gnap", - "regular", - "sec" - ], - "groupAcronym": "gnap", - "groupName": "Grant Negotiation and Authorization Protocol", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-gnap-00" - }, - "orderInMeeting": 1, - "short": "gnap", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/gnap", - "chatArchive": "https://www.ietf.org/jabber/logs/gnap?C=M;O=D", - "recordings": [ - { - "id": 107744, - "name": "recording-113-gnap-1", - "title": "Video recording for GNAP on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=uSwuZ9yk830" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29277.ics" - } - }, - { - "id": 104153, - "sessionId": 29271, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "lamps", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "lamps", - "regular", - "sec" - ], - "groupAcronym": "lamps", - "groupName": "Limited Additional Mechanisms for PKIX and SMIME", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-lamps-00" - }, - "orderInMeeting": 1, - "short": "lamps", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/lamps", - "chatArchive": "https://www.ietf.org/jabber/logs/lamps?C=M;O=D", - "recordings": [ - { - "id": 107751, - "name": "recording-113-lamps-1", - "title": "Video recording for LAMPS on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=CXYKM4XeAd0" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29271.ics" - } - }, - { - "id": 104162, - "sessionId": 29381, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "tsvwg", - "duration": 7200, - "name": "Morning Session I", - "startDateTime": "2022-03-25T10:00:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "tsv", - "tsvwg", - "tsvwg-sessb" - ], - "groupAcronym": "tsvwg", - "groupName": "Transport Area Working Group", - "groupParent": { - "acronym": "tsv" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-tsvwg-07" - }, - "orderInMeeting": 2, - "short": "tsvwg", - "sessionToken": "sessb", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/tsvwg", - "chatArchive": "https://www.ietf.org/jabber/logs/tsvwg?C=M;O=D", - "recordings": [ - { - "id": 107743, - "name": "recording-113-tsvwg-2", - "title": "Video recording for TSVWG on 2022-03-25 at 10:00:00", - "url": "https://www.youtube.com/watch?v=VSMrtdvPWHw" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29381.ics" - } - }, - { - "id": 104185, - "sessionId": 29457, - "room": "Yard and Park Ensemble", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "Beverage and Snack Break", - "startDateTime": "2022-03-25T12:00:00", - "status": "sched", - "type": "break", - "isBoF": false, - "filterKeywords": [ - "beverage-and-snack-break", - "secretariat", - "secretariat-sesso", - "social" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 10, - "short": "Beverage and Snack Break", - "sessionToken": "sesso", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29457.ics" - } - }, - { - "id": 104155, - "sessionId": 29376, - "room": "Park Suite 8", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "emailcore", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "art", - "emailcore", - "regular" - ], - "groupAcronym": "emailcore", - "groupName": "Revision of core Email specifications", - "groupParent": { - "acronym": "art" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-emailcore-01" - }, - "orderInMeeting": 1, - "short": "emailcore", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/emailcore", - "chatArchive": "https://www.ietf.org/jabber/logs/emailcore?C=M;O=D", - "recordings": [ - { - "id": 107750, - "name": "recording-113-emailcore-1", - "title": "Video recording for EMAILCORE on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=9N8CQVAF_mM" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29376.ics" - } - }, - { - "id": 104141, - "sessionId": 29285, - "room": "Grand Park Hall 3", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "dprive", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "canceled", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "dprive", - "int", - "regular" - ], - "groupAcronym": "dprive", - "groupName": "DNS PRIVate Exchange", - "groupParent": { - "acronym": "int" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-dprive-06" - }, - "orderInMeeting": 1, - "short": "dprive", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/dprive", - "chatArchive": "https://www.ietf.org/jabber/logs/dprive?C=M;O=D", - "recordings": [], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29285.ics" - } - }, - { - "id": 104156, - "sessionId": 29343, - "room": "Park Suite 3", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "icnrg", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "icnrg", - "irtf", - "regular" - ], - "groupAcronym": "icnrg", - "groupName": "Information-Centric Networking", - "groupParent": { - "acronym": "irtf" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-icnrg-03" - }, - "orderInMeeting": 1, - "short": "icnrg", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/icnrg", - "chatArchive": "https://www.ietf.org/jabber/logs/icnrg?C=M;O=D", - "recordings": [ - { - "id": 107762, - "name": "recording-113-icnrg-1", - "title": "Video recording for ICNRG on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=kMHAA5NUy1k" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29343.ics" - } - }, - { - "id": 104157, - "sessionId": 29363, - "room": "Grand Klimt Hall 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "anima", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "anima", - "ops", - "regular" - ], - "groupAcronym": "anima", - "groupName": "Autonomic Networking Integrated Model and Approach", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-anima-00" - }, - "orderInMeeting": 1, - "short": "anima", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/anima", - "chatArchive": "https://www.ietf.org/jabber/logs/anima?C=M;O=D", - "recordings": [ - { - "id": 107759, - "name": "recording-113-anima-1", - "title": "Video recording for ANIMA on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=D7DAWKlCMU8" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29363.ics" - } - }, - { - "id": 104158, - "sessionId": 29287, - "room": "Park Suite 9", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "sidrops", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ops", - "regular", - "sidrops" - ], - "groupAcronym": "sidrops", - "groupName": "SIDR Operations", - "groupParent": { - "acronym": "ops" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-sidrops-03" - }, - "orderInMeeting": 1, - "short": "sidrops", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/sidrops", - "chatArchive": "https://www.ietf.org/jabber/logs/sidrops?C=M;O=D", - "recordings": [ - { - "id": 107761, - "name": "recording-113-sidrops-1", - "title": "Video recording for SIDROPS on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=5e211IkY_ic" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29287.ics" - } - }, - { - "id": 104159, - "sessionId": 29311, - "room": "Grand Park Hall 2", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "spring", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "regular", - "rtg", - "spring" - ], - "groupAcronym": "spring", - "groupName": "Source Packet Routing in Networking", - "groupParent": { - "acronym": "rtg" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-spring-01" - }, - "orderInMeeting": 1, - "short": "spring", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/spring", - "chatArchive": "https://www.ietf.org/jabber/logs/spring?C=M;O=D", - "recordings": [ - { - "id": 107760, - "name": "recording-113-spring-1", - "title": "Video recording for SPRING on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=SQZpMneGUpU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29311.ics" - } - }, - { - "id": 104160, - "sessionId": 29346, - "room": "Park Suite 2", - "location": { - "short": "M", - "name": "Mezzanine" - }, - "acronym": "ipsecme", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ipsecme", - "regular", - "sec" - ], - "groupAcronym": "ipsecme", - "groupName": "IP Security Maintenance and Extensions", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ipsecme-00" - }, - "orderInMeeting": 1, - "short": "ipsecme", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ipsecme", - "chatArchive": "https://www.ietf.org/jabber/logs/ipsecme?C=M;O=D", - "recordings": [ - { - "id": 107749, - "name": "recording-113-ipsecme-1", - "title": "Video recording for IPSECME on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=ubpSe_fiCuU" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29346.ics" - } - }, - { - "id": 104161, - "sessionId": 29397, - "room": "Grand Park Hall 1", - "location": { - "short": "G", - "name": "Ground Floor" - }, - "acronym": "ppm", - "duration": 7200, - "name": "Afternoon Session I", - "startDateTime": "2022-03-25T12:30:00", - "status": "sched", - "type": "regular", - "isBoF": false, - "filterKeywords": [ - "ppm", - "regular", - "sec" - ], - "groupAcronym": "ppm", - "groupName": "Privacy Preserving Measurement", - "groupParent": { - "acronym": "sec" - }, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": true, - "showAgenda": true - }, - "agenda": { - "url": "https://datatracker.ietf.org/meeting/113/materials/agenda-113-ppm-02" - }, - "orderInMeeting": 1, - "short": "ppm", - "sessionToken": null, - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/ppm", - "chatArchive": "https://www.ietf.org/jabber/logs/ppm?C=M;O=D", - "recordings": [ - { - "id": 107763, - "name": "recording-113-ppm-1", - "title": "Video recording for PPM on 2022-03-25 at 12:30:00", - "url": "https://www.youtube.com/watch?v=OKxpUofz9hQ" - } - ], - "videoStream": "https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream": "https://mp3.conf.meetecho.com/ietf113/{group.acronym}/{order_number}.m3u", - "webex": null, - "onsiteTool": "https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar": "/meeting/113/session/29397.ics" - } - }, - { - "id": 104534, - "sessionId": 29479, - "room": "Gather", - "location": {}, - "acronym": "secretariat", - "duration": 1800, - "name": "ISE Office Hours", - "startDateTime": "2022-03-25T14:00:00", - "status": "sched", - "type": "other", - "isBoF": false, - "filterKeywords": [ - "admin", - "ise-office-hours", - "secretariat", - "secretariat-sessbc" - ], - "groupAcronym": "secretariat", - "groupName": "Application Administrators", - "groupParent": {}, - "note": "", - "remoteInstructions": "", - "flags": { - "agenda": false, - "showAgenda": false - }, - "agenda": { - "url": null - }, - "orderInMeeting": 21, - "short": "ISE Office Hours", - "sessionToken": "sessbc", - "links": { - "chat": "https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive": "https://www.ietf.org/jabber/logs/secretariat?C=M;O=D", - "recordings": [], - "videoStream": null, - "audioStream": null, - "webex": null, - "onsiteTool": null, - "calendar": "/meeting/113/session/29479.ics" - } - } - ], - "floors": [ - { - "id": 43, - "image": "/media/floor/floorplan-113-ground-floor_Wa4jehl.png", - "name": "Ground Floor", - "short": "G", - "width": 4691, - "height": 3508, - "rooms": [ - { - "id": 812, - "name": "Green Room 1", - "functionalName": "Attendee Sign-Up (10)", - "slug": "green-room-1", - "left": 1810, - "right": 1980, - "top": 2280, - "bottom": 2450 - }, - { - "id": 807, - "name": "Grand Park Hall 1", - "functionalName": "Welcome Reception", - "slug": "grand-park-hall-1", - "left": 2530, - "right": 3600, - "top": 1980, - "bottom": 2400 - }, - { - "id": 803, - "name": "Park Ensemble", - "functionalName": "Registration", - "slug": "park-ensemble", - "left": 2030, - "right": 2450, - "top": 2450, - "bottom": 2840 - }, - { - "id": 801, - "name": "Grand Park Hall 3", - "functionalName": "Plenary", - "slug": "grand-park-hall-3", - "left": 2530, - "right": 3600, - "top": 2920, - "bottom": 3330 - }, - { - "id": 800, - "name": "Grand Park Hall 3", - "functionalName": "Breakout 8", - "slug": "grand-park-hall-3", - "left": 2530, - "right": 3600, - "top": 2920, - "bottom": 3330 - }, - { - "id": 799, - "name": "Grand Park Hall 2", - "functionalName": "Breakout 7", - "slug": "grand-park-hall-2", - "left": 2530, - "right": 3600, - "top": 2430, - "bottom": 2870 - }, - { - "id": 798, - "name": "Grand Park Hall 1", - "functionalName": "Breakout 6", - "slug": "grand-park-hall-1", - "left": 2530, - "right": 3600, - "top": 1980, - "bottom": 2400 - } - ] - }, - { - "id": 44, - "image": "/media/floor/floorplan-113-mezzanine_jUIzBAs.png", - "name": "Mezzanine", - "short": "M", - "width": 4691, - "height": 3133, - "rooms": [ - { - "id": 822, - "name": "Grand Klimt Hall 1/2", - "functionalName": "Hackathon Onsite", - "slug": "grand-klimt-hall-1-2", - "left": 1850, - "right": 2760, - "top": 440, - "bottom": 1300 - }, - { - "id": 821, - "name": "Park Suite 9", - "functionalName": "IEPG", - "slug": "park-suite-9", - "left": 240, - "right": 820, - "top": 590, - "bottom": 890 - }, - { - "id": 820, - "name": "Park Suite 9", - "functionalName": "Host Speaker Series", - "slug": "park-suite-9", - "left": 240, - "right": 820, - "top": 590, - "bottom": 890 - }, - { - "id": 819, - "name": "Park Suite 9", - "functionalName": "Tutorial", - "slug": "park-suite-9", - "left": 240, - "right": 820, - "top": 590, - "bottom": 890 - }, - { - "id": 817, - "name": "Park Suite 1", - "functionalName": "IAB", - "slug": "park-suite-1", - "left": 1540, - "right": 1810, - "top": 2310, - "bottom": 2640 - }, - { - "id": 816, - "name": "Park Suite 4", - "functionalName": "Secretariat", - "slug": "park-suite-4", - "left": 540, - "right": 860, - "top": 2310, - "bottom": 2640 - }, - { - "id": 815, - "name": "Park Suite 5", - "functionalName": "NOC", - "slug": "park-suite-5", - "left": 240, - "right": 540, - "top": 2200, - "bottom": 2640 - }, - { - "id": 814, - "name": "Park Suite 6", - "functionalName": "IESG", - "slug": "park-suite-6", - "left": 240, - "right": 540, - "top": 1530, - "bottom": 1820 - }, - { - "id": 813, - "name": "Park Suite 10", - "functionalName": "LLC", - "slug": "park-suite-10", - "left": 250, - "right": 800, - "top": 415, - "bottom": 560 - }, - { - "id": 809, - "name": "Grand Klimt Hall 3", - "functionalName": "Attendee Sign-Up (40)", - "slug": "grand-klimt-hall-3", - "left": 2770, - "right": 2980, - "top": 440, - "bottom": 1100 - }, - { - "id": 806, - "name": "Grand Klimt Hall 1", - "functionalName": "Lounge", - "slug": "grand-klimt-hall-1", - "left": 1850, - "right": 2170, - "top": 440, - "bottom": 1300 - }, - { - "id": 805, - "name": "Grand Klimt Hall 1/2", - "functionalName": "Hackathon", - "slug": "grand-klimt-hall-1-2", - "left": 1850, - "right": 2760, - "top": 440, - "bottom": 1300 - }, - { - "id": 802, - "name": "Park Suite 7", - "functionalName": "Terminal Room", - "slug": "park-suite-7", - "left": 240, - "right": 820, - "top": 1220, - "bottom": 1520 - }, - { - "id": 797, - "name": "Grand Klimt Hall 2", - "functionalName": "Breakout 5", - "slug": "grand-klimt-hall-2", - "left": 2180, - "right": 2760, - "top": 440, - "bottom": 1300 - }, - { - "id": 796, - "name": "Park Suite 9", - "functionalName": "Breakout 4", - "slug": "park-suite-9", - "left": 240, - "right": 820, - "top": 590, - "bottom": 890 - }, - { - "id": 795, - "name": "Park Suite 8", - "functionalName": "Breakout 3", - "slug": "park-suite-8", - "left": 240, - "right": 820, - "top": 890, - "bottom": 1220 - }, - { - "id": 794, - "name": "Park Suite 3", - "functionalName": "Breakout 2", - "slug": "park-suite-3", - "left": 880, - "right": 1160, - "top": 2320, - "bottom": 2640 - }, - { - "id": 793, - "name": "Park Suite 2", - "functionalName": "Breakout 1", - "slug": "park-suite-2", - "left": 1220, - "right": 1480, - "top": 2320, - "bottom": 2640 - } - ] - } - ] -} diff --git a/cypress/fixtures/agenda-114-data.json b/cypress/fixtures/agenda-114-data.json deleted file mode 100644 index eda394707..000000000 --- a/cypress/fixtures/agenda-114-data.json +++ /dev/null @@ -1,11660 +0,0 @@ -{ - "meeting":{ - "number":"114", - "city":"Philadelphia", - "startDate":"2022-07-23", - "endDate":"2022-07-29", - "updated":"2022-07-28T07:32:03-07:00", - "timezone":"America/New_York", - "infoNote":"Times on the text agenda are shown in Philadelphia local time, UTC -4.
\r\nPlease see our Meeting FAQ for information about COVID-19 preparations and more.
\r\nTo see information on public side meetings, visit the meeting wiki. \r\nGeneral meeting information is available on the meeting page of the IETF website.
\r\nFor our social/hallway space, please visit Gather. Password: notewell
\r\nFor more information on Meetecho, see our guides for Chairs and Participants.", - "warningNote":"" - }, - "categories":[ - [ - { - "label":"ART", - "keyword":"art", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"artart", - "keyword":"artart", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"avtcore", - "keyword":"avtcore", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"calext", - "keyword":"calext", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"cbor", - "keyword":"cbor", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"cdni", - "keyword":"cdni", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"core", - "keyword":"core", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"dispatch", - "keyword":"dispatch", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"dmarc", - "keyword":"dmarc", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"emailcore", - "keyword":"emailcore", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"httpapi", - "keyword":"httpapi", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"httpbis", - "keyword":"httpbis", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"jmap", - "keyword":"jmap", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"moq", - "keyword":"moq", - "toggled_by":[ - "bof", - "art" - ], - "is_bof":true - }, - { - "label":"regext", - "keyword":"regext", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"scim", - "keyword":"scim", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"sedate", - "keyword":"sedate", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"stir", - "keyword":"stir", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"tigress", - "keyword":"tigress", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"uta", - "keyword":"uta", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"webtrans", - "keyword":"webtrans", - "toggled_by":[ - "art" - ], - "is_bof":false - }, - { - "label":"wish", - "keyword":"wish", - "toggled_by":[ - "art" - ], - "is_bof":false - } - ] - }, - { - "label":"GEN", - "keyword":"gen", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"gendispatch", - "keyword":"gendispatch", - "toggled_by":[ - "gen" - ], - "is_bof":false - } - ] - }, - { - "label":"INT", - "keyword":"int", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"6lo", - "keyword":"6lo", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"6man", - "keyword":"6man", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"add", - "keyword":"add", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"dhc", - "keyword":"dhc", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"dmm", - "keyword":"dmm", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"dnssd", - "keyword":"dnssd", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"drip", - "keyword":"drip", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"intarea", - "keyword":"intarea", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"lpwan", - "keyword":"lpwan", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"madinas", - "keyword":"madinas", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"ntp", - "keyword":"ntp", - "toggled_by":[ - "int" - ], - "is_bof":false - }, - { - "label":"snac", - "keyword":"snac", - "toggled_by":[ - "bof", - "int" - ], - "is_bof":true - } - ] - }, - { - "label":"OPS", - "keyword":"ops", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"anima", - "keyword":"anima", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"bmwg", - "keyword":"bmwg", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"dnsop", - "keyword":"dnsop", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"grow", - "keyword":"grow", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"iotops", - "keyword":"iotops", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"mboned", - "keyword":"mboned", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"mops", - "keyword":"mops", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"netconf", - "keyword":"netconf", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"netmod", - "keyword":"netmod", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"opsawg", - "keyword":"opsawg", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"opsec", - "keyword":"opsec", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"sidrops", - "keyword":"sidrops", - "toggled_by":[ - "ops" - ], - "is_bof":false - }, - { - "label":"v6ops", - "keyword":"v6ops", - "toggled_by":[ - "ops" - ], - "is_bof":false - } - ] - }, - { - "label":"RTG", - "keyword":"rtg", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"bess", - "keyword":"bess", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"bier", - "keyword":"bier", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"ccamp", - "keyword":"ccamp", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"detnet", - "keyword":"detnet", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"idr", - "keyword":"idr", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"lisp", - "keyword":"lisp", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"lsr", - "keyword":"lsr", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"manet", - "keyword":"manet", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"mpls", - "keyword":"mpls", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"msr6", - "keyword":"msr6", - "toggled_by":[ - "bof", - "rtg" - ], - "is_bof":true - }, - { - "label":"pals", - "keyword":"pals", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"pce", - "keyword":"pce", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"pim", - "keyword":"pim", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"raw", - "keyword":"raw", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"rift", - "keyword":"rift", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"roll", - "keyword":"roll", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"rtgarea", - "keyword":"rtgarea", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"rtgwg", - "keyword":"rtgwg", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"savnet", - "keyword":"savnet", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"spring", - "keyword":"spring", - "toggled_by":[ - "rtg" - ], - "is_bof":false - }, - { - "label":"teas", - "keyword":"teas", - "toggled_by":[ - "rtg" - ], - "is_bof":false - } - ] - }, - { - "label":"SEC", - "keyword":"sec", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"acme", - "keyword":"acme", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"cose", - "keyword":"cose", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"dance", - "keyword":"dance", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"emu", - "keyword":"emu", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"gnap", - "keyword":"gnap", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"i2nsf", - "keyword":"i2nsf", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"ipsecme", - "keyword":"ipsecme", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"jwp", - "keyword":"jwp", - "toggled_by":[ - "bof", - "sec" - ], - "is_bof":true - }, - { - "label":"lake", - "keyword":"lake", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"lamps", - "keyword":"lamps", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"mls", - "keyword":"mls", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"oauth", - "keyword":"oauth", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"ohai", - "keyword":"ohai", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"openpgp", - "keyword":"openpgp", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"ppm", - "keyword":"ppm", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"privacypass", - "keyword":"privacypass", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"rats", - "keyword":"rats", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"satp", - "keyword":"satp", - "toggled_by":[ - "bof", - "sec" - ], - "is_bof":true - }, - { - "label":"scitt", - "keyword":"scitt", - "toggled_by":[ - "bof", - "sec" - ], - "is_bof":true - }, - { - "label":"secdispatch", - "keyword":"secdispatch", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"suit", - "keyword":"suit", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"teep", - "keyword":"teep", - "toggled_by":[ - "sec" - ], - "is_bof":false - }, - { - "label":"tls", - "keyword":"tls", - "toggled_by":[ - "sec" - ], - "is_bof":false - } - ] - }, - { - "label":"TSV", - "keyword":"tsv", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"alto", - "keyword":"alto", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"dtn", - "keyword":"dtn", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"ippm", - "keyword":"ippm", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"masque", - "keyword":"masque", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"nfsv4", - "keyword":"nfsv4", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"quic", - "keyword":"quic", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"tcpm", - "keyword":"tcpm", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"tsvarea", - "keyword":"tsvarea", - "toggled_by":[ - "tsv" - ], - "is_bof":false - }, - { - "label":"tsvwg", - "keyword":"tsvwg", - "toggled_by":[ - "tsv" - ], - "is_bof":false - } - ] - } - ], - [ - { - "label":"IAB", - "keyword":"iab", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"edm", - "keyword":"edm", - "toggled_by":[ - "iab" - ], - "is_bof":false - }, - { - "label":"iabopen", - "keyword":"iabopen", - "toggled_by":[ - "iab" - ], - "is_bof":false - } - ] - }, - { - "label":"IRTF", - "keyword":"irtf", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"anrw", - "keyword":"anrw", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"cfrg", - "keyword":"cfrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"dinrg", - "keyword":"dinrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"gaia", - "keyword":"gaia", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"hrpc", - "keyword":"hrpc", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"iccrg", - "keyword":"iccrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"icnrg", - "keyword":"icnrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"irtfopen", - "keyword":"irtfopen", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"maprg", - "keyword":"maprg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"nmrg", - "keyword":"nmrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"panrg", - "keyword":"panrg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - }, - { - "label":"pearg", - "keyword":"pearg", - "toggled_by":[ - "irtf" - ], - "is_bof":false - } - ] - } - ], - [ - { - "label":"Administrative", - "keyword":"admin", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"IETF Registration", - "keyword":"ietf-registration", - "toggled_by":[ - "admin", - "secretariat" - ], - "is_bof":false - } - ] - }, - { - "label":"Coding", - "keyword":"coding", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"Hackathon", - "keyword":"hackathon", - "toggled_by":[ - "coding", - "hackathon" - ], - "is_bof":false - }, - { - "label":"Code Sprint", - "keyword":"code-sprint", - "toggled_by":[ - "coding", - "tools" - ], - "is_bof":false - } - ] - }, - { - "label":"Office hours", - "keyword":"officehours", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"Transport AD Office Hours", - "keyword":"transport-ad-office-hours", - "toggled_by":[ - "officehours", - "iesg" - ], - "is_bof":false - }, - { - "label":"Routing AD Office Hours", - "keyword":"routing-ad-office-hours", - "toggled_by":[ - "officehours", - "iesg" - ], - "is_bof":false - }, - { - "label":"RPC Office Hours", - "keyword":"rpc-office-hours", - "toggled_by":[ - "officehours", - "rpc" - ], - "is_bof":false - }, - { - "label":"IANA Office Hours", - "keyword":"iana-office-hours", - "toggled_by":[ - "officehours", - "secretariat" - ], - "is_bof":false - }, - { - "label":"ISE Office Hours", - "keyword":"ise-office-hours", - "toggled_by":[ - "officehours", - "secretariat" - ], - "is_bof":false - }, - { - "label":"IANA Office Hours Online", - "keyword":"iana-office-hours-online", - "toggled_by":[ - "officehours", - "secretariat" - ], - "is_bof":false - }, - { - "label":"Internet AD Office Hours", - "keyword":"internet-ad-office-hours", - "toggled_by":[ - "officehours", - "iesg" - ], - "is_bof":false - }, - { - "label":"Security AD Office Hours", - "keyword":"security-ad-office-hours", - "toggled_by":[ - "officehours", - "iesg" - ], - "is_bof":false - }, - { - "label":"IETF Chair Office Hours", - "keyword":"ietf-chair-office-hours", - "toggled_by":[ - "officehours", - "ietf" - ], - "is_bof":false - } - ] - }, - { - "label":"Open meeting", - "keyword":"open_meeting", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"IETF Wiki Content Sprint", - "keyword":"ietf-wiki-content-sprint", - "toggled_by":[ - "open_meeting", - "emodir" - ], - "is_bof":false - }, - { - "label":"EMODIR Meeting", - "keyword":"emodir-meeting", - "toggled_by":[ - "open_meeting", - "emodir" - ], - "is_bof":false - }, - { - "label":"WG Chairs Forum", - "keyword":"wg-chairs-forum", - "toggled_by":[ - "open_meeting", - "emodir" - ], - "is_bof":false - }, - { - "label":"Newcomers' Feedback Session", - "keyword":"newcomers-feedback-session", - "toggled_by":[ - "open_meeting", - "emodir" - ], - "is_bof":false - } - ] - }, - { - "label":"Plenary", - "keyword":"plenary", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"IETF Plenary", - "keyword":"ietf-plenary", - "toggled_by":[ - "plenary", - "ietf" - ], - "is_bof":false - } - ] - }, - { - "label":"Presentation", - "keyword":"presentation", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"Hackathon Kickoff", - "keyword":"hackathon-kickoff", - "toggled_by":[ - "presentation", - "hackathon" - ], - "is_bof":false - }, - { - "label":"IEPG", - "keyword":"iepg", - "toggled_by":[ - "presentation", - "iepg" - ], - "is_bof":false - }, - { - "label":"Hackathon Project Results Presentations", - "keyword":"hackathon-project-results-presentations", - "toggled_by":[ - "presentation", - "hackathon" - ], - "is_bof":false - }, - { - "label":"Hot RFC", - "keyword":"hot-rfc", - "toggled_by":[ - "presentation", - "hotrfc" - ], - "is_bof":false - }, - { - "label":"", - "keyword":null, - "toggled_by":[ - "presentation", - "tdd" - ], - "is_bof":false - }, - { - "label":"Host Speaker Series", - "keyword":"host-speaker-series", - "toggled_by":[ - "presentation", - "ietf" - ], - "is_bof":false - } - ] - }, - { - "label":"Social", - "keyword":"social", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"Newcomers' Quick Connections", - "keyword":"newcomers-quick-connections", - "toggled_by":[ - "social", - "emodir" - ], - "is_bof":false - }, - { - "label":"Welcome Reception", - "keyword":"welcome-reception", - "toggled_by":[ - "social", - "ietf" - ], - "is_bof":false - }, - { - "label":"Continental Breakfast", - "keyword":"continental-breakfast", - "toggled_by":[ - "social", - "secretariat" - ], - "is_bof":false - }, - { - "label":"Systers Networking Event", - "keyword":"systers-networking-event", - "toggled_by":[ - "social", - "systers" - ], - "is_bof":false - }, - { - "label":"Break", - "keyword":"break", - "toggled_by":[ - "social", - "secretariat" - ], - "is_bof":false - }, - { - "label":"Beverage and Snack Break", - "keyword":"beverage-and-snack-break", - "toggled_by":[ - "social", - "secretariat" - ], - "is_bof":false - }, - { - "label":"Hackdemo Happy Hour", - "keyword":"hackdemo-happy-hour", - "toggled_by":[ - "social", - "hackathon" - ], - "is_bof":false - }, - { - "label":"Newcomers' Dinner (Open to newcomers. Note that pre-registration is required and a $25USD fee will be charged.)", - "keyword":"newcomers-dinner-open-to-newcomers-note-that-pre-registration-is-required-and-a-25usd-fee-will-be-charged", - "toggled_by":[ - "social", - "secretariat" - ], - "is_bof":false - }, - { - "label":"Virtual Newcomers Coffee Break", - "keyword":"virtual-newcomers-coffee-break", - "toggled_by":[ - "social", - "emodir" - ], - "is_bof":false - }, - { - "label":"IETF 114 Social Event at the Barnes Foundation - Hosted by Comcast-NBCUniversal", - "keyword":"ietf-114-social-event-at-the-barnes-foundation-hosted-by-comcast-nbcuniversal", - "toggled_by":[ - "social", - "secretariat" - ], - "is_bof":false - }, - { - "label":"ART ART & i18ndir breakfast", - "keyword":"art-art-i18ndir-breakfast", - "toggled_by":[ - "social", - "artart" - ], - "is_bof":false - }, - { - "label":"Systers Lunch", - "keyword":"systers-lunch", - "toggled_by":[ - "social", - "systers" - ], - "is_bof":false - } - ] - }, - { - "label":"Tutorial", - "keyword":"tutorial", - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"Tutorial: Newcomers' Overview", - "keyword":"tutorial-newcomers-overview", - "toggled_by":[ - "tutorial", - "emodir" - ], - "is_bof":false - } - ] - }, - { - "label":null, - "keyword":null, - "toggled_by":[ - - ], - "is_bof":false, - "children":[ - { - "label":"BoF", - "keyword":"bof", - "toggled_by":[ - - ], - "is_bof":false - }, - { - "label":"emodir", - "keyword":"emodir", - "toggled_by":[ - "gen" - ], - "is_bof":false - }, - { - "label":"Hackathon", - "keyword":"hackathon", - "toggled_by":[ - "gen" - ], - "is_bof":false - }, - { - "label":"hotrfc", - "keyword":"hotrfc", - "toggled_by":[ - "ietf" - ], - "is_bof":false - }, - { - "label":"IEPG", - "keyword":"iepg", - "toggled_by":[ - - ], - "is_bof":false - }, - { - "label":"rpc", - "keyword":"rpc", - "toggled_by":[ - "rfceditor" - ], - "is_bof":false - }, - { - "label":"rsab", - "keyword":"rsab", - "toggled_by":[ - "rfceditor" - ], - "is_bof":false - }, - { - "label":"rswg", - "keyword":"rswg", - "toggled_by":[ - "rfceditor" - ], - "is_bof":false - }, - { - "label":"Systers", - "keyword":"systers", - "toggled_by":[ - "gen" - ], - "is_bof":false - }, - { - "label":"tdd", - "keyword":"tdd", - "toggled_by":[ - - ], - "is_bof":false - }, - { - "label":"Tools", - "keyword":"tools", - "toggled_by":[ - "gen" - ], - "is_bof":false - } - ] - } - ] - ], - "isCurrentMeeting":true, - "useHedgeDoc":true, - "schedule":[ - { - "id":105728, - "sessionId":29745, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hackathon", - "duration":41400, - "name":"Hackathon", - "startDateTime":"2022-07-23T09:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "coding", - "hackathon", - "hackathon-sessc" - ], - "groupAcronym":"hackathon", - "groupName":"Hackathon", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hackathon-sessc-00" - }, - "orderInMeeting":1, - "short":"Hackathon", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hackathon", - "recordings":[ - { - "id":109332, - "name":"recording-114-hackathon-2", - "title":"Video recording for HACKATHON on 2022-07-23 at 09:30:00", - "url":"https://www.youtube.com/watch?v=HrCOUeSGagU" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29745.ics" - } - }, - { - "id":105729, - "sessionId":29744, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"tools", - "duration":28800, - "name":"Code Sprint", - "startDateTime":"2022-07-23T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "code-sprint", - "coding", - "tools" - ], - "groupAcronym":"tools", - "groupName":"The Tools Team", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"Code Sprint", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tools", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tools", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29744.ics" - } - }, - { - "id":105730, - "sessionId":29629, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hackathon", - "duration":1800, - "name":"Hackathon Kickoff", - "startDateTime":"2022-07-23T10:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "hackathon", - "hackathon-kickoff", - "hackathon-sessa", - "presentation" - ], - "groupAcronym":"hackathon", - "groupName":"Hackathon", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=hackathon&item=2", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hackathon-sessa-00" - }, - "orderInMeeting":2, - "short":"Hackathon Kickoff", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hackathon", - "recordings":[ - { - "id":109190, - "name":"recording-114-hackathon-1", - "title":"Video recording for HACKATHON on 2022-07-23 at 10:30:00", - "url":"https://www.youtube.com/watch?v=eQqwbQ0zqwI" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29629.ics" - } - }, - { - "id":106079, - "sessionId":29784, - "room":"Salon 10", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emodir", - "duration":14400, - "name":"IETF Wiki Content Sprint", - "startDateTime":"2022-07-23T14:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sesse", - "ietf-wiki-content-sprint", - "open_meeting" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-emodir-sesse-00" - }, - "orderInMeeting":1, - "short":"IETF Wiki Content Sprint", - "sessionToken":"sesse", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - { - "id":109331, - "name":"recording-114-emodir-1", - "title":"Video recording for EMODIR on 2022-07-23 at 14:00:00", - "url":"https://www.youtube.com/watch?v=u3Wd4xCEAu8" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29784.ics" - } - }, - { - "id":105731, - "sessionId":29746, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hackathon", - "duration":23400, - "name":"Hackathon", - "startDateTime":"2022-07-24T09:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "coding", - "hackathon", - "hackathon-sessd" - ], - "groupAcronym":"hackathon", - "groupName":"Hackathon", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hackathon-sessd-00" - }, - "orderInMeeting":3, - "short":"Hackathon", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hackathon", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29746.ics" - } - }, - { - "id":105732, - "sessionId":29548, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"iepg", - "duration":7200, - "name":"IEPG Meeting", - "startDateTime":"2022-07-24T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iepg", - "presentation" - ], - "groupAcronym":"iepg", - "groupName":"IEPG - Internet Engineering and Planning Group", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=iepg", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-iepg-sessa-00" - }, - "orderInMeeting":1, - "short":"IEPG", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iepg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iepg", - "recordings":[ - { - "id":109290, - "name":"recording-114-iepg-1", - "title":"Video recording for IEPG on 2022-07-24 at 10:00:00", - "url":"https://www.youtube.com/watch?v=Pz6wIu1gaXE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29548.ics" - } - }, - { - "id":105733, - "sessionId":29722, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":28800, - "name":"IETF Registration", - "startDateTime":"2022-07-24T10:00:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessa" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"IETF Registration", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29722.ics" - } - }, - { - "id":105734, - "sessionId":29741, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emodir", - "duration":3600, - "name":"Tutorial: Newcomers", - "startDateTime":"2022-07-24T12:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sessb", - "tutorial", - "tutorial-newcomers-overview" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=emodir&short=&item=2", - "flags":{ - "agenda":false, - "showAgenda":true - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"Tutorial: Newcomers' Overview", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - { - "id":109349, - "name":"recording-114-emodir-2", - "title":"Video recording for EMODIR on 2022-07-24 at 12:30:00", - "url":"https://www.youtube.com/watch?v=c7F5mkuCNrk" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29741.ics" - } - }, - { - "id":105735, - "sessionId":29630, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hackathon", - "duration":7200, - "name":"Hackathon Results Presentations", - "startDateTime":"2022-07-24T14:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "hackathon", - "hackathon-project-results-presentations", - "hackathon-sessb", - "presentation" - ], - "groupAcronym":"hackathon", - "groupName":"Hackathon", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=hackathon&item=4", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hackathon-sessb-00" - }, - "orderInMeeting":4, - "short":"Hackathon Project Results Presentations", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hackathon", - "recordings":[ - { - "id":109348, - "name":"recording-114-hackathon-3", - "title":"Video recording for HACKATHON on 2022-07-24 at 14:00:00", - "url":"https://www.youtube.com/watch?v=eQqwbQ0zqwI" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29630.ics" - } - }, - { - "id":105736, - "sessionId":29740, - "room":"Liberty C/D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"emodir", - "duration":3600, - "name":"Newcomers' Quick Connections (Note that pre-registration is required)", - "startDateTime":"2022-07-24T16:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sessa", - "newcomers-quick-connections", - "social" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"Newcomers' Quick Connections", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29740.ics" - } - }, - { - "id":106069, - "sessionId":29774, - "room":"Salon 9", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"iesg", - "duration":3600, - "name":"TSV AD Office Hours", - "startDateTime":"2022-07-24T16:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iesg", - "iesg-sessc", - "officehours", - "transport-ad-office-hours" - ], - "groupAcronym":"iesg", - "groupName":"Internet Engineering Steering Group", - "groupParent":{ - "acronym":"ietf" - }, - "note":"", - "remoteInstructions":"https://ietf.webex.com/ietf/j.php?MTID=ma0a676b89c1f47cd4c5869df4a8eb3ce", - "flags":{ - "agenda":false, - "showAgenda":true - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"Transport AD Office Hours", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iesg", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29774.ics" - } - }, - { - "id":106063, - "sessionId":29768, - "room":"Salon 2", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"iesg", - "duration":2700, - "name":"Routing AD Office Hours", - "startDateTime":"2022-07-24T16:15:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iesg", - "iesg-sessa", - "officehours", - "routing-ad-office-hours" - ], - "groupAcronym":"iesg", - "groupName":"Internet Engineering Steering Group", - "groupParent":{ - "acronym":"ietf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"Routing AD Office Hours", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iesg", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29768.ics" - } - }, - { - "id":105737, - "sessionId":29729, - "room":"Liberty C/D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"ietf", - "duration":7200, - "name":"Welcome Reception", - "startDateTime":"2022-07-24T17:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ietf", - "ietf-sessb", - "social", - "welcome-reception" - ], - "groupAcronym":"ietf", - "groupName":"IETF", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"Welcome Reception", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ietf", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ietf", - "recordings":[ - { - "id":109928, - "name":"recording-114-ietf-2", - "title":"Video recording for IETF on 2022-07-24 at 17:00:00", - "url":"https://www.youtube.com/watch?v=6SLR7lftORY" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29729.ics" - } - }, - { - "id":106058, - "sessionId":29764, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hotrfc", - "duration":7200, - "name":"Hot RFC Lightning Talks", - "startDateTime":"2022-07-24T18:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "hot-rfc", - "hotrfc", - "presentation" - ], - "groupAcronym":"hotrfc", - "groupName":"Hot RFC Lightning Talks", - "groupParent":{ - "acronym":"ietf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hotrfc-sessa-18" - }, - "orderInMeeting":1, - "short":"Hot RFC", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hotrfc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hotrfc", - "recordings":[ - { - "id":109375, - "name":"recording-114-hotrfc-1", - "title":"Video recording for HOTRFC on 2022-07-24 at 18:00:00", - "url":"https://www.youtube.com/watch?v=VdZ2h7vUecw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29764.ics" - } - }, - { - "id":105738, - "sessionId":29747, - "room":"Liberty Ballroom Foyer & Independence Foyer", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Continental Breakfast", - "startDateTime":"2022-07-25T08:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "continental-breakfast", - "secretariat", - "secretariat-sessq", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"Continental Breakfast", - "sessionToken":"sessq", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29747.ics" - } - }, - { - "id":105739, - "sessionId":29760, - "room":"Horizons Ballroom", - "location":{ - - }, - "acronym":"systers", - "duration":3600, - "name":"Systers Networking Event", - "startDateTime":"2022-07-25T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "social", - "systers", - "systers-networking-event", - "systers-sessa" - ], - "groupAcronym":"systers", - "groupName":"Systers", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"Systers Networking Event", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/systers", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/systers", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29760.ics" - } - }, - { - "id":106067, - "sessionId":29773, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rpc", - "duration":30600, - "name":"RPC Office Hours", - "startDateTime":"2022-07-25T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "officehours", - "rpc", - "rpc-office-hours", - "rpc-sessd" - ], - "groupAcronym":"rpc", - "groupName":"RFC Production Center", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"RPC Office Hours", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rpc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rpc", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29773.ics" - } - }, - { - "id":105740, - "sessionId":29723, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":28800, - "name":"IETF Registration", - "startDateTime":"2022-07-25T08:30:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessb" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"IETF Registration", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29723.ics" - } - }, - { - "id":106077, - "sessionId":29782, - "room":"Philadelphia South", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"rsab", - "duration":4800, - "name":"Session 0", - "startDateTime":"2022-07-25T08:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rsab" - ], - "groupAcronym":"rsab", - "groupName":"RFC Series Approval Board", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=rsab", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rsab-02" - }, - "orderInMeeting":1, - "short":"rsab", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rsab", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rsab", - "recordings":[ - { - "id":109878, - "name":"recording-114-rsab-1", - "title":"Video recording for RSAB on 2022-07-25 at 08:30:00", - "url":"https://www.youtube.com/watch?v=t1DxYS5Ky2c" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29782.ics" - } - }, - { - "id":106081, - "sessionId":29786, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":30600, - "name":"IANA Office Hours", - "startDateTime":"2022-07-25T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours", - "officehours", - "secretariat", - "secretariat-sessbd" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"IANA Office Hours", - "sessionToken":"sessbd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29786.ics" - } - }, - { - "id":105741, - "sessionId":29754, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":1800, - "name":"ISE Office Hours", - "startDateTime":"2022-07-25T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ise-office-hours", - "officehours", - "secretariat", - "secretariat-sessw" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"ISE Office Hours", - "sessionToken":"sessw", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29754.ics" - } - }, - { - "id":106082, - "sessionId":29790, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":27000, - "name":"IANA Office Hours - Virtual", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours-online", - "officehours", - "secretariat", - "secretariat-sessbh" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"IANA Office Hours Online", - "sessionToken":"sessbh", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29790.ics" - } - }, - { - "id":105742, - "sessionId":29616, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"dispatch", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "dispatch", - "regular" - ], - "groupAcronym":"dispatch", - "groupName":"Dispatch", - "groupParent":{ - "acronym":"art" - }, - "note":"Joint with ARTAREA", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dispatch-00" - }, - "orderInMeeting":1, - "short":"dispatch", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dispatch", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dispatch", - "recordings":[ - { - "id":109679, - "name":"recording-114-dispatch-1", - "title":"Video recording for DISPATCH on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=YyykUxLQhrc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29616.ics" - } - }, - { - "id":105743, - "sessionId":29718, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"snac", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "bof", - "int", - "regular", - "snac" - ], - "groupAcronym":"snac", - "groupName":"Stub Network Auto Configuration for IPv6", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-snac-01" - }, - "orderInMeeting":1, - "short":"snac", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/snac", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/snac", - "recordings":[ - { - "id":109672, - "name":"recording-114-snac-1", - "title":"Video recording for SNAC on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=NOxCvFTEui8" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29718.ics" - } - }, - { - "id":105744, - "sessionId":29605, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"cfrg", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "cfrg", - "irtf", - "regular" - ], - "groupAcronym":"cfrg", - "groupName":"Crypto Forum", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-cfrg-04" - }, - "orderInMeeting":1, - "short":"cfrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/cfrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/cfrg", - "recordings":[ - { - "id":109675, - "name":"recording-114-cfrg-1", - "title":"Video recording for CFRG on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=j8_MowXG82U" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29605.ics" - } - }, - { - "id":105745, - "sessionId":29534, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"netconf", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "netconf", - "ops", - "regular" - ], - "groupAcronym":"netconf", - "groupName":"Network Configuration", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-netconf-03" - }, - "orderInMeeting":1, - "short":"netconf", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/netconf", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/netconf", - "recordings":[ - { - "id":109673, - "name":"recording-114-netconf-1", - "title":"Video recording for NETCONF on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=a4ygZaoo7cw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29534.ics" - } - }, - { - "id":105746, - "sessionId":29625, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"bier", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "bier", - "regular", - "rtg" - ], - "groupAcronym":"bier", - "groupName":"Bit Indexed Explicit Replication", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-bier-03" - }, - "orderInMeeting":1, - "short":"bier", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/bier", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/bier", - "recordings":[ - { - "id":109677, - "name":"recording-114-bier-1", - "title":"Video recording for BIER on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=idQKP2ue85U" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29625.ics" - } - }, - { - "id":105747, - "sessionId":29552, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"teas", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rtg", - "teas" - ], - "groupAcronym":"teas", - "groupName":"Traffic Engineering Architecture and Signaling", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-teas-00" - }, - "orderInMeeting":1, - "short":"teas", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/teas", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/teas", - "recordings":[ - { - "id":109680, - "name":"recording-114-teas-1", - "title":"Video recording for TEAS on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=HyM36Y0rSik" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29552.ics" - } - }, - { - "id":105878, - "sessionId":29535, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"oauth", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "oauth", - "regular", - "sec" - ], - "groupAcronym":"oauth", - "groupName":"Web Authorization Protocol", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-oauth-01" - }, - "orderInMeeting":1, - "short":"oauth", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/oauth", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/oauth", - "recordings":[ - { - "id":109667, - "name":"recording-114-oauth-1", - "title":"Video recording for OAUTH on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=KAB1-pph7Ck" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29535.ics" - } - }, - { - "id":105749, - "sessionId":29562, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"rats", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-25T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "rats", - "regular", - "sec" - ], - "groupAcronym":"rats", - "groupName":"Remote ATtestation ProcedureS", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rats-04" - }, - "orderInMeeting":1, - "short":"rats", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rats", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rats", - "recordings":[ - { - "id":109678, - "name":"recording-114-rats-1", - "title":"Video recording for RATS on 2022-07-25 at 10:00:00", - "url":"https://www.youtube.com/watch?v=Fgy20yeT4Eo" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29562.ics" - } - }, - { - "id":105750, - "sessionId":29730, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":5400, - "name":"Break", - "startDateTime":"2022-07-25T12:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessg", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"Break", - "sessionToken":"sessg", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29730.ics" - } - }, - { - "id":106064, - "sessionId":29769, - "room":"Salon 2", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"iesg", - "duration":3600, - "name":"INT AD Office Hours", - "startDateTime":"2022-07-25T12:15:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iesg", - "iesg-sessb", - "internet-ad-office-hours", - "officehours" - ], - "groupAcronym":"iesg", - "groupName":"Internet Engineering Steering Group", - "groupParent":{ - "acronym":"ietf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"Internet AD Office Hours", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iesg", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29769.ics" - } - }, - { - "id":106078, - "sessionId":29783, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"iesg", - "duration":3600, - "name":"SEC AD Office Hours", - "startDateTime":"2022-07-25T12:15:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iesg", - "iesg-sessd", - "officehours", - "security-ad-office-hours" - ], - "groupAcronym":"iesg", - "groupName":"Internet Engineering Steering Group", - "groupParent":{ - "acronym":"ietf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"Security AD Office Hours", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iesg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iesg", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29783.ics" - } - }, - { - "id":105862, - "sessionId":29554, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"sedate", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "sedate" - ], - "groupAcronym":"sedate", - "groupName":"Serialising Extended Data About Times and Events", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-sedate-01" - }, - "orderInMeeting":1, - "short":"sedate", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/sedate", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/sedate", - "recordings":[ - { - "id":109682, - "name":"recording-114-sedate-1", - "title":"Video recording for SEDATE on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=2RuCoZpmPUM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29554.ics" - } - }, - { - "id":105752, - "sessionId":29669, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"6lo", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "6lo", - "int", - "regular" - ], - "groupAcronym":"6lo", - "groupName":"IPv6 over Networks of Resource-constrained Nodes", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-6lo-01" - }, - "orderInMeeting":1, - "short":"6lo", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/6lo", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/6lo", - "recordings":[ - { - "id":109668, - "name":"recording-114-6lo-1", - "title":"Video recording for 6LO on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=bTULdS6iI0E" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29669.ics" - } - }, - { - "id":105753, - "sessionId":29585, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"drip", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "drip", - "int", - "regular" - ], - "groupAcronym":"drip", - "groupName":"Drone Remote ID Protocol", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-drip-01" - }, - "orderInMeeting":1, - "short":"drip", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/drip", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/drip", - "recordings":[ - { - "id":109669, - "name":"recording-114-drip-1", - "title":"Video recording for DRIP on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=QhcJMKR-rHY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29585.ics" - } - }, - { - "id":105754, - "sessionId":29673, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"pearg", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "irtf", - "pearg", - "regular" - ], - "groupAcronym":"pearg", - "groupName":"Privacy Enhancements and Assessments Research Group", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-pearg-00" - }, - "orderInMeeting":1, - "short":"pearg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/pearg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/pearg", - "recordings":[ - { - "id":109681, - "name":"recording-114-pearg-1", - "title":"Video recording for PEARG on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=DiUkm9CcArA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29673.ics" - } - }, - { - "id":105755, - "sessionId":29713, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"rswg", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rswg" - ], - "groupAcronym":"rswg", - "groupName":"RFC Series Working Group", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rswg-00" - }, - "orderInMeeting":1, - "short":"RSWG", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rswg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rswg", - "recordings":[ - { - "id":109705, - "name":"recording-114-rswg-1", - "title":"Video recording for RSWG on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=VsIXGDMQGOI" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29713.ics" - } - }, - { - "id":105756, - "sessionId":29661, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rtgarea", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rtg", - "rtgarea" - ], - "groupAcronym":"rtgarea", - "groupName":"Routing Area Open Meeting", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rtgarea-01" - }, - "orderInMeeting":1, - "short":"rtgarea", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rtgarea", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rtgarea", - "recordings":[ - { - "id":109683, - "name":"recording-114-rtgarea-1", - "title":"Video recording for RTGAREA on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=OGVrRQHaN3Y" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29661.ics" - } - }, - { - "id":105757, - "sessionId":29719, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"jwp", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "bof", - "jwp", - "regular", - "sec" - ], - "groupAcronym":"jwp", - "groupName":"JSON Web Proofs", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-jwp-01" - }, - "orderInMeeting":1, - "short":"jwp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/jwp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/jwp", - "recordings":[ - { - "id":109684, - "name":"recording-114-jwp-1", - "title":"Video recording for JWP on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=cWS7ud6Br2Q" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29719.ics" - } - }, - { - "id":105758, - "sessionId":29641, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"tsvarea", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-25T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "tsv", - "tsvarea" - ], - "groupAcronym":"tsvarea", - "groupName":"Transport Area Open Meeting", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-tsvarea-00" - }, - "orderInMeeting":1, - "short":"tsvarea", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tsvarea", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tsvarea", - "recordings":[ - { - "id":109670, - "name":"recording-114-tsvarea-1", - "title":"Video recording for TSVAREA on 2022-07-25 at 13:30:00", - "url":"https://www.youtube.com/watch?v=TSpK8C0DqDc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29641.ics" - } - }, - { - "id":105759, - "sessionId":29738, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Beverage and Snack Break", - "startDateTime":"2022-07-25T14:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "beverage-and-snack-break", - "secretariat", - "secretariat-sesso", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"Beverage and Snack Break", - "sessionToken":"sesso", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29738.ics" - } - }, - { - "id":105760, - "sessionId":29601, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dmm", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dmm", - "int", - "regular" - ], - "groupAcronym":"dmm", - "groupName":"Distributed Mobility Management", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dmm-02" - }, - "orderInMeeting":1, - "short":"dmm", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dmm", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dmm", - "recordings":[ - { - "id":109674, - "name":"recording-114-dmm-1", - "title":"Video recording for DMM on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=pJeCObBzwPk" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29601.ics" - } - }, - { - "id":105761, - "sessionId":29688, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"irtfopen", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "irtf", - "irtfopen", - "regular" - ], - "groupAcronym":"irtfopen", - "groupName":"IRTF Open Meeting", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-irtfopen-01" - }, - "orderInMeeting":1, - "short":"irtfopen", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/irtfopen", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/irtfopen", - "recordings":[ - { - "id":109709, - "name":"recording-114-irtfopen-1", - "title":"Video recording for IRTFOPEN on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=VRiQsqiRhHM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29688.ics" - } - }, - { - "id":105762, - "sessionId":29597, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"anima", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "anima", - "ops", - "regular" - ], - "groupAcronym":"anima", - "groupName":"Autonomic Networking Integrated Model and Approach", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-anima-00" - }, - "orderInMeeting":1, - "short":"anima", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/anima", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/anima", - "recordings":[ - { - "id":109707, - "name":"recording-114-anima-1", - "title":"Video recording for ANIMA on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=UIsxhY73QrA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29597.ics" - } - }, - { - "id":105763, - "sessionId":29527, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"bess", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "bess", - "regular", - "rtg" - ], - "groupAcronym":"bess", - "groupName":"BGP Enabled ServiceS", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-bess-01" - }, - "orderInMeeting":1, - "short":"bess", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/bess", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/bess", - "recordings":[ - { - "id":109706, - "name":"recording-114-bess-1", - "title":"Video recording for BESS on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=V2r68JhrQag" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29527.ics" - } - }, - { - "id":105764, - "sessionId":29662, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"savnet", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rtg", - "savnet" - ], - "groupAcronym":"savnet", - "groupName":"Source Address Validation in Intra-domain and Inter-domain Networks", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-savnet-00" - }, - "orderInMeeting":1, - "short":"savnet", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/savnet", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/savnet", - "recordings":[ - { - "id":109676, - "name":"recording-114-savnet-1", - "title":"Video recording for SAVNET on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=399OSM6L6wE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29662.ics" - } - }, - { - "id":105765, - "sessionId":29568, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ipsecme", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ipsecme", - "regular", - "sec" - ], - "groupAcronym":"ipsecme", - "groupName":"IP Security Maintenance and Extensions", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ipsecme-02" - }, - "orderInMeeting":1, - "short":"ipsecme", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ipsecme", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ipsecme", - "recordings":[ - { - "id":109671, - "name":"recording-114-ipsecme-1", - "title":"Video recording for IPSECME on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=vWrNIr0yyqI" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29568.ics" - } - }, - { - "id":105766, - "sessionId":29542, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"tls", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "sec", - "tls" - ], - "groupAcronym":"tls", - "groupName":"Transport Layer Security", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-tls-03" - }, - "orderInMeeting":1, - "short":"tls", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tls", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tls", - "recordings":[ - { - "id":109710, - "name":"recording-114-tls-1", - "title":"Video recording for TLS on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=AlCwHCvhyuo" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29542.ics" - } - }, - { - "id":106057, - "sessionId":29577, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"tsvwg", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-25T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "tsv", - "tsvwg" - ], - "groupAcronym":"tsvwg", - "groupName":"Transport Area Working Group", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-tsvwg-03" - }, - "orderInMeeting":1, - "short":"tsvwg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tsvwg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tsvwg", - "recordings":[ - { - "id":109708, - "name":"recording-114-tsvwg-1", - "title":"Video recording for TSVWG on 2022-07-25 at 15:00:00", - "url":"https://www.youtube.com/watch?v=n7P3Ky_czp0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29577.ics" - } - }, - { - "id":105768, - "sessionId":29753, - "room":"Liberty A", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"hackathon", - "duration":3600, - "name":"Hackdemo Happy Hour", - "startDateTime":"2022-07-25T17:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "hackathon", - "hackathon-sesse", - "hackdemo-happy-hour", - "social" - ], - "groupAcronym":"hackathon", - "groupName":"Hackathon", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hackathon-sesse-00" - }, - "orderInMeeting":5, - "short":"Hackdemo Happy Hour", - "sessionToken":"sesse", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hackathon", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hackathon", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29753.ics" - } - }, - { - "id":105769, - "sessionId":29739, - "room":"Horizons Ballroom", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Newcomers' Dinner (Open to newcomers. Note that pre-registration is required and a $25USD fee will be charged.)", - "startDateTime":"2022-07-25T19:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "newcomers-dinner-open-to-newcomers-note-that-pre-registration-is-required-and-a-25usd-fee-will-be-charged", - "secretariat", - "secretariat-sessp", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"Newcomers' Dinner (Open to newcomers. Note that pre-registration is required and a $25USD fee will be charged.)", - "sessionToken":"sessp", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29739.ics" - } - }, - { - "id":105770, - "sessionId":29748, - "room":"Liberty Ballroom Foyer & Independence Foyer", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Continental Breakfast", - "startDateTime":"2022-07-26T08:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "continental-breakfast", - "secretariat", - "secretariat-sessr", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"Continental Breakfast", - "sessionToken":"sessr", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29748.ics" - } - }, - { - "id":106059, - "sessionId":29599, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"tdd", - "duration":4500, - "name":"Technology Deep Dive", - "startDateTime":"2022-07-26T08:30:00", - "status":"canceled", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "presentation", - "tdd" - ], - "groupAcronym":"tdd", - "groupName":"Technology Deep Dive", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=tdd", - "flags":{ - "agenda":false, - "showAgenda":true - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"tdd", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tdd", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tdd", - "recordings":[ - - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29599.ics" - } - }, - { - "id":106068, - "sessionId":29772, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rpc", - "duration":30600, - "name":"RPC Office Hours", - "startDateTime":"2022-07-26T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "officehours", - "rpc", - "rpc-office-hours", - "rpc-sessc" - ], - "groupAcronym":"rpc", - "groupName":"RFC Production Center", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"RPC Office Hours", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rpc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rpc", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29772.ics" - } - }, - { - "id":105771, - "sessionId":29724, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":28800, - "name":"IETF Registration", - "startDateTime":"2022-07-26T08:30:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessc" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"IETF Registration", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29724.ics" - } - }, - { - "id":106083, - "sessionId":29789, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":30600, - "name":"IANA Office Hours", - "startDateTime":"2022-07-26T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours", - "officehours", - "secretariat", - "secretariat-sessbg" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":6, - "short":"IANA Office Hours", - "sessionToken":"sessbg", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29789.ics" - } - }, - { - "id":105772, - "sessionId":29755, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":1800, - "name":"ISE Office Hours", - "startDateTime":"2022-07-26T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ise-office-hours", - "officehours", - "secretariat", - "secretariat-sessx" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":5, - "short":"ISE Office Hours", - "sessionToken":"sessx", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29755.ics" - } - }, - { - "id":106085, - "sessionId":29792, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":27000, - "name":"IANA Office Hours - Virtual", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours-online", - "officehours", - "secretariat", - "secretariat-sessbj" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":7, - "short":"IANA Office Hours Online", - "sessionToken":"sessbj", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29792.ics" - } - }, - { - "id":105773, - "sessionId":29531, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"webtrans", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "webtrans" - ], - "groupAcronym":"webtrans", - "groupName":"WebTransport", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-webtrans-03" - }, - "orderInMeeting":1, - "short":"webtrans", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/webtrans", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/webtrans", - "recordings":[ - { - "id":109713, - "name":"recording-114-webtrans-1", - "title":"Video recording for WEBTRANS on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=uh65xHVYCEE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29531.ics" - } - }, - { - "id":105774, - "sessionId":29689, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"anrw", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "anrw", - "anrw-sessa", - "irtf", - "regular" - ], - "groupAcronym":"anrw", - "groupName":"ACM/IRTF Applied Networking Research Workshop", - "groupParent":{ - "acronym":"irtf" - }, - "note":"Keynote and Research Papers", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-anrw-03" - }, - "orderInMeeting":1, - "short":"anrw", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/anrw", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/anrw", - "recordings":[ - { - "id":109741, - "name":"recording-114-anrw-1", - "title":"Video recording for ANRW on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=pJUbDZ78Lus" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29689.ics" - } - }, - { - "id":105775, - "sessionId":29573, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"v6ops", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ops", - "regular", - "v6ops" - ], - "groupAcronym":"v6ops", - "groupName":"IPv6 Operations", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-v6ops-01" - }, - "orderInMeeting":1, - "short":"v6ops", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/v6ops", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/v6ops", - "recordings":[ - { - "id":109717, - "name":"recording-114-v6ops-1", - "title":"Video recording for V6OPS on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=iUwcoNpioIA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29573.ics" - } - }, - { - "id":105877, - "sessionId":29555, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"pals", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "pals", - "regular", - "rtg" - ], - "groupAcronym":"pals", - "groupName":"Pseudowire And LDP-enabled Services", - "groupParent":{ - "acronym":"rtg" - }, - "note":"Joint PALS/MPLS/DETNET", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-pals-02" - }, - "orderInMeeting":1, - "short":"pals", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/pals", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/pals", - "recordings":[ - { - "id":109715, - "name":"recording-114-pals-1", - "title":"Video recording for PALS on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=klSclu8-Bt0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29555.ics" - } - }, - { - "id":105777, - "sessionId":29550, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"pim", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "pim", - "regular", - "rtg" - ], - "groupAcronym":"pim", - "groupName":"Protocols for IP Multicast", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-pim-04" - }, - "orderInMeeting":1, - "short":"pim", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/pim", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/pim", - "recordings":[ - { - "id":109712, - "name":"recording-114-pim-1", - "title":"Video recording for PIM on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=LzHqPYBdauY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29550.ics" - } - }, - { - "id":105779, - "sessionId":29626, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secdispatch", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "sec", - "secdispatch" - ], - "groupAcronym":"secdispatch", - "groupName":"Security Dispatch", - "groupParent":{ - "acronym":"sec" - }, - "note":"Shared SAAG / SECDISPATCH", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-secdispatch-04" - }, - "orderInMeeting":1, - "short":"secdispatch", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secdispatch", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secdispatch", - "recordings":[ - { - "id":109711, - "name":"recording-114-secdispatch-1", - "title":"Video recording for SECDISPATCH on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=TUI87z3k_gQ" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29626.ics" - } - }, - { - "id":105780, - "sessionId":29560, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"alto", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "alto", - "regular", - "tsv" - ], - "groupAcronym":"alto", - "groupName":"Application-Layer Traffic Optimization", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-alto-01" - }, - "orderInMeeting":1, - "short":"alto", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/alto", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/alto", - "recordings":[ - { - "id":109714, - "name":"recording-114-alto-1", - "title":"Video recording for ALTO on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=2Kcm24Tm4Yg" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29560.ics" - } - }, - { - "id":105781, - "sessionId":29657, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dtn", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-26T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dtn", - "regular", - "tsv" - ], - "groupAcronym":"dtn", - "groupName":"Delay/Disruption Tolerant Networking", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dtn-01" - }, - "orderInMeeting":1, - "short":"dtn", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dtn", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dtn", - "recordings":[ - { - "id":109716, - "name":"recording-114-dtn-1", - "title":"Video recording for DTN on 2022-07-26 at 10:00:00", - "url":"https://www.youtube.com/watch?v=VF2vB5QTx9c" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29657.ics" - } - }, - { - "id":105782, - "sessionId":29731, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":5400, - "name":"Break", - "startDateTime":"2022-07-26T12:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessh", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":5, - "short":"Break", - "sessionToken":"sessh", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29731.ics" - } - }, - { - "id":106080, - "sessionId":29785, - "room":"Gather", - "location":{ - - }, - "acronym":"emodir", - "duration":1800, - "name":"Virtual Newcomers' Coffee Break", - "startDateTime":"2022-07-26T12:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sessf", - "social", - "virtual-newcomers-coffee-break" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"Virtual Newcomers Coffee Break", - "sessionToken":"sessf", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29785.ics" - } - }, - { - "id":106055, - "sessionId":29762, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ietf", - "duration":2700, - "name":"Host Speaker Series", - "startDateTime":"2022-07-26T12:20:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "host-speaker-series", - "ietf", - "ietf-sessc", - "presentation" - ], - "groupAcronym":"ietf", - "groupName":"IETF", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ietf-sessc-00" - }, - "orderInMeeting":2, - "short":"Host Speaker Series", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ietf", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ietf", - "recordings":[ - { - "id":109737, - "name":"recording-114-ietf-1", - "title":"Video recording for IETF on 2022-07-26 at 12:20:00", - "url":"https://www.youtube.com/watch?v=RoMv5r14Oqc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29762.ics" - } - }, - { - "id":105783, - "sessionId":29604, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emailcore", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "emailcore", - "regular" - ], - "groupAcronym":"emailcore", - "groupName":"Revision of core Email specifications", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-emailcore-01" - }, - "orderInMeeting":1, - "short":"emailcore", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emailcore", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emailcore", - "recordings":[ - { - "id":109730, - "name":"recording-114-emailcore-1", - "title":"Video recording for EMAILCORE on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=Amf2WegmkgA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29604.ics" - } - }, - { - "id":105784, - "sessionId":29668, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"iabopen", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "iab", - "iabopen", - "regular" - ], - "groupAcronym":"iabopen", - "groupName":"IAB Open Meeting", - "groupParent":{ - "acronym":"iab" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-iabopen-00" - }, - "orderInMeeting":1, - "short":"iabopen", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iabopen", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iabopen", - "recordings":[ - { - "id":109728, - "name":"recording-114-iabopen-1", - "title":"Video recording for IABOPEN on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=a7MKfow7DNQ" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29668.ics" - } - }, - { - "id":105786, - "sessionId":29647, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"opsec", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ops", - "opsec", - "regular" - ], - "groupAcronym":"opsec", - "groupName":"Operational Security Capabilities for IP Network Infrastructure", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-opsec-02" - }, - "orderInMeeting":1, - "short":"opsec", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/opsec", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/opsec", - "recordings":[ - { - "id":109723, - "name":"recording-114-opsec-1", - "title":"Video recording for OPSEC on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=OCi9_fZ_DCM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29647.ics" - } - }, - { - "id":105855, - "sessionId":29565, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"mpls", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "mpls", - "regular", - "rtg" - ], - "groupAcronym":"mpls", - "groupName":"Multiprotocol Label Switching", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-mpls-02" - }, - "orderInMeeting":1, - "short":"mpls", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/mpls", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/mpls", - "recordings":[ - { - "id":109727, - "name":"recording-114-mpls-1", - "title":"Video recording for MPLS on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=1eq_5xvacl0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29565.ics" - } - }, - { - "id":105856, - "sessionId":29671, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"roll", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "roll", - "rtg" - ], - "groupAcronym":"roll", - "groupName":"Routing Over Low power and Lossy networks", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-roll-00" - }, - "orderInMeeting":1, - "short":"roll", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/roll", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/roll", - "recordings":[ - { - "id":109729, - "name":"recording-114-roll-1", - "title":"Video recording for ROLL on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=ChhlXBPgbr4" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29671.ics" - } - }, - { - "id":105788, - "sessionId":29649, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"cose", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "cose", - "regular", - "sec" - ], - "groupAcronym":"cose", - "groupName":"CBOR Object Signing and Encryption", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-cose-02" - }, - "orderInMeeting":1, - "short":"cose", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/cose", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/cose", - "recordings":[ - { - "id":109724, - "name":"recording-114-cose-1", - "title":"Video recording for COSE on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=d0zOUQ26qt0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29649.ics" - } - }, - { - "id":105789, - "sessionId":29615, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"i2nsf", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "i2nsf", - "regular", - "sec" - ], - "groupAcronym":"i2nsf", - "groupName":"Interface to Network Security Functions", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-i2nsf-01" - }, - "orderInMeeting":1, - "short":"i2nsf", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/i2nsf", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/i2nsf", - "recordings":[ - { - "id":109726, - "name":"recording-114-i2nsf-1", - "title":"Video recording for I2NSF on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=uirAclRgfJQ" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29615.ics" - } - }, - { - "id":105790, - "sessionId":29672, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"ohai", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-26T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ohai", - "regular", - "sec" - ], - "groupAcronym":"ohai", - "groupName":"Oblivious HTTP Application Intermediation", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ohai-01" - }, - "orderInMeeting":1, - "short":"ohai", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ohai", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ohai", - "recordings":[ - { - "id":109725, - "name":"recording-114-ohai-1", - "title":"Video recording for OHAI on 2022-07-26 at 13:30:00", - "url":"https://www.youtube.com/watch?v=1CRDVGyTfCg" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29672.ics" - } - }, - { - "id":105791, - "sessionId":29737, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Beverage and Snack Break", - "startDateTime":"2022-07-26T14:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessn", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":6, - "short":"Beverage and Snack Break", - "sessionToken":"sessn", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29737.ics" - } - }, - { - "id":105792, - "sessionId":29650, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"core", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "core", - "regular" - ], - "groupAcronym":"core", - "groupName":"Constrained RESTful Environments", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-core-00" - }, - "orderInMeeting":1, - "short":"core", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/core", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/core", - "recordings":[ - { - "id":109763, - "name":"recording-114-core-1", - "title":"Video recording for CORE on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=rr1LXhbrs7Y" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29650.ics" - } - }, - { - "id":105793, - "sessionId":29526, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"stir", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "stir" - ], - "groupAcronym":"stir", - "groupName":"Secure Telephone Identity Revisited", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-stir-00" - }, - "orderInMeeting":1, - "short":"stir", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/stir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/stir", - "recordings":[ - { - "id":109739, - "name":"recording-114-stir-1", - "title":"Video recording for STIR on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=q_HefRdDVe8" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29526.ics" - } - }, - { - "id":105794, - "sessionId":29566, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"add", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "add", - "int", - "regular" - ], - "groupAcronym":"add", - "groupName":"Adaptive DNS Discovery", - "groupParent":{ - "acronym":"int" - }, - "note":"Split session with DPRIVE", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-add-00" - }, - "orderInMeeting":1, - "short":"add", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/add", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/add", - "recordings":[ - { - "id":109740, - "name":"recording-114-add-1", - "title":"Video recording for ADD on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=OeuIbnPyx9g" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29566.ics" - } - }, - { - "id":105795, - "sessionId":29690, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"anrw", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "anrw", - "anrw-sessb", - "irtf", - "regular" - ], - "groupAcronym":"anrw", - "groupName":"ACM/IRTF Applied Networking Research Workshop", - "groupParent":{ - "acronym":"irtf" - }, - "note":"Protocol Specification Techniques", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-anrw-03" - }, - "orderInMeeting":2, - "short":"anrw", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/anrw", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/anrw", - "recordings":[ - { - "id":109762, - "name":"recording-114-anrw-2", - "title":"Video recording for ANRW on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=tCsiB87s-f4" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29690.ics" - } - }, - { - "id":105796, - "sessionId":29556, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"bmwg", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "bmwg", - "ops", - "regular" - ], - "groupAcronym":"bmwg", - "groupName":"Benchmarking Methodology", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-bmwg-03" - }, - "orderInMeeting":1, - "short":"bmwg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/bmwg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/bmwg", - "recordings":[ - { - "id":109770, - "name":"recording-114-bmwg-1", - "title":"Video recording for BMWG on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=hgWHsCmJrP8" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29556.ics" - } - }, - { - "id":105797, - "sessionId":29716, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"msr6", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "bof", - "msr6", - "regular", - "rtg" - ], - "groupAcronym":"msr6", - "groupName":"Multicast Source Routing over IPv6", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-msr6-06" - }, - "orderInMeeting":1, - "short":"msr6", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/msr6", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/msr6", - "recordings":[ - { - "id":109771, - "name":"recording-114-msr6-1", - "title":"Video recording for MSR6 on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=9tIlS7Rukhk" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29716.ics" - } - }, - { - "id":105798, - "sessionId":29717, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"satp", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "bof", - "regular", - "satp", - "sec" - ], - "groupAcronym":"satp", - "groupName":"Secure Asset Transfer Protocol", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-satp-02" - }, - "orderInMeeting":1, - "short":"satp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/satp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/satp", - "recordings":[ - { - "id":109772, - "name":"recording-114-satp-1", - "title":"Video recording for SATP on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=lgPvjhUsERo" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29717.ics" - } - }, - { - "id":105799, - "sessionId":29644, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"nfsv4", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-26T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "nfsv4", - "regular", - "tsv" - ], - "groupAcronym":"nfsv4", - "groupName":"Network File System Version 4", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-nfsv4-00" - }, - "orderInMeeting":1, - "short":"nfsv4", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/nfsv4", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/nfsv4", - "recordings":[ - { - "id":109773, - "name":"recording-114-nfsv4-1", - "title":"Video recording for NFSV4 on 2022-07-26 at 15:00:00", - "url":"https://www.youtube.com/watch?v=lN8Ta8iWLQA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29644.ics" - } - }, - { - "id":106062, - "sessionId":29767, - "room":"Salon 2", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ietf", - "duration":3600, - "name":"IETF Chair Office Hours", - "startDateTime":"2022-07-26T17:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ietf", - "ietf-chair-office-hours", - "ietf-sessd", - "officehours" - ], - "groupAcronym":"ietf", - "groupName":"IETF", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"IETF Chair Office Hours", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ietf", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ietf", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29767.ics" - } - }, - { - "id":106090, - "sessionId":29794, - "room":"Independence D", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emodir", - "duration":3600, - "name":"EMODIR Meeting", - "startDateTime":"2022-07-26T17:15:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-meeting", - "emodir-sessg", - "open_meeting" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=emodir", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-emodir-sessg-00" - }, - "orderInMeeting":1, - "short":"EMODIR Meeting", - "sessionToken":"sessg", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - { - "id":109775, - "name":"recording-114-emodir-3", - "title":"Video recording for EMODIR on 2022-07-26 at 17:15:00", - "url":"https://www.youtube.com/watch?v=TOL28ydmadA" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29794.ics" - } - }, - { - "id":105800, - "sessionId":29752, - "room":"Barnes Foundation", - "location":{ - - }, - "acronym":"secretariat", - "duration":14400, - "name":"IETF 114 Social Event at the Barnes Foundation - Hosted by Comcast-NBCUniversal", - "startDateTime":"2022-07-26T18:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ietf-114-social-event-at-the-barnes-foundation-hosted-by-comcast-nbcuniversal", - "secretariat", - "secretariat-sessv", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":8, - "short":"IETF 114 Social Event at the Barnes Foundation - Hosted by Comcast-NBCUniversal", - "sessionToken":"sessv", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29752.ics" - } - }, - { - "id":105801, - "sessionId":29749, - "room":"Liberty Ballroom Foyer & Independence Foyer", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Continental Breakfast", - "startDateTime":"2022-07-27T08:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "continental-breakfast", - "secretariat", - "secretariat-sesss", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":7, - "short":"Continental Breakfast", - "sessionToken":"sesss", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29749.ics" - } - }, - { - "id":106089, - "sessionId":29631, - "room":"Horizons Ballroom", - "location":{ - - }, - "acronym":"artart", - "duration":5400, - "name":"ART ART & i18ndir breakfast", - "startDateTime":"2022-07-27T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "art", - "art-art-i18ndir-breakfast", - "artart", - "social" - ], - "groupAcronym":"artart", - "groupName":"ART Area Review Team", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"ART ART & i18ndir breakfast", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/artart", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/artart", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29631.ics" - } - }, - { - "id":106065, - "sessionId":29770, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rpc", - "duration":28800, - "name":"RPC Office Hours", - "startDateTime":"2022-07-27T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "officehours", - "rpc", - "rpc-office-hours", - "rpc-sessa" - ], - "groupAcronym":"rpc", - "groupName":"RFC Production Center", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":3, - "short":"RPC Office Hours", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rpc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rpc", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29770.ics" - } - }, - { - "id":105802, - "sessionId":29725, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":32400, - "name":"IETF Registration", - "startDateTime":"2022-07-27T08:30:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessd" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"IETF Registration", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29725.ics" - } - }, - { - "id":106084, - "sessionId":29788, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":30600, - "name":"IANA Office Hours", - "startDateTime":"2022-07-27T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours", - "officehours", - "secretariat", - "secretariat-sessbf" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":10, - "short":"IANA Office Hours", - "sessionToken":"sessbf", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29788.ics" - } - }, - { - "id":105803, - "sessionId":29756, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":1800, - "name":"ISE Office Hours", - "startDateTime":"2022-07-27T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ise-office-hours", - "officehours", - "secretariat", - "secretariat-sessy" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":9, - "short":"ISE Office Hours", - "sessionToken":"sessy", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29756.ics" - } - }, - { - "id":106086, - "sessionId":29793, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":27000, - "name":"IANA Office Hours - Virtual", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours-online", - "officehours", - "secretariat", - "secretariat-sessbk" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":11, - "short":"IANA Office Hours Online", - "sessionToken":"sessbk", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29793.ics" - } - }, - { - "id":105804, - "sessionId":29714, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"moq", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "art", - "bof", - "moq", - "regular" - ], - "groupAcronym":"moq", - "groupName":"Media Over QUIC", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-moq-00" - }, - "orderInMeeting":1, - "short":"moq", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/moq", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/moq", - "recordings":[ - { - "id":109821, - "name":"recording-114-moq-1", - "title":"Video recording for MOQ on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=-ZsbbUjvzTY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29714.ics" - } - }, - { - "id":105805, - "sessionId":29665, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ntp", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "int", - "ntp", - "regular" - ], - "groupAcronym":"ntp", - "groupName":"Network Time Protocols", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ntp-00" - }, - "orderInMeeting":1, - "short":"ntp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ntp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ntp", - "recordings":[ - { - "id":109820, - "name":"recording-114-ntp-1", - "title":"Video recording for NTP on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=NIR6NPUBNgw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29665.ics" - } - }, - { - "id":105806, - "sessionId":29638, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"gaia", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "gaia", - "irtf", - "regular" - ], - "groupAcronym":"gaia", - "groupName":"Global Access to the Internet for All", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-gaia-02" - }, - "orderInMeeting":1, - "short":"gaia", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/gaia", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/gaia", - "recordings":[ - { - "id":109879, - "name":"recording-114-gaia-1", - "title":"Video recording for GAIA on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=bHBrFOqLWBI" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29638.ics" - } - }, - { - "id":105807, - "sessionId":29606, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"nmrg", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "irtf", - "nmrg", - "regular" - ], - "groupAcronym":"nmrg", - "groupName":"Network Management", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-nmrg-00" - }, - "orderInMeeting":1, - "short":"nmrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/nmrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/nmrg", - "recordings":[ - { - "id":109882, - "name":"recording-114-nmrg-1", - "title":"Video recording for NMRG on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=kbpAuzRAj9o" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29606.ics" - } - }, - { - "id":105808, - "sessionId":29551, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"sidrops", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ops", - "regular", - "sidrops" - ], - "groupAcronym":"sidrops", - "groupName":"SIDR Operations", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-sidrops-01" - }, - "orderInMeeting":1, - "short":"sidrops", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/sidrops", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/sidrops", - "recordings":[ - { - "id":109880, - "name":"recording-114-sidrops-1", - "title":"Video recording for SIDROPS on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=FVYH7O0jN4Q" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29551.ics" - } - }, - { - "id":105809, - "sessionId":29653, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"raw", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "raw", - "regular", - "rtg" - ], - "groupAcronym":"raw", - "groupName":"Reliable and Available Wireless", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-raw-02" - }, - "orderInMeeting":1, - "short":"raw", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/raw", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/raw", - "recordings":[ - { - "id":109925, - "name":"recording-114-raw-1", - "title":"Video recording for RAW on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=gG7fVTd95yM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29653.ics" - } - }, - { - "id":105810, - "sessionId":29622, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"spring", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rtg", - "spring" - ], - "groupAcronym":"spring", - "groupName":"Source Packet Routing in Networking", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-spring-01" - }, - "orderInMeeting":1, - "short":"spring", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/spring", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/spring", - "recordings":[ - { - "id":109926, - "name":"recording-114-spring-1", - "title":"Video recording for SPRING on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=4sUdl-KtlUQ" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29622.ics" - } - }, - { - "id":105811, - "sessionId":29532, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"lamps", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-27T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "lamps", - "regular", - "sec" - ], - "groupAcronym":"lamps", - "groupName":"Limited Additional Mechanisms for PKIX and SMIME", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-lamps-02" - }, - "orderInMeeting":1, - "short":"lamps", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/lamps", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/lamps", - "recordings":[ - { - "id":109881, - "name":"recording-114-lamps-1", - "title":"Video recording for LAMPS on 2022-07-27 at 10:00:00", - "url":"https://www.youtube.com/watch?v=T7vj35Qua8g" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29532.ics" - } - }, - { - "id":105812, - "sessionId":29732, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":5400, - "name":"Break", - "startDateTime":"2022-07-27T12:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessi", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":8, - "short":"Break", - "sessionToken":"sessi", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29732.ics" - } - }, - { - "id":105888, - "sessionId":29743, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"emodir", - "duration":3600, - "name":"WG Chairs Forum (For WG Chairs Only)", - "startDateTime":"2022-07-27T12:15:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sessd", - "open_meeting", - "wg-chairs-forum" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=emodir&short=&item=5", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-emodir-sessd-00" - }, - "orderInMeeting":5, - "short":"WG Chairs Forum", - "sessionToken":"sessd", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - { - "id":109934, - "name":"recording-114-emodir-4", - "title":"Video recording for EMODIR on 2022-07-27 at 12:15:00", - "url":"https://www.youtube.com/watch?v=c7F5mkuCNrk" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29743.ics" - } - }, - { - "id":105814, - "sessionId":29587, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"calext", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "calext", - "regular" - ], - "groupAcronym":"calext", - "groupName":"Calendaring Extensions", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-calext-00" - }, - "orderInMeeting":1, - "short":"calext", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/calext", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/calext", - "recordings":[ - { - "id":109920, - "name":"recording-114-calext-1", - "title":"Video recording for CALEXT on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=veBEmw-pJrA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29587.ics" - } - }, - { - "id":105815, - "sessionId":29610, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"uta", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "uta" - ], - "groupAcronym":"uta", - "groupName":"Using TLS in Applications", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-uta-02" - }, - "orderInMeeting":1, - "short":"uta", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/uta", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/uta", - "recordings":[ - { - "id":109927, - "name":"recording-114-uta-1", - "title":"Video recording for UTA on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=UylbMNuVZP4" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29610.ics" - } - }, - { - "id":105816, - "sessionId":29543, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"wish", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "wish" - ], - "groupAcronym":"wish", - "groupName":"WebRTC Ingest Signaling over HTTPS", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-wish-00" - }, - "orderInMeeting":1, - "short":"wish", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/wish", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/wish", - "recordings":[ - { - "id":109918, - "name":"recording-114-wish-1", - "title":"Video recording for WISH on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=9REk4gUtz54" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29543.ics" - } - }, - { - "id":105817, - "sessionId":29654, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"gendispatch", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "gen", - "gendispatch", - "regular" - ], - "groupAcronym":"gendispatch", - "groupName":"General Area Dispatch", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-gendispatch-00" - }, - "orderInMeeting":1, - "short":"gendispatch", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/gendispatch", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/gendispatch", - "recordings":[ - { - "id":109924, - "name":"recording-114-gendispatch-1", - "title":"Video recording for GENDISPATCH on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=mGsoCkym478" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29654.ics" - } - }, - { - "id":105819, - "sessionId":29561, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"lpwan", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "int", - "lpwan", - "regular" - ], - "groupAcronym":"lpwan", - "groupName":"IPv6 over Low Power Wide-Area Networks", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-lpwan-07" - }, - "orderInMeeting":1, - "short":"lpwan", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/lpwan", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/lpwan", - "recordings":[ - { - "id":109922, - "name":"recording-114-lpwan-1", - "title":"Video recording for LPWAN on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=UTwGyKOTdlk" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29561.ics" - } - }, - { - "id":105820, - "sessionId":29608, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"lisp", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "lisp", - "regular", - "rtg" - ], - "groupAcronym":"lisp", - "groupName":"Locator/ID Separation Protocol", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-lisp-02" - }, - "orderInMeeting":1, - "short":"lisp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/lisp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/lisp", - "recordings":[ - { - "id":109923, - "name":"recording-114-lisp-1", - "title":"Video recording for LISP on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=LzYcho9QffA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29608.ics" - } - }, - { - "id":105889, - "sessionId":29576, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"pce", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "pce", - "pce-sessb", - "regular", - "rtg" - ], - "groupAcronym":"pce", - "groupName":"Path Computation Element", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-pce-01" - }, - "orderInMeeting":1, - "short":"pce", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/pce", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/pce", - "recordings":[ - { - "id":109921, - "name":"recording-114-pce-1", - "title":"Video recording for PCE on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=8CJNyGNFjC4" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29576.ics" - } - }, - { - "id":105867, - "sessionId":29620, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"lake", - "duration":3600, - "name":"Session II", - "startDateTime":"2022-07-27T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "lake", - "regular", - "sec" - ], - "groupAcronym":"lake", - "groupName":"Lightweight Authenticated Key Exchange", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-lake-02" - }, - "orderInMeeting":1, - "short":"lake", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/lake", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/lake", - "recordings":[ - { - "id":109919, - "name":"recording-114-lake-1", - "title":"Video recording for LAKE on 2022-07-27 at 13:30:00", - "url":"https://www.youtube.com/watch?v=Oq7O5-ODfqc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29620.ics" - } - }, - { - "id":106060, - "sessionId":29766, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Break", - "startDateTime":"2022-07-27T14:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessbc", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":9, - "short":"Break", - "sessionToken":"sessbc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29766.ics" - } - }, - { - "id":105821, - "sessionId":29720, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"tigress", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "tigress" - ], - "groupAcronym":"tigress", - "groupName":"Transfer dIGital cREdentialS Securely", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-tigress-00" - }, - "orderInMeeting":1, - "short":"tigress", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tigress", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tigress", - "recordings":[ - { - "id":109915, - "name":"recording-114-tigress-1", - "title":"Video recording for TIGRESS on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=XwZtma6eDUA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29720.ics" - } - }, - { - "id":105822, - "sessionId":29607, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"6man", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "6man", - "int", - "regular" - ], - "groupAcronym":"6man", - "groupName":"IPv6 Maintenance", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-6man-04" - }, - "orderInMeeting":1, - "short":"6man", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/6man", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/6man", - "recordings":[ - { - "id":109912, - "name":"recording-114-6man-1", - "title":"Video recording for 6MAN on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=eKEizC8xhhM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29607.ics" - } - }, - { - "id":105823, - "sessionId":29557, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"netmod", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "netmod", - "ops", - "regular" - ], - "groupAcronym":"netmod", - "groupName":"Network Modeling", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-netmod-02" - }, - "orderInMeeting":1, - "short":"netmod", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/netmod", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/netmod", - "recordings":[ - { - "id":109914, - "name":"recording-114-netmod-1", - "title":"Video recording for NETMOD on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=qIIQwK3qNgc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29557.ics" - } - }, - { - "id":105824, - "sessionId":29642, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"idr", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "idr", - "regular", - "rtg" - ], - "groupAcronym":"idr", - "groupName":"Inter-Domain Routing", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-idr-03" - }, - "orderInMeeting":1, - "short":"idr", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/idr", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/idr", - "recordings":[ - { - "id":109913, - "name":"recording-114-idr-1", - "title":"Video recording for IDR on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=SO031yLY0G0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29642.ics" - } - }, - { - "id":105825, - "sessionId":29640, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emu", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "emu", - "regular", - "sec" - ], - "groupAcronym":"emu", - "groupName":"EAP Method Update", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-emu-01" - }, - "orderInMeeting":1, - "short":"emu", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emu", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emu", - "recordings":[ - { - "id":109917, - "name":"recording-114-emu-1", - "title":"Video recording for EMU on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=tH-eJNIrJmU" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29640.ics" - } - }, - { - "id":105826, - "sessionId":29627, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"masque", - "duration":7200, - "name":"Session III", - "startDateTime":"2022-07-27T15:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "masque", - "regular", - "tsv" - ], - "groupAcronym":"masque", - "groupName":"Multiplexed Application Substrate over QUIC Encryption", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-masque-00" - }, - "orderInMeeting":1, - "short":"masque", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/masque", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/masque", - "recordings":[ - { - "id":109916, - "name":"recording-114-masque-1", - "title":"Video recording for MASQUE on 2022-07-27 at 15:00:00", - "url":"https://www.youtube.com/watch?v=0dZpdabM93g" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29627.ics" - } - }, - { - "id":105827, - "sessionId":29736, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Beverage and Snack Break", - "startDateTime":"2022-07-27T17:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessm", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":10, - "short":"Beverage and Snack Break", - "sessionToken":"sessm", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29736.ics" - } - }, - { - "id":105828, - "sessionId":29728, - "room":"Liberty C/D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"ietf", - "duration":7200, - "name":"IETF Plenary", - "startDateTime":"2022-07-27T17:30:00", - "status":"sched", - "type":"plenary", - "isBoF":false, - "filterKeywords":[ - "ietf", - "ietf-plenary", - "ietf-sessa", - "plenary" - ], - "groupAcronym":"ietf", - "groupName":"IETF", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ietf-sessa-01" - }, - "orderInMeeting":1, - "short":"IETF Plenary", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/plenary", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/plenary", - "recordings":[ - { - "id":109932, - "name":"recording-114-ietf-3", - "title":"Video recording for IETF on 2022-07-27 at 17:30:00", - "url":"https://www.youtube.com/watch?v=6SLR7lftORY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29728.ics" - } - }, - { - "id":105829, - "sessionId":29750, - "room":"Liberty Ballroom Foyer & Independence Foyer", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Continental Breakfast", - "startDateTime":"2022-07-28T08:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "continental-breakfast", - "secretariat", - "secretariat-sesst", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":11, - "short":"Continental Breakfast", - "sessionToken":"sesst", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29750.ics" - } - }, - { - "id":106054, - "sessionId":29742, - "room":"Philadelphia South", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"emodir", - "duration":3600, - "name":"Newcomers' Feedback Session", - "startDateTime":"2022-07-28T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "emodir", - "emodir-sessc", - "newcomers-feedback-session", - "open_meeting" - ], - "groupAcronym":"emodir", - "groupName":"Education, Mentoring and Outreach Directorate", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":6, - "short":"Newcomers' Feedback Session", - "sessionToken":"sessc", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/emodir", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/emodir", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29742.ics" - } - }, - { - "id":106066, - "sessionId":29771, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rpc", - "duration":30600, - "name":"RPC Office Hours", - "startDateTime":"2022-07-28T08:30:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "officehours", - "rpc", - "rpc-office-hours", - "rpc-sessb" - ], - "groupAcronym":"rpc", - "groupName":"RFC Production Center", - "groupParent":{ - "acronym":"rfceditor" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":4, - "short":"RPC Office Hours", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rpc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rpc", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29771.ics" - } - }, - { - "id":105831, - "sessionId":29726, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":34200, - "name":"IETF Registration", - "startDateTime":"2022-07-28T08:30:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sesse" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":5, - "short":"IETF Registration", - "sessionToken":"sesse", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29726.ics" - } - }, - { - "id":106087, - "sessionId":29787, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":30600, - "name":"IANA Office Hours", - "startDateTime":"2022-07-28T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours", - "officehours", - "secretariat", - "secretariat-sessbe" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":13, - "short":"IANA Office Hours", - "sessionToken":"sessbe", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29787.ics" - } - }, - { - "id":105832, - "sessionId":29757, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":1800, - "name":"ISE Office Hours", - "startDateTime":"2022-07-28T09:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "ise-office-hours", - "officehours", - "secretariat", - "secretariat-sessz" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":12, - "short":"ISE Office Hours", - "sessionToken":"sessz", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29757.ics" - } - }, - { - "id":106076, - "sessionId":29781, - "room":"Independence D", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"edm", - "duration":3000, - "name":"Session 0", - "startDateTime":"2022-07-28T09:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "edm", - "iab", - "regular" - ], - "groupAcronym":"edm", - "groupName":"Evolvability, Deployability, & Maintainability", - "groupParent":{ - "acronym":"iab" - }, - "note":"", - "remoteInstructions":"https://meetings.conf.meetecho.com/ietf114/?group=edm", - "flags":{ - "agenda":false, - "showAgenda":true - }, - "agenda":{ - "url":null - }, - "orderInMeeting":1, - "short":"edm", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/edm", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/edm", - "recordings":[ - { - "id":109988, - "name":"recording-114-edm-1", - "title":"Video recording for EDM on 2022-07-28 at 09:00:00", - "url":"https://www.youtube.com/watch?v=LTRVjihEzHk" - } - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29781.ics" - } - }, - { - "id":106088, - "sessionId":29791, - "room":"Gather", - "location":{ - - }, - "acronym":"secretariat", - "duration":27000, - "name":"IANA Office Hours - Virtual", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "iana-office-hours-online", - "officehours", - "secretariat", - "secretariat-sessbi" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":14, - "short":"IANA Office Hours Online", - "sessionToken":"sessbi", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29791.ics" - } - }, - { - "id":105833, - "sessionId":29592, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"jmap", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "jmap", - "regular" - ], - "groupAcronym":"jmap", - "groupName":"JSON Mail Access Protocol", - "groupParent":{ - "acronym":"art" - }, - "note":"Joint with EXTRA", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-jmap-01" - }, - "orderInMeeting":1, - "short":"jmap", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/jmap", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/jmap", - "recordings":[ - { - "id":110030, - "name":"recording-114-jmap-1", - "title":"Video recording for JMAP on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=FIdC4DiS_1c" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29592.ics" - } - }, - { - "id":105834, - "sessionId":29591, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"intarea", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "int", - "intarea", - "regular" - ], - "groupAcronym":"intarea", - "groupName":"Internet Area Working Group", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-intarea-01" - }, - "orderInMeeting":1, - "short":"intarea", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/intarea", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/intarea", - "recordings":[ - { - "id":109986, - "name":"recording-114-intarea-1", - "title":"Video recording for INTAREA on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=cOBdx7tYxzc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29591.ics" - } - }, - { - "id":105835, - "sessionId":29537, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"icnrg", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "icnrg", - "irtf", - "regular" - ], - "groupAcronym":"icnrg", - "groupName":"Information-Centric Networking", - "groupParent":{ - "acronym":"irtf" - }, - "note":"Shared ICNRG / COINRG", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-icnrg-03" - }, - "orderInMeeting":1, - "short":"icnrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/icnrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/icnrg", - "recordings":[ - { - "id":110063, - "name":"recording-114-icnrg-1", - "title":"Video recording for ICNRG on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=wMoSi7iVEzU" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29537.ics" - } - }, - { - "id":105836, - "sessionId":29582, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rtgwg", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rtg", - "rtgwg" - ], - "groupAcronym":"rtgwg", - "groupName":"Routing Area Working Group", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rtgwg-02" - }, - "orderInMeeting":1, - "short":"rtgwg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rtgwg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rtgwg", - "recordings":[ - { - "id":110034, - "name":"recording-114-rtgwg-1", - "title":"Video recording for RTGWG on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=FfjdqP8eKW8" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29582.ics" - } - }, - { - "id":105837, - "sessionId":29547, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"gnap", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "gnap", - "regular", - "sec" - ], - "groupAcronym":"gnap", - "groupName":"Grant Negotiation and Authorization Protocol", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-gnap-00" - }, - "orderInMeeting":1, - "short":"gnap", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/gnap", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/gnap", - "recordings":[ - { - "id":109987, - "name":"recording-114-gnap-1", - "title":"Video recording for GNAP on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=ezMYbZ1MVXM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29547.ics" - } - }, - { - "id":105838, - "sessionId":29645, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ppm", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ppm", - "regular", - "sec" - ], - "groupAcronym":"ppm", - "groupName":"Privacy Preserving Measurement", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ppm-02" - }, - "orderInMeeting":1, - "short":"ppm", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ppm", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ppm", - "recordings":[ - { - "id":110031, - "name":"recording-114-ppm-1", - "title":"Video recording for PPM on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=UKA9oA9Ogdw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29645.ics" - } - }, - { - "id":105839, - "sessionId":29570, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"teep", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "sec", - "teep" - ], - "groupAcronym":"teep", - "groupName":"Trusted Execution Environment Provisioning", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-teep-00" - }, - "orderInMeeting":1, - "short":"teep", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/teep", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/teep", - "recordings":[ - { - "id":110032, - "name":"recording-114-teep-1", - "title":"Video recording for TEEP on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=L3wbcPM6C-Q" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29570.ics" - } - }, - { - "id":105840, - "sessionId":29549, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"quic", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-28T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "quic", - "regular", - "tsv" - ], - "groupAcronym":"quic", - "groupName":"QUIC", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-quic-02" - }, - "orderInMeeting":1, - "short":"quic", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/quic", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/quic", - "recordings":[ - { - "id":110033, - "name":"recording-114-quic-1", - "title":"Video recording for QUIC on 2022-07-28 at 10:00:00", - "url":"https://www.youtube.com/watch?v=Lcfk7jate_s" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29549.ics" - } - }, - { - "id":105841, - "sessionId":29733, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":5400, - "name":"Break", - "startDateTime":"2022-07-28T12:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessj", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":12, - "short":"Break", - "sessionToken":"sessj", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29733.ics" - } - }, - { - "id":105842, - "sessionId":29761, - "room":"Philadelphia South", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"systers", - "duration":3600, - "name":"Systers Lunch", - "startDateTime":"2022-07-28T12:15:00", - "status":"sched", - "type":"other", - "isBoF":false, - "filterKeywords":[ - "social", - "systers", - "systers-lunch", - "systers-sessb" - ], - "groupAcronym":"systers", - "groupName":"Systers", - "groupParent":{ - "acronym":"gen" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":2, - "short":"Systers Lunch", - "sessionToken":"sessb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/systers", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/systers", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29761.ics" - } - }, - { - "id":105843, - "sessionId":29530, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"avtcore", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "avtcore", - "regular" - ], - "groupAcronym":"avtcore", - "groupName":"Audio/Video Transport Core Maintenance", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-avtcore-05" - }, - "orderInMeeting":1, - "short":"avtcore", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/avtcore", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/avtcore", - "recordings":[ - { - "id":110043, - "name":"recording-114-avtcore-1", - "title":"Video recording for AVTCORE on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=ZhE1-8jRhNc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29530.ics" - } - }, - { - "id":105844, - "sessionId":29538, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"httpbis", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "httpbis", - "regular" - ], - "groupAcronym":"httpbis", - "groupName":"HTTP", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-httpbis-03" - }, - "orderInMeeting":1, - "short":"httpbis", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/httpbis", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/httpbis", - "recordings":[ - { - "id":110040, - "name":"recording-114-httpbis-1", - "title":"Video recording for HTTPBIS on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=7l36GOHCE4s" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29538.ics" - } - }, - { - "id":105845, - "sessionId":29637, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"hrpc", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "hrpc", - "irtf", - "regular" - ], - "groupAcronym":"hrpc", - "groupName":"Human Rights Protocol Considerations", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-hrpc-03" - }, - "orderInMeeting":1, - "short":"hrpc", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/hrpc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/hrpc", - "recordings":[ - { - "id":110053, - "name":"recording-114-hrpc-1", - "title":"Video recording for HRPC on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=dwvUc80aZ8E" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29637.ics" - } - }, - { - "id":105872, - "sessionId":29617, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"panrg", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "irtf", - "panrg", - "regular" - ], - "groupAcronym":"panrg", - "groupName":"Path Aware Networking RG", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-panrg-01" - }, - "orderInMeeting":1, - "short":"panrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/panrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/panrg", - "recordings":[ - { - "id":110028, - "name":"recording-114-panrg-1", - "title":"Video recording for PANRG on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=uU9mTKhcnmw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29617.ics" - } - }, - { - "id":105846, - "sessionId":29529, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"dnsop", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dnsop", - "ops", - "regular" - ], - "groupAcronym":"dnsop", - "groupName":"Domain Name System Operations", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dnsop-04" - }, - "orderInMeeting":1, - "short":"dnsop", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dnsop", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dnsop", - "recordings":[ - { - "id":110044, - "name":"recording-114-dnsop-1", - "title":"Video recording for DNSOP on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=yuQh48xf87U" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29529.ics" - } - }, - { - "id":105847, - "sessionId":29545, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"mboned", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "mboned", - "ops", - "regular" - ], - "groupAcronym":"mboned", - "groupName":"MBONE Deployment", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-mboned-01" - }, - "orderInMeeting":1, - "short":"mboned", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/mboned", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/mboned", - "recordings":[ - { - "id":110035, - "name":"recording-114-mboned-1", - "title":"Video recording for MBONED on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=ApUGFb9EDUc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29545.ics" - } - }, - { - "id":105848, - "sessionId":29558, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"detnet", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "detnet", - "regular", - "rtg" - ], - "groupAcronym":"detnet", - "groupName":"Deterministic Networking", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-detnet-04" - }, - "orderInMeeting":1, - "short":"detnet", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/detnet", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/detnet", - "recordings":[ - { - "id":110041, - "name":"recording-114-detnet-1", - "title":"Video recording for DETNET on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=UZnJVwT4tbI" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29558.ics" - } - }, - { - "id":105849, - "sessionId":29715, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"scitt", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-28T13:30:00", - "status":"sched", - "type":"regular", - "isBoF":true, - "filterKeywords":[ - "bof", - "regular", - "scitt", - "sec" - ], - "groupAcronym":"scitt", - "groupName":"Supply Chain Integrity, Transparency, and Trust", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-scitt-01" - }, - "orderInMeeting":1, - "short":"scitt", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/scitt", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/scitt", - "recordings":[ - { - "id":110027, - "name":"recording-114-scitt-1", - "title":"Video recording for SCITT on 2022-07-28 at 13:30:00", - "url":"https://www.youtube.com/watch?v=6B8Bv0naAIA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29715.ics" - } - }, - { - "id":105851, - "sessionId":29735, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Beverage and Snack Break", - "startDateTime":"2022-07-28T15:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessl", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":13, - "short":"Beverage and Snack Break", - "sessionToken":"sessl", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29735.ics" - } - }, - { - "id":105751, - "sessionId":29632, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dmarc", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "dmarc", - "regular" - ], - "groupAcronym":"dmarc", - "groupName":"Domain-based Message Authentication, Reporting & Conformance", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dmarc-00" - }, - "orderInMeeting":1, - "short":"dmarc", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dmarc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dmarc", - "recordings":[ - { - "id":110049, - "name":"recording-114-dmarc-1", - "title":"Video recording for DMARC on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=b42JFaHxuZA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29632.ics" - } - }, - { - "id":105854, - "sessionId":29559, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"madinas", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "int", - "madinas", - "regular" - ], - "groupAcronym":"madinas", - "groupName":"MAC Address Device Identification for Network and Application Services", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-madinas-02" - }, - "orderInMeeting":1, - "short":"madinas", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/madinas", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/madinas", - "recordings":[ - { - "id":110046, - "name":"recording-114-madinas-1", - "title":"Video recording for MADINAS on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=S7J09AlbMao" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29559.ics" - } - }, - { - "id":105785, - "sessionId":29721, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dinrg", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dinrg", - "irtf", - "regular" - ], - "groupAcronym":"dinrg", - "groupName":"Decentralized Internet Infrastructure", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dinrg-03" - }, - "orderInMeeting":1, - "short":"dinrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dinrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dinrg", - "recordings":[ - { - "id":110050, - "name":"recording-114-dinrg-1", - "title":"Video recording for DINRG on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=8jEcX2y6YXc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29721.ics" - } - }, - { - "id":106056, - "sessionId":29763, - "room":"Liberty D", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"iccrg", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "iccrg", - "irtf", - "regular" - ], - "groupAcronym":"iccrg", - "groupName":"Internet Congestion Control", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-iccrg-00" - }, - "orderInMeeting":1, - "short":"iccrg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iccrg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iccrg", - "recordings":[ - { - "id":110042, - "name":"recording-114-iccrg-1", - "title":"Video recording for ICCRG on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=gr3gsTCaqTE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29763.ics" - } - }, - { - "id":105787, - "sessionId":29628, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"rift", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "rift", - "rtg" - ], - "groupAcronym":"rift", - "groupName":"Routing In Fat Trees", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-rift-00" - }, - "orderInMeeting":1, - "short":"rift", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/rift", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/rift", - "recordings":[ - { - "id":110019, - "name":"recording-114-rift-1", - "title":"Video recording for RIFT on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=QECqH9QDSxw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29628.ics" - } - }, - { - "id":105857, - "sessionId":29600, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"acme", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "acme", - "regular", - "sec" - ], - "groupAcronym":"acme", - "groupName":"Automated Certificate Management Environment", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-acme-02" - }, - "orderInMeeting":1, - "short":"acme", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/acme", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/acme", - "recordings":[ - { - "id":110051, - "name":"recording-114-acme-1", - "title":"Video recording for ACME on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=-8S6Pewifwc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29600.ics" - } - }, - { - "id":105858, - "sessionId":29646, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"privacypass", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "privacypass", - "regular", - "sec" - ], - "groupAcronym":"privacypass", - "groupName":"Privacy Pass", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-privacypass-02" - }, - "orderInMeeting":1, - "short":"privacypass", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/privacypass", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/privacypass", - "recordings":[ - { - "id":110045, - "name":"recording-114-privacypass-1", - "title":"Video recording for PRIVACYPASS on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=Z37Vn9W21Rg" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29646.ics" - } - }, - { - "id":105859, - "sessionId":29533, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"suit", - "duration":3600, - "name":"Session III", - "startDateTime":"2022-07-28T16:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "sec", - "suit" - ], - "groupAcronym":"suit", - "groupName":"Software Updates for Internet of Things", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-suit-00" - }, - "orderInMeeting":1, - "short":"suit", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/suit", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/suit", - "recordings":[ - { - "id":110036, - "name":"recording-114-suit-1", - "title":"Video recording for SUIT on 2022-07-28 at 16:00:00", - "url":"https://www.youtube.com/watch?v=r1IbESe3WLA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29533.ics" - } - }, - { - "id":106061, - "sessionId":29765, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Break", - "startDateTime":"2022-07-28T17:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "break", - "secretariat", - "secretariat-sessbb", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":14, - "short":"Break", - "sessionToken":"sessbb", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29765.ics" - } - }, - { - "id":105860, - "sessionId":29639, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"cbor", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "cbor", - "regular" - ], - "groupAcronym":"cbor", - "groupName":"Concise Binary Object Representation Maintenance and Extensions", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-cbor-03" - }, - "orderInMeeting":1, - "short":"cbor", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/cbor", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/cbor", - "recordings":[ - { - "id":110061, - "name":"recording-114-cbor-1", - "title":"Video recording for CBOR on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=ofRQx4KhIK0" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29639.ics" - } - }, - { - "id":105861, - "sessionId":29612, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"regext", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regext", - "regular" - ], - "groupAcronym":"regext", - "groupName":"Registration Protocols Extensions", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-regext-01" - }, - "orderInMeeting":1, - "short":"regext", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/regext", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/regext", - "recordings":[ - { - "id":110062, - "name":"recording-114-regext-1", - "title":"Video recording for REGEXT on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=tZiFRpi04Ao" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29612.ics" - } - }, - { - "id":105863, - "sessionId":29656, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dhc", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dhc", - "int", - "regular" - ], - "groupAcronym":"dhc", - "groupName":"Dynamic Host Configuration", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dhc-02" - }, - "orderInMeeting":1, - "short":"dhc", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dhc", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dhc", - "recordings":[ - { - "id":110064, - "name":"recording-114-dhc-1", - "title":"Video recording for DHC on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=GeEEcVt8sZw" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29656.ics" - } - }, - { - "id":105864, - "sessionId":29659, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dnssd", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dnssd", - "int", - "regular" - ], - "groupAcronym":"dnssd", - "groupName":"Extensions for Scalable DNS Service Discovery", - "groupParent":{ - "acronym":"int" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dnssd-05" - }, - "orderInMeeting":1, - "short":"dnssd", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dnssd", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dnssd", - "recordings":[ - { - "id":110048, - "name":"recording-114-dnssd-1", - "title":"Video recording for DNSSD on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=Ot3AhRjStzY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29659.ics" - } - }, - { - "id":105865, - "sessionId":29571, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"grow", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "grow", - "ops", - "regular" - ], - "groupAcronym":"grow", - "groupName":"Global Routing Operations", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-grow-01" - }, - "orderInMeeting":1, - "short":"grow", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/grow", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/grow", - "recordings":[ - { - "id":110039, - "name":"recording-114-grow-1", - "title":"Video recording for GROW on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=aApiWc4CO6Y" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29571.ics" - } - }, - { - "id":105776, - "sessionId":29575, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"pce", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "pce", - "pce-sessa", - "regular", - "rtg" - ], - "groupAcronym":"pce", - "groupName":"Path Computation Element", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-pce-01" - }, - "orderInMeeting":2, - "short":"pce", - "sessionToken":"sessa", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/pce", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/pce", - "recordings":[ - { - "id":110065, - "name":"recording-114-pce-2", - "title":"Video recording for PCE on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=nU78N-uebIc" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29575.ics" - } - }, - { - "id":105866, - "sessionId":29635, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"dance", - "duration":3600, - "name":"Session IV", - "startDateTime":"2022-07-28T17:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "dance", - "regular", - "sec" - ], - "groupAcronym":"dance", - "groupName":"DANE Authentication for Network Clients Everywhere", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-dance-00" - }, - "orderInMeeting":1, - "short":"dance", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/dance", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/dance", - "recordings":[ - { - "id":110052, - "name":"recording-114-dance-1", - "title":"Video recording for DANCE on 2022-07-28 at 17:30:00", - "url":"https://www.youtube.com/watch?v=e6r-kIEYQ5U" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29635.ics" - } - }, - { - "id":105868, - "sessionId":29751, - "room":"Liberty Ballroom Foyer & Independence Foyer", - "location":{ - - }, - "acronym":"secretariat", - "duration":5400, - "name":"Continental Breakfast", - "startDateTime":"2022-07-29T08:30:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "continental-breakfast", - "secretariat", - "secretariat-sessu", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":15, - "short":"Continental Breakfast", - "sessionToken":"sessu", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29751.ics" - } - }, - { - "id":105869, - "sessionId":29727, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":16200, - "name":"IETF Registration", - "startDateTime":"2022-07-29T08:30:00", - "status":"sched", - "type":"reg", - "isBoF":false, - "filterKeywords":[ - "admin", - "ietf-registration", - "secretariat", - "secretariat-sessf" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":6, - "short":"IETF Registration", - "sessionToken":"sessf", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29727.ics" - } - }, - { - "id":105871, - "sessionId":29567, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"httpapi", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "httpapi", - "regular" - ], - "groupAcronym":"httpapi", - "groupName":"Building Blocks for HTTP APIs", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-httpapi-02" - }, - "orderInMeeting":1, - "short":"httpapi", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/httpapi", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/httpapi", - "recordings":[ - { - "id":110079, - "name":"recording-114-httpapi-1", - "title":"Video recording for HTTPAPI on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=ov14iZJxP_w" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29567.ics" - } - }, - { - "id":105873, - "sessionId":29590, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"mops", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "mops", - "ops", - "regular" - ], - "groupAcronym":"mops", - "groupName":"Media OPerationS", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-mops-04" - }, - "orderInMeeting":1, - "short":"mops", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/mops", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/mops", - "recordings":[ - { - "id":110078, - "name":"recording-114-mops-1", - "title":"Video recording for MOPS on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=64MCGa242BM" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29590.ics" - } - }, - { - "id":105874, - "sessionId":29572, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"opsawg", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ops", - "opsawg", - "regular" - ], - "groupAcronym":"opsawg", - "groupName":"Operations and Management Area Working Group", - "groupParent":{ - "acronym":"ops" - }, - "note":"Combined OpsAWG/OpsAREA", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-opsawg-01" - }, - "orderInMeeting":1, - "short":"opsawg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/opsawg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/opsawg", - "recordings":[ - { - "id":110077, - "name":"recording-114-opsawg-1", - "title":"Video recording for OPSAWG on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=UuS2YRwc0WI" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29572.ics" - } - }, - { - "id":105885, - "sessionId":29540, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"lsr", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "lsr", - "regular", - "rtg" - ], - "groupAcronym":"lsr", - "groupName":"Link State Routing", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-lsr-03" - }, - "orderInMeeting":1, - "short":"lsr", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/lsr", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/lsr", - "recordings":[ - { - "id":110080, - "name":"recording-114-lsr-1", - "title":"Video recording for LSR on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=C8IW2aqXOyA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29540.ics" - } - }, - { - "id":105876, - "sessionId":29687, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"manet", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "manet", - "regular", - "rtg" - ], - "groupAcronym":"manet", - "groupName":"Mobile Ad-hoc Networks", - "groupParent":{ - "acronym":"rtg" - }, - "note":"Joint MANET/BABEL/ROLL", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-manet-02" - }, - "orderInMeeting":1, - "short":"manet", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/manet", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/manet", - "recordings":[ - { - "id":110091, - "name":"recording-114-manet-1", - "title":"Video recording for MANET on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=UQazU4yO5Ao" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29687.ics" - } - }, - { - "id":105748, - "sessionId":29618, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"openpgp", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "openpgp", - "regular", - "sec" - ], - "groupAcronym":"openpgp", - "groupName":"Open Specification for Pretty Good Privacy", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-openpgp-00" - }, - "orderInMeeting":1, - "short":"openpgp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/openpgp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/openpgp", - "recordings":[ - { - "id":110092, - "name":"recording-114-openpgp-1", - "title":"Video recording for OPENPGP on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=HJF5V3Glu9c" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29618.ics" - } - }, - { - "id":105850, - "sessionId":29666, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"tcpm", - "duration":7200, - "name":"Session I", - "startDateTime":"2022-07-29T10:00:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "regular", - "tcpm", - "tsv" - ], - "groupAcronym":"tcpm", - "groupName":"TCP Maintenance and Minor Extensions", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-tcpm-03" - }, - "orderInMeeting":1, - "short":"tcpm", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/tcpm", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/tcpm", - "recordings":[ - { - "id":110087, - "name":"recording-114-tcpm-1", - "title":"Video recording for TCPM on 2022-07-29 at 10:00:00", - "url":"https://www.youtube.com/watch?v=nhNtIXoDM50" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29666.ics" - } - }, - { - "id":105879, - "sessionId":29734, - "room":"Liberty Ballroom Foyer", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"secretariat", - "duration":1800, - "name":"Beverage and Snack Break", - "startDateTime":"2022-07-29T12:00:00", - "status":"sched", - "type":"break", - "isBoF":false, - "filterKeywords":[ - "beverage-and-snack-break", - "secretariat", - "secretariat-sessk", - "social" - ], - "groupAcronym":"secretariat", - "groupName":"Application Administrators", - "groupParent":{ - - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":false, - "showAgenda":false - }, - "agenda":{ - "url":null - }, - "orderInMeeting":16, - "short":"Beverage and Snack Break", - "sessionToken":"sessk", - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/secretariat", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/secretariat", - "recordings":[ - - ], - "videoStream":null, - "audioStream":null, - "webex":null, - "onsiteTool":null, - "calendar":"/meeting/114/session/29734.ics" - } - }, - { - "id":105880, - "sessionId":29593, - "room":"Freedom G", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"cdni", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "cdni", - "regular" - ], - "groupAcronym":"cdni", - "groupName":"Content Delivery Networks Interconnection", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-cdni-01" - }, - "orderInMeeting":1, - "short":"cdni", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/cdni", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/cdni", - "recordings":[ - { - "id":110090, - "name":"recording-114-cdni-1", - "title":"Video recording for CDNI on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=LS7PrjEsAgA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29593.ics" - } - }, - { - "id":105881, - "sessionId":29569, - "room":"Independence A/B", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"scim", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "art", - "regular", - "scim" - ], - "groupAcronym":"scim", - "groupName":"System for Cross-domain Identity Management", - "groupParent":{ - "acronym":"art" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-scim-02" - }, - "orderInMeeting":1, - "short":"scim", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/scim", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/scim", - "recordings":[ - { - "id":110093, - "name":"recording-114-scim-1", - "title":"Video recording for SCIM on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=WVn9iLLkfrE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29569.ics" - } - }, - { - "id":105883, - "sessionId":29667, - "room":"Liberty C", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"maprg", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "irtf", - "maprg", - "regular" - ], - "groupAcronym":"maprg", - "groupName":"Measurement and Analysis for Protocols", - "groupParent":{ - "acronym":"irtf" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-maprg-06" - }, - "orderInMeeting":1, - "short":"maprg", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/maprg", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/maprg", - "recordings":[ - { - "id":110088, - "name":"recording-114-maprg-1", - "title":"Video recording for MAPRG on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=Yo5_HWHu_oA" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29667.ics" - } - }, - { - "id":105884, - "sessionId":29544, - "room":"Freedom E/F", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"iotops", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "iotops", - "ops", - "regular" - ], - "groupAcronym":"iotops", - "groupName":"IOT Operations", - "groupParent":{ - "acronym":"ops" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-iotops-02" - }, - "orderInMeeting":1, - "short":"iotops", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/iotops", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/iotops", - "recordings":[ - { - "id":110085, - "name":"recording-114-iotops-1", - "title":"Video recording for IOTOPS on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=YSmxis1puuE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29544.ics" - } - }, - { - "id":105875, - "sessionId":29541, - "room":"Liberty B", - "location":{ - "short":"B", - "name":"Ballroom" - }, - "acronym":"ccamp", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ccamp", - "regular", - "rtg" - ], - "groupAcronym":"ccamp", - "groupName":"Common Control and Measurement Plane", - "groupParent":{ - "acronym":"rtg" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ccamp-02" - }, - "orderInMeeting":1, - "short":"ccamp", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ccamp", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ccamp", - "recordings":[ - { - "id":110089, - "name":"recording-114-ccamp-1", - "title":"Video recording for CCAMP on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=sUHF-Sf_rCE" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29541.ics" - } - }, - { - "id":105886, - "sessionId":29564, - "room":"Independence C", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"mls", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "mls", - "regular", - "sec" - ], - "groupAcronym":"mls", - "groupName":"Messaging Layer Security", - "groupParent":{ - "acronym":"sec" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-mls-02" - }, - "orderInMeeting":1, - "short":"mls", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/mls", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/mls", - "recordings":[ - { - "id":110086, - "name":"recording-114-mls-1", - "title":"Video recording for MLS on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=_eky6T6O1KY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29564.ics" - } - }, - { - "id":105887, - "sessionId":29670, - "room":"Philadelphia North", - "location":{ - "short":"M", - "name":"Mezzanine" - }, - "acronym":"ippm", - "duration":7200, - "name":"Session II", - "startDateTime":"2022-07-29T12:30:00", - "status":"sched", - "type":"regular", - "isBoF":false, - "filterKeywords":[ - "ippm", - "regular", - "tsv" - ], - "groupAcronym":"ippm", - "groupName":"IP Performance Measurement", - "groupParent":{ - "acronym":"tsv" - }, - "note":"", - "remoteInstructions":"", - "flags":{ - "agenda":true, - "showAgenda":true - }, - "agenda":{ - "url":"https://datatracker.ietf.org/meeting/114/materials/agenda-114-ippm-02" - }, - "orderInMeeting":1, - "short":"ippm", - "sessionToken":null, - "links":{ - "chat":"https://zulip.ietf.org/#narrow/stream/ippm", - "chatArchive":"https://zulip.ietf.org/#narrow/stream/ippm", - "recordings":[ - { - "id":110094, - "name":"recording-114-ippm-1", - "title":"Video recording for IPPM on 2022-07-29 at 12:30:00", - "url":"https://www.youtube.com/watch?v=wRhzhBrH-KY" - } - ], - "videoStream":"https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "audioStream":"https://mp3.conf.meetecho.com/ietf114/{group.acronym}/{order_number}.m3u", - "webex":null, - "onsiteTool":"https://meetings.conf.meetecho.com/onsite{meeting.number}/?group={group.acronym}&short={short}&item={order_number}", - "calendar":"/meeting/114/session/29670.ics" - } - } - ], - "floors":[ - { - "id":90, - "image":"https://www.ietf.org/lib/dt/media/floor/floorplan-114-mezzanine_rLWTiOi.png", - "name":"Mezzanine", - "short":"M", - "width":2094, - "height":1650, - "rooms":[ - { - "id":849, - "name":"Freedom G", - "functionalName":"Breakout 2", - "slug":"freedom-g", - "left":805, - "right":1225, - "top":1245, - "bottom":1425 - }, - { - "id":848, - "name":"Independence D", - "functionalName":"IAB Office", - "slug":"independence-d", - "left":530, - "right":830, - "top":820, - "bottom":910 - }, - { - "id":847, - "name":"Salon 1", - "functionalName":"LLC Office", - "slug":"salon-1", - "left":915, - "right":1035, - "top":170, - "bottom":225 - }, - { - "id":846, - "name":"Salon 7", - "functionalName":"NomCom Office", - "slug":"salon-7", - "left":1390, - "right":1470, - "top":170, - "bottom":200 - }, - { - "id":845, - "name":"Salon 5/6", - "functionalName":"Secretariat Office", - "slug":"salon-5-6", - "left":1200, - "right":1320, - "top":170, - "bottom":350 - }, - { - "id":844, - "name":"Salon 2", - "functionalName":"IESG Office", - "slug":"salon-2", - "left":900, - "right":980, - "top":290, - "bottom":360 - }, - { - "id":843, - "name":"Salon 10", - "functionalName":"Terminal Room", - "slug":"salon-10", - "left":1750, - "right":1910, - "top":140, - "bottom":250 - }, - { - "id":842, - "name":"Salon 3/4", - "functionalName":"NOC", - "slug":"salon-3-4", - "left":1050, - "right":1180, - "top":170, - "bottom":350 - }, - { - "id":841, - "name":"Salon 9", - "functionalName":"Attendee Sign-Up (16)", - "slug":"salon-9", - "left":1580, - "right":1750, - "top":170, - "bottom":195 - }, - { - "id":828, - "name":"Freedom E/F", - "functionalName":"Breakout 5", - "slug":"freedom-e-f", - "left":500, - "right":1040, - "top":950, - "bottom":1200 - }, - { - "id":827, - "name":"Independence A/B", - "functionalName":"Breakout 4", - "slug":"independence-a-b", - "left":590, - "right":1060, - "top":550, - "bottom":780 - }, - { - "id":826, - "name":"Philadelphia North", - "functionalName":"Breakout 3", - "slug":"philadelphia-north", - "left":870, - "right":1180, - "top":430, - "bottom":510 - }, - { - "id":825, - "name":"Philadelphia South", - "functionalName":"Attendee Sign-Up (40)", - "slug":"philadelphia-south", - "left":660, - "right":850, - "top":430, - "bottom":510 - }, - { - "id":824, - "name":"Independence C", - "functionalName":"Breakout 1", - "slug":"independence-c", - "left":840, - "right":1050, - "top":820, - "bottom":910 - } - ] - }, - { - "id":91, - "image":"https://www.ietf.org/lib/dt/media/floor/floorplan-114-ballroom.png", - "name":"Ballroom", - "short":"B", - "width":2496, - "height":1142, - "rooms":[ - { - "id":835, - "name":"Liberty A", - "functionalName":"Hackathon", - "slug":"liberty-a", - "left":770, - "right":1440, - "top":160, - "bottom":290 - }, - { - "id":834, - "name":"Liberty C/D", - "functionalName":"Welcome Reception", - "slug":"liberty-c-d", - "left":630, - "right":1440, - "top":520, - "bottom":670 - }, - { - "id":833, - "name":"Liberty Ballroom Foyer", - "functionalName":"Registration", - "slug":"liberty-ballroom-foyer", - "left":1580, - "right":1790, - "top":260, - "bottom":400 - }, - { - "id":832, - "name":"Liberty C/D", - "functionalName":"Plenary", - "slug":"liberty-c-d", - "left":630, - "right":1440, - "top":520, - "bottom":670 - }, - { - "id":831, - "name":"Liberty D", - "functionalName":"Breakout 8", - "slug":"liberty-d", - "left":550, - "right":1440, - "top":730, - "bottom":930 - }, - { - "id":830, - "name":"Liberty C", - "functionalName":"Breakout 7", - "slug":"liberty-c", - "left":630, - "right":1440, - "top":520, - "bottom":670 - }, - { - "id":829, - "name":"Liberty B", - "functionalName":"Breakout 6", - "slug":"liberty-b", - "left":700, - "right":1440, - "top":340, - "bottom":470 - } - ] - } - ] -} diff --git a/dev/vite-plugins/serve-preview-assets.js b/dev/vite-plugins/serve-preview-assets.js index 95c6dc3de..3d7b13327 100644 --- a/dev/vite-plugins/serve-preview-assets.js +++ b/dev/vite-plugins/serve-preview-assets.js @@ -7,7 +7,7 @@ export default function servePreviewAssets () { name: 'serve-preview-assets', configurePreviewServer(server) { server.middlewares.use('/media/floor', (req, res, next) => { - send(req, url.parse(req.url).pathname, { root: path.join(process.cwd(), 'cypress/fixtures/floor-plan-images') }).pipe(res) + send(req, url.parse(req.url).pathname, { root: path.join(process.cwd(), 'playwright/data/floor-plan-images') }).pipe(res) }) } } diff --git a/package.json b/package.json index bee9732e8..5056c9579 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "eslint-config-standard": "17.0.0", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-import": "2.26.0", + "eslint-plugin-n": "15.2.5", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "6.0.1", "eslint-plugin-vue": "9.4.0", diff --git a/playwright/.editorconfig b/playwright/.editorconfig new file mode 100644 index 000000000..bf1dfba38 --- /dev/null +++ b/playwright/.editorconfig @@ -0,0 +1,6 @@ +[*.js] +indent_size = 2 +indent_style = space +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/playwright/.eslintrc.js b/playwright/.eslintrc.js new file mode 100644 index 000000000..09c5cd33c --- /dev/null +++ b/playwright/.eslintrc.js @@ -0,0 +1,16 @@ +module.exports = { + "env": { + "browser": true, + "commonjs": true, + "es2021": true, + "node": true + }, + "extends": "standard", + "overrides": [ + ], + "parserOptions": { + "ecmaVersion": "latest" + }, + "rules": { + } +} diff --git a/playwright/.gitignore b/playwright/.gitignore new file mode 100644 index 000000000..75e854d8d --- /dev/null +++ b/playwright/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/playwright/README.md b/playwright/README.md new file mode 100644 index 000000000..78580f21e --- /dev/null +++ b/playwright/README.md @@ -0,0 +1,57 @@ +# Playwright +##### Frontend testing automation tool + +- [Playwright Website](https://playwright.dev/) +- [Playwright Docs](https://playwright.dev/docs/intro) +- [Playwright API Reference](https://playwright.dev/docs/api/class-test) +- [Online Trace Viewer](https://trace.playwright.dev/) + +## Install + +Make sure you run all commands from the `/playwright` directory, not the project root. + +``` +npm install +npx playwright install --with-deps +``` + +## Usage + +Running all tests headless: +``` +npm test +``` + +Running all tests serially in visual mode (headed): +``` +npm run test:visual +``` + +Running all tests in debug mode: +``` +npm run test:debug +``` + +## Advanced Usage + +> Refer to the [CLI Reference](https://playwright.dev/docs/test-cli#reference) for all possible options. + +Running a single test file: +``` +npx playwright test foo.spec.ts +``` + +Running test files that have `foo` or `bar` in the filename: +``` +npx playwright test foo bar +``` + +Running tests in a specific browser *(e.g. chromium)*: +``` +npx playwright test --project=chromium +``` + +Running tests in headed mode: +``` +npx playwright test --headed +``` diff --git a/cypress/fixtures/agenda-settings.json b/playwright/data/agenda-settings.json similarity index 100% rename from cypress/fixtures/agenda-settings.json rename to playwright/data/agenda-settings.json diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-1.png b/playwright/data/floor-plan-images/meeting-floor-1.png similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-1.png rename to playwright/data/floor-plan-images/meeting-floor-1.png diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-2.png b/playwright/data/floor-plan-images/meeting-floor-2.png similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-2.png rename to playwright/data/floor-plan-images/meeting-floor-2.png diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-3.png b/playwright/data/floor-plan-images/meeting-floor-3.png similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-3.png rename to playwright/data/floor-plan-images/meeting-floor-3.png diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-4.jpg b/playwright/data/floor-plan-images/meeting-floor-4.jpg similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-4.jpg rename to playwright/data/floor-plan-images/meeting-floor-4.jpg diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-5.jpg b/playwright/data/floor-plan-images/meeting-floor-5.jpg similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-5.jpg rename to playwright/data/floor-plan-images/meeting-floor-5.jpg diff --git a/cypress/fixtures/floor-plan-images/meeting-floor-6.jpg b/playwright/data/floor-plan-images/meeting-floor-6.jpg similarity index 100% rename from cypress/fixtures/floor-plan-images/meeting-floor-6.jpg rename to playwright/data/floor-plan-images/meeting-floor-6.jpg diff --git a/cypress/fixtures/meeting-floors.json b/playwright/data/meeting-floors.json similarity index 100% rename from cypress/fixtures/meeting-floors.json rename to playwright/data/meeting-floors.json diff --git a/playwright/helpers/common.js b/playwright/helpers/common.js new file mode 100644 index 000000000..5ba39ba02 --- /dev/null +++ b/playwright/helpers/common.js @@ -0,0 +1,17 @@ +module.exports = { + /** + * Validate whether a selector is visible in viewport + * + * @param {Object} page Page object + * @param {String} selector Selector to validate + * @returns Boolean + */ + isIntersectingViewport: async (page, selector) => { + return page.$eval(selector, async el => { + const bottom = window.innerHeight + const rect = el.getBoundingClientRect() + + return rect.top < bottom && rect.top > 0 - rect.height + }) + } +} diff --git a/cypress/generators/meeting.js b/playwright/helpers/meeting.js similarity index 85% rename from cypress/generators/meeting.js rename to playwright/helpers/meeting.js index 88f0bc2fd..bb5c19da8 100644 --- a/cypress/generators/meeting.js +++ b/playwright/helpers/meeting.js @@ -1,12 +1,14 @@ -import { DateTime } from 'luxon' -import { faker } from '@faker-js/faker' -import seedrandom from 'seedrandom' -import _lodash from 'lodash' // Cannot use lodash-es as we need to runInContext for constant randomness -import { startCase, times } from 'lodash-es' -import slugify from 'slugify' -import ms from 'ms' +const { DateTime } = require('luxon') +const { faker } = require('@faker-js/faker') +const seedrandom = require('seedrandom') +const _ = require('lodash') +const slugify = require('slugify') +const ms = require('ms') -import floorsMeta from '../fixtures/meeting-floors.json' +const floorsMeta = require('../data/meeting-floors') + +const urlRe = /http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+/ +const conferenceDomains = ['webex.com', 'zoom.us', 'jitsi.org', 'meetecho.com', 'gather.town'] const xslugify = (str) => slugify(str.replace('/', '-'), { lower: true, strict: true }) @@ -20,7 +22,7 @@ const sessionsWithWebex = [3, 4] // Use constant randomness seed seedrandom(TEST_SEED.toString(), { global: true }) faker.seed(TEST_SEED) -const { sample, sampleSize } = _lodash.runInContext() +const { sample, sampleSize } = _.runInContext() /** * Generate area response from label + children @@ -85,7 +87,6 @@ function findAreaGroup (slug, areas) { throw new Error('Requested group does not exist!') } - /** * Reverse areas and groups mapping */ @@ -142,10 +143,12 @@ function createEvent ({ id: ++lastEventId, sessionId: ++lastSessionId, room: room.name, - location: hasLocation ? { - short: floor.short, - name: floor.name - } : {}, + location: hasLocation + ? { + short: floor.short, + name: floor.name + } + : {}, acronym: group.keyword, duration: typeof duration === 'string' ? ms(duration) / 1000 : duration, name: eventName, @@ -154,9 +157,9 @@ function createEvent ({ type, isBoF, filterKeywords: [ - "coding", - "hackathon", - "hackathon-sessc" + 'coding', + 'hackathon', + 'hackathon-sessc' ], groupAcronym: group.keyword, groupName: faker.lorem.sentence(faker.mersenne.rand(5, 2)), @@ -170,22 +173,24 @@ function createEvent ({ showAgenda }, agenda: { - url: hasAgenda ? `https://datatracker.ietf.org/meeting/123/materials/agenda-123-ietf-sessa-00` : null + url: hasAgenda ? 'https://datatracker.ietf.org/meeting/123/materials/agenda-123-ietf-sessa-00' : null }, orderInMeeting: 1, short: eventName, - sessionToken: "sessa", + sessionToken: 'sessa', links: { chat: `https://zulip.ietf.org/#narrow/stream/${group.keyword}`, chatArchive: `https://zulip.ietf.org/#narrow/stream/${group.keyword}`, - recordings: hasRecordings ? [ - { - id: ++lastRecordingId, - name: `recording-123-${group.keyword}-1`, - title: `Video recording for ${group.keyword} on ${startDateTime.toFormat('yyyy-LL-dd \'at\' HH:mm:ss')}`, - url: "https://www.youtube.com/watch?v=1eq_5xvacl0" - } - ] : [], + recordings: hasRecordings + ? [ + { + id: ++lastRecordingId, + name: `recording-123-${group.keyword}-1`, + title: `Video recording for ${group.keyword} on ${startDateTime.toFormat('yyyy-LL-dd \'at\' HH:mm:ss')}`, + url: 'https://www.youtube.com/watch?v=1eq_5xvacl0' + } + ] + : [], videoStream: showAgenda && hasVideoStream ? 'https://meetings.conf.meetecho.com/ietf{meeting.number}/?group={group.acronym}&short={short}&item={order_number}' : null, audioStream: hasAgenda ? 'https://mp3.conf.meetecho.com/ietf123/{group.acronym}/{order_number}.m3u' : null, webex: hasWebex ? 'https://webex.com/123' : null, @@ -195,7 +200,7 @@ function createEvent ({ } } -export default { +module.exports = { /** * Generate a standard agenda data reponse */ @@ -219,17 +224,17 @@ export default { const endDate = startDate.plus({ days: 7 }) // Generate floors - const floors = times(6, (idx) => { + const floors = _.times(6, (idx) => { const floorIdx = idx + 1 const floor = floorsMeta[idx] return { id: floorIdx, image: `/media/floor/${floor.path}`, - name: `Level ${startCase(faker.color.human())} ${floorIdx}`, + name: `Level ${_.startCase(faker.color.human())} ${floorIdx}`, short: `L${floorIdx}`, width: floor.width, height: floor.height, - rooms: times(faker.mersenne.rand(10, 5), (ridx) => { + rooms: _.times(faker.mersenne.rand(10, 5), (ridx) => { const roomName = `${faker.science.chemicalElement().name} ${floorIdx}-${ridx + 1}` // Keep 10% margin on each side const roomXUnit = Math.round(floor.width / 10) @@ -239,7 +244,7 @@ export default { return { id: floorIdx * 100 + ridx, name: roomName, - functionalName: startCase(faker.lorem.words(2)), + functionalName: _.startCase(faker.lorem.words(2)), slug: xslugify(roomName), left: roomX, right: roomX + roomXUnit, @@ -262,7 +267,7 @@ export default { for (const area of firstAreasNames) { firstAreas.push(createArea({ label: area, - children: times(faker.mersenne.rand(25, 2), (idx) => { + children: _.times(faker.mersenne.rand(25, 2), (idx) => { return createGroup({ mayBeBof: true }) }) })) @@ -275,7 +280,7 @@ export default { for (const area of ['UVW', 'XYZ0']) { secondAreas.push(createArea({ label: area, - children: times(faker.mersenne.rand(25, 2), (idx) => { + children: _.times(faker.mersenne.rand(25, 2), (idx) => { return createGroup({ mayBeBof: true }) }) })) @@ -301,13 +306,13 @@ export default { }), createArea({ label: 'Office hours', - children: firstAreasNames.map(n => createGroup({ label: `${n} Office Hours`})) + children: firstAreasNames.map(n => createGroup({ label: `${n} Office Hours` })) }), createArea({ label: 'Open meeting', children: [ createGroup({ label: 'WG Chairs Forum' }), - createGroup({ label: `Newcomers' Feedback Session` }) + createGroup({ label: 'Newcomers\' Feedback Session' }) ] }), createArea({ @@ -327,7 +332,7 @@ export default { createArea({ label: 'Social', children: [ - createGroup({ label: `Newcomers' Quick Connections` }), + createGroup({ label: 'Newcomers\' Quick Connections' }), createGroup({ label: 'Welcome Reception', toggledBy: ['ietf'] }), createGroup({ label: 'Break', toggledBy: ['secretariat'] }), createGroup({ label: 'Beverage and Snack Break', toggledBy: ['secretariat'] }), @@ -337,7 +342,7 @@ export default { createArea({ label: 'Tutorial', children: [ - createGroup({ label: `Tutorial: Newcomers' Overview` }) + createGroup({ label: 'Tutorial: Newcomers\' Overview' }) ] }), createArea({ @@ -434,7 +439,7 @@ export default { }, floors)) schedule.push(createEvent({ - name: `Newcomers' Quick Connections (Note that pre-registration is required)`, + name: 'Newcomers\' Quick Connections (Note that pre-registration is required)', startDateTime: day2.set({ hour: 16 }), duration: '1h', ...findAreaGroup('newcomers-quick-connections', categories[2]), @@ -506,7 +511,7 @@ export default { }, floors)) // -> Session I - times(8, () => { // 8 lanes per session time + _.times(8, () => { // 8 lanes per session time const { area, ...group } = daySessions.pop() schedule.push(createEvent({ name: 'Session I', @@ -535,7 +540,7 @@ export default { }, floors)) // -> Session II - times(8, () => { // 8 lanes per session time + _.times(8, () => { // 8 lanes per session time const { area, ...group } = daySessions.pop() schedule.push(createEvent({ name: 'Session II', @@ -564,9 +569,9 @@ export default { type: 'break', ...findAreaGroup('beverage-and-snack-break', categories[2]) }, floors)) - + // -> Session III - times(8, () => { // 8 lanes per session time + _.times(8, () => { // 8 lanes per session time const { area, ...group } = daySessions.pop() schedule.push(createEvent({ name: 'Session III', @@ -627,5 +632,41 @@ export default { schedule, floors } + }, + + /** + * Format URL by replacing inline variables + * + * @param {String} url Raw URL + * @param {Object} session Session Object + * @param {String} meetingNumber Meeting Number + * @returns Formatted URL + */ + formatLinkUrl: (url, session, meetingNumber) => { + return url + ? url.replace('{meeting.number}', meetingNumber) + .replace('{group.acronym}', session.groupAcronym) + .replace('{short}', session.short) + .replace('{order_number}', session.orderInMeeting) + : url + }, + + /** + * Find the first URL in text matching a conference domain + * + * @param {String} txt Raw Text + * @returns First URL found + */ + findFirstConferenceUrl: (txt) => { + try { + const fUrl = txt.match(urlRe) + if (fUrl && fUrl[0].length > 0) { + const pUrl = new URL(fUrl[0]) + if (conferenceDomains.some(d => pUrl.hostname.endsWith(d))) { + return fUrl[0] + } + } + } catch (err) { } + return null } } diff --git a/playwright/helpers/viewports.js b/playwright/helpers/viewports.js new file mode 100644 index 000000000..0067af172 --- /dev/null +++ b/playwright/helpers/viewports.js @@ -0,0 +1,6 @@ +module.exports = { + desktop: [1536, 960], + smallDesktop: [1280, 800], + tablet: [768, 1024], + mobile: [360, 760] +} diff --git a/playwright/package-lock.json b/playwright/package-lock.json new file mode 100644 index 000000000..688c76b40 --- /dev/null +++ b/playwright/package-lock.json @@ -0,0 +1,4015 @@ +{ + "name": "playwright", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "playwright", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@faker-js/faker": "^7.5.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "luxon": "^3.0.3", + "ms": "^2.1.3", + "seedrandom": "^3.0.5", + "slugify": "^1.6.5" + }, + "devDependencies": { + "@playwright/test": "^1.25.2", + "eslint": "^8.23.1", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.2.5", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.0.1" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@faker-js/faker": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.5.0.tgz", + "integrity": "sha512-8wNUCCUHvfvI0gQpDUho/3gPzABffnCn5um65F8dzQ86zz6dlt4+nmAA7PQUc8L+eH+9RgR/qzy5N/8kN0Ozdw==", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@playwright/test": { + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.25.2.tgz", + "integrity": "sha512-6qPznIR4Fw02OMbqXUPMG6bFFg1hDVNEdihKy0t9K0dmRbus1DyP5Q5XFQhGwEHQkLG5hrSfBuu9CW/foqhQHQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.25.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.7.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz", + "integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/es-abstract": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.2", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", + "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-plugin-n": { + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.5.tgz", + "integrity": "sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.10.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", + "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": 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==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", + "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/luxon": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.3.tgz", + "integrity": "sha512-+EfHWnF+UT7GgTnq5zXg3ldnTKL2zdv7QJgsU5bjjpbH17E3qi/puMhQyJVYuCq+FRkogvB5WB6iVvUr+E4a7w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright-core": { + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.25.2.tgz", + "integrity": "sha512-0yTbUE9lIddkEpLHL3u8PoCL+pWiZtj5A/j3U7YoNjcmKKDGBnCrgHJMzwd2J5vy6l28q4ki3JIuz7McLHhl1A==", + "dev": true, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@eslint/eslintrc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@faker-js/faker": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.5.0.tgz", + "integrity": "sha512-8wNUCCUHvfvI0gQpDUho/3gPzABffnCn5um65F8dzQ86zz6dlt4+nmAA7PQUc8L+eH+9RgR/qzy5N/8kN0Ozdw==" + }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@playwright/test": { + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.25.2.tgz", + "integrity": "sha512-6qPznIR4Fw02OMbqXUPMG6bFFg1hDVNEdihKy0t9K0dmRbus1DyP5Q5XFQhGwEHQkLG5hrSfBuu9CW/foqhQHQ==", + "dev": true, + "requires": { + "@types/node": "*", + "playwright-core": "1.25.2" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "18.7.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz", + "integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==", + "dev": true + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.2", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-config-standard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", + "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-n": { + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.5.tgz", + "integrity": "sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g==", + "dev": true, + "requires": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.10.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.7" + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", + "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", + "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", + "dev": true + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "luxon": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.3.tgz", + "integrity": "sha512-+EfHWnF+UT7GgTnq5zXg3ldnTKL2zdv7QJgsU5bjjpbH17E3qi/puMhQyJVYuCq+FRkogvB5WB6iVvUr+E4a7w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "playwright-core": { + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.25.2.tgz", + "integrity": "sha512-0yTbUE9lIddkEpLHL3u8PoCL+pWiZtj5A/j3U7YoNjcmKKDGBnCrgHJMzwd2J5vy6l28q4ki3JIuz7McLHhl1A==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==" + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/playwright/package.json b/playwright/package.json new file mode 100644 index 000000000..0592c7166 --- /dev/null +++ b/playwright/package.json @@ -0,0 +1,32 @@ +{ + "name": "playwright", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "playwright test", + "test:visual": "playwright test --headed --workers=1", + "test:debug": "playwright test --debug" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.25.2", + "eslint": "^8.23.1", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.2.5", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.0.1" + }, + "dependencies": { + "@faker-js/faker": "^7.5.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "luxon": "^3.0.3", + "ms": "^2.1.3", + "seedrandom": "^3.0.5", + "slugify": "^1.6.5" + } +} diff --git a/playwright/playwright.config.js b/playwright/playwright.config.js new file mode 100644 index 000000000..afed56db9 --- /dev/null +++ b/playwright/playwright.config.js @@ -0,0 +1,116 @@ +// @ts-check +const { devices } = require('@playwright/test') + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * @see https://playwright.dev/docs/test-configuration + * @type {import('@playwright/test').PlaywrightTestConfig} + */ +const config = { + testDir: './tests', + /* Maximum time one test can run for. */ + timeout: 120 * 1000, + expect: { + /** + * Maximum time expect() should wait for the condition to be met. + * For example in `await expect(locator).toHaveText();` + */ + timeout: 5000 + }, + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: process.env.CI ? 'github' : 'list', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ + actionTimeout: 0, + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: 'http://localhost:3000', + + locale: 'en-US', + timezoneId: 'America/Toronto', + + screenshot: 'only-on-failure', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry' + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { + ...devices['Desktop Chrome'] + } + }, + + { + name: 'firefox', + use: { + ...devices['Desktop Firefox'] + } + } + + // { + // name: 'webkit', + // use: { + // ...devices['Desktop Safari'] + // } + // } + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { + // ...devices['Pixel 5'], + // }, + // }, + // { + // name: 'Mobile Safari', + // use: { + // ...devices['iPhone 12'], + // }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { + // channel: 'msedge', + // }, + // }, + // { + // name: 'Google Chrome', + // use: { + // channel: 'chrome', + // }, + // }, + ], + + /* Folder for test artifacts such as screenshots, videos, traces, etc. */ + // outputDir: 'test-results/', + + /* Run your local dev server before starting the tests */ + ...process.env.CI && { + webServer: { + command: 'cd .. && yarn preview', + port: 3000, + reuseExistingServer: false + } + } +} + +module.exports = config diff --git a/playwright/tests/meeting/agenda.spec.js b/playwright/tests/meeting/agenda.spec.js new file mode 100644 index 000000000..56592ec25 --- /dev/null +++ b/playwright/tests/meeting/agenda.spec.js @@ -0,0 +1,1427 @@ +const { test, expect } = require('@playwright/test') +const { DateTime } = require('luxon') +const { faker } = require('@faker-js/faker') +const seedrandom = require('seedrandom') +const slugify = require('slugify') +const commonHelper = require('../../helpers/common') +const meetingHelper = require('../../helpers/meeting.js') +const viewports = require('../../helpers/viewports') +const _ = require('lodash') +const fs = require('fs/promises') +const { setTimeout } = require('timers/promises') + +const xslugify = (str) => slugify(str.replace('/', '-'), { lower: true, strict: true }) + +const TEST_SEED = 123 +const BROWSER_LOCALE = 'en-US' +const BROWSER_TIMEZONE = 'America/Toronto' + +// Set randomness seed +seedrandom(TEST_SEED.toString(), { global: true }) +faker.seed(TEST_SEED) +const { random, shuffle } = _.runInContext() + +// ==================================================================== +// AGENDA (past meeting) | DESKTOP viewport +// ==================================================================== + +test.describe('past - desktop', () => { + let meetingData + + test.beforeAll(async () => { + // Generate meeting data + meetingData = meetingHelper.generateAgendaResponse({ dateMode: 'past' }) + }) + + test.beforeEach(async ({ page }) => { + // Intercept Meeting Data API + await page.route(`**/api/meeting/${meetingData.meeting.number}/agenda-data`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(meetingData) + }) + }) + + await page.setViewportSize({ + width: viewports.desktop[0], + height: viewports.desktop[1] + }) + + // Visit agenda page and await Meeting Data API call to complete + await Promise.all([ + page.waitForResponse(`**/api/meeting/${meetingData.meeting.number}/agenda-data`), + page.goto(`/meeting/${meetingData.meeting.number}/agenda-neue`) + ]) + + // Wait for page to be ready + await page.locator('.agenda h1').waitFor({ state: 'visible' }) + await setTimeout(500) + }) + + test('agenda header section', async ({ page }) => { + // HEADER + await expect(page.locator('.agenda h1'), 'should have agenda title').toContainText(`IETF ${meetingData.meeting.number} Meeting Agenda`) + await expect(page.locator('.agenda h4').first(), 'should have meeting city subtitle').toContainText(meetingData.meeting.city) + await expect(page.locator('.agenda h4').first(), 'should have meeting date subtitle').toContainText(/[a-zA-Z] [0-9]{1,2} - ([a-zA-Z]+ )?[0-9]{1,2}, [0-9]{4}/i) + + const updatedDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone(meetingData.meeting.timezone) + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first(), 'should have meeting last updated datetime').toContainText(updatedDateTime) + + // NAV + + await test.step('has the correct navigation items', async () => { + const navLocator = page.locator('.agenda .meeting-nav > li') + await expect(navLocator).toHaveCount(3) + await expect(navLocator.first()).toContainText('Agenda') + await expect(navLocator.nth(1)).toContainText('Floor plan') + await expect(navLocator.last()).toContainText('Plaintext') + }) + + // SETTINGS BUTTON + + await expect(page.locator('.agenda .meeting-nav + button')).toContainText('Settings') + }) + + test('agenda schedule list header', async ({ page }) => { + const infonoteLocator = page.locator('.agenda .agenda-infonote') + const infonoteToggleLocator = page.locator('.agenda h2 + button') + const tzMeetingBtnLocator = page.locator('.agenda .agenda-tz-selector > button:nth-child(1)') + const tzLocalBtnLocator = page.locator('.agenda .agenda-tz-selector > button:nth-child(2)') + const tzUtcBtnLocator = page.locator('.agenda .agenda-tz-selector > button:nth-child(3)') + + await expect(page.locator('.agenda h2')).toContainText('Schedule') + await expect(infonoteLocator).toBeVisible() + await expect(infonoteLocator).toContainText(meetingData.meeting.infoNote) + + // INFO-NOTE TOGGLE + + await test.step('info note can be dismissed / reopened', async () => { + await page.locator('.agenda .agenda-infonote > button').click() + await expect(infonoteLocator).not.toBeVisible() + await expect(infonoteToggleLocator).toBeVisible() + await infonoteToggleLocator.click() + await expect(infonoteLocator).toBeVisible() + await expect(infonoteToggleLocator).not.toBeVisible() + }) + + // TIMEZONE SELECTOR + + await test.step('has timezone selector', async () => { + await expect(page.locator('.agenda .agenda-tz-selector')).toBeVisible() + await expect(page.locator('small:left-of(.agenda .agenda-tz-selector)')).toContainText('Timezone:') + await expect(page.locator('.agenda .agenda-tz-selector > button')).toHaveCount(3) + await expect(tzMeetingBtnLocator).toContainText('Meeting') + await expect(tzLocalBtnLocator).toContainText('Local') + await expect(tzUtcBtnLocator).toContainText('UTC') + await expect(page.locator('.agenda .agenda-timezone-ddn')).toBeVisible() + }) + + // CHANGE TIMEZONE + + await test.step('can change timezone', async () => { + // Switch to local timezone + await tzLocalBtnLocator.click() + await expect(tzLocalBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(tzMeetingBtnLocator).not.toHaveClass(/n-button--primary-type/) + const localDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone(BROWSER_TIMEZONE) + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(localDateTime) + // Switch to UTC + await tzUtcBtnLocator.click() + await expect(tzUtcBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(tzLocalBtnLocator).not.toHaveClass(/n-button--primary-type/) + const utcDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone('utc') + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(utcDateTime) + await expect(page.locator('.agenda .agenda-timezone-ddn')).toContainText('UTC') + // Switch back to meeting timezone + await tzMeetingBtnLocator.click() + await expect(tzMeetingBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(page.locator('.agenda .agenda-timezone-ddn')).toContainText('Tokyo') + }) + }) + + test('agenda schedule list table', async ({ page }) => { + const dayHeadersLocator = page.locator('.agenda-table-display-day') + + // TABLE HEADERS + + await expect(page.locator('.agenda-table-head-time')).toContainText('Time') + await expect(page.locator('.agenda-table-head-location')).toContainText('Location') + await expect(page.locator('.agenda-table-head-event')).toContainText('Event') + + // DAY HEADERS + + await expect(dayHeadersLocator).toHaveCount(7) + for (let idx = 0; idx < 7; idx++) { + const localDateTime = DateTime.fromISO(meetingData.meeting.startDate, { zone: BROWSER_TIMEZONE }) + .setZone(BROWSER_TIMEZONE) + .setLocale(BROWSER_LOCALE) + .plus({ days: idx }) + .toLocaleString(DateTime.DATE_HUGE) + await expect(dayHeadersLocator.nth(idx)).toContainText(localDateTime) + } + }) + + test('agenda schedule list table events', async ({ page }) => { + test.slow() // Triple the default timeout + + const eventRowsLocator = page.locator('.agenda-table .agenda-table-display-event') + + await expect(eventRowsLocator).toHaveCount(meetingData.schedule.length) + + let isFirstSession = true + for (let idx = 0; idx < meetingData.schedule.length; idx++) { + const row = eventRowsLocator.nth(idx) + const event = meetingData.schedule[idx] + const eventStart = DateTime.fromISO(event.startDateTime) + const eventEnd = eventStart.plus({ seconds: event.duration }) + const eventTimeSlot = `${eventStart.toFormat('HH:mm')} - ${eventEnd.toFormat('HH:mm')}` + // -------- + // Location + // -------- + if (event.location?.short) { + // Has floor badge + await expect(row.locator('.agenda-table-cell-room > a')).toContainText(event.room) + await expect(row.locator('.agenda-table-cell-room > a')).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/floor-plan-neue?room=${xslugify(event.room)}`) + await expect(row.locator('.agenda-table-cell-room > .badge')).toContainText(event.location.short) + } else { + // No floor badge + await expect(row.locator('.agenda-table-cell-room > span:not(.badge)')).toContainText(event.room) + await expect(row.locator('.agenda-table-cell-room > .badge')).not.toBeVisible() + } + // --------------------------------------------------- + // Type-specific timeslot / group / name columns tests + // --------------------------------------------------- + if (event.type === 'regular') { + // First session should have header row above it + if (isFirstSession) { + const headerRow = page.locator(`#agenda-rowid-sesshd-${event.id}`) + await expect(headerRow).toBeVisible() + await expect(headerRow.locator('.agenda-table-cell-ts')).toContainText(eventTimeSlot) + await expect(headerRow.locator('.agenda-table-cell-name')).toContainText(`${DateTime.fromISO(event.startDateTime).toFormat('cccc')} ${event.name}`) + } + // Timeslot + await expect(row.locator('.agenda-table-cell-ts')).toContainText('—') + // Group Acronym + Parent + await expect(row.locator('.agenda-table-cell-group > .badge')).toContainText(event.groupParent.acronym) + await expect(row.locator('.agenda-table-cell-group > .badge + a')).toContainText(event.acronym) + await expect(row.locator('.agenda-table-cell-group > .badge + a')).toHaveAttribute('href', `/group/${event.acronym}/about/`) + // Group Name + await expect(row.locator('.agenda-table-cell-name')).toContainText(event.groupName) + isFirstSession = false + } else { + // Timeslot + await expect(row.locator('.agenda-table-cell-ts')).toContainText(eventTimeSlot) + // Event Name + await expect(row.locator('.agenda-table-cell-name')).toContainText(event.name) + isFirstSession = true + } + // ----------- + // Name column + // ----------- + // Event icon + if (['break', 'plenary'].includes(event.type) || (event.type === 'other' && ['office hours', 'hackathon'].some(s => event.name.toLowerCase().indexOf(s) >= 0))) { + await expect(row.locator('.agenda-table-cell-name > i.bi')).toBeVisible() + } + // Name link + if (event.flags.agenda) { + await expect(row.locator('.agenda-table-cell-name > a')).toHaveAttribute('href', event.agenda.url) + } + // BoF badge + if (event.isBoF) { + await expect(row.locator('.agenda-table-cell-name > .badge')).toContainText('BoF') + } + // Note + if (event.note) { + await expect(row.locator('.agenda-table-cell-name > .agenda-table-note')).toBeVisible() + await expect(row.locator('.agenda-table-cell-name > .agenda-table-note i.bi')).toBeVisible() + await expect(row.locator('.agenda-table-cell-name > .agenda-table-note i.bi + span')).toContainText(event.note) + } + // ----------------------- + // Buttons / Status Column + // ----------------------- + switch (event.status) { + // Cancelled + case 'canceled': { + await expect(row.locator('.agenda-table-cell-links > .badge.is-cancelled')).toContainText('Cancelled') + break + } + // Rescheduled + case 'resched': { + await expect(row.locator('.agenda-table-cell-links > .badge.is-rescheduled')).toContainText('Rescheduled') + break + } + // Scheduled + case 'sched': { + if (event.flags.showAgenda || ['regular', 'plenary'].includes(event.type)) { + const eventButtons = row.locator('.agenda-table-cell-links > .agenda-table-cell-links-buttons') + if (event.flags.agenda) { + // Show meeting materials button + await expect(eventButtons.locator('i.bi.bi-collection')).toBeVisible() + // ZIP materials button + await expect(eventButtons.locator(`#btn-lnk-${event.id}-tar`)).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-tar > i.bi`)).toBeVisible() + // PDF materials button + await expect(eventButtons.locator(`#btn-lnk-${event.id}-pdf`)).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-pdf > i.bi`)).toBeVisible() + } else if (event.type === 'regular') { + // No meeting materials yet warning badge + await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible() + } + // Notepad button + const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` + await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible() + // Chat logs + await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs`)).toHaveAttribute('href', event.links.chatArchive) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-logs > i.bi`)).toBeVisible() + // Recordings + for (const rec of event.links.recordings) { + if (rec.url.indexOf('audio') > 0) { + // -> Audio + await expect(eventButtons.locator(`#btn-lnk-${event.id}-audio-${rec.id}`)).toHaveAttribute('href', rec.url) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-audio-${rec.id} > i.bi`)).toBeVisible() + } else if (rec.url.indexOf('youtu') > 0) { + // -> Youtube + await expect(eventButtons.locator(`#btn-lnk-${event.id}-youtube-${rec.id}`)).toHaveAttribute('href', rec.url) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-youtube-${rec.id} > i.bi`)).toBeVisible() + } else { + // -> Others + await expect(eventButtons.locator(`#btn-lnk-${event.id}-video-${rec.id}`)).toHaveAttribute('href', rec.url) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-video-${rec.id} > i.bi`)).toBeVisible() + } + } + // Video Stream + if (event.links.videoStream) { + const videoStreamLink = `https://www.meetecho.com/ietf${meetingData.meeting.number}/recordings#${event.acronym.toUpperCase()}` + await expect(eventButtons.locator(`#btn-lnk-${event.id}-rec`)).toHaveAttribute('href', videoStreamLink) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-rec > i.bi`)).toBeVisible() + } + } else { + await expect(row.locator('.agenda-table-cell-links > .agenda-table-cell-links-buttons')).not.toBeVisible() + } + break + } + } + } + }) + + test('agenda schedule list search', async ({ page }) => { + const eventRowsLocator = page.locator('.agenda-table .agenda-table-display-event') + const searchInputLocator = page.locator('.agenda-search input[type=text]') + + await page.locator('.agenda-table > .agenda-table-search > button').click() + await expect(page.locator('.agenda-search')).toBeVisible() + + const event = _.find(meetingData.schedule, s => s.type === 'regular') + const eventWithNote = _.find(meetingData.schedule, s => s.note) + + // Search different terms + const searchTerms = [ + 'hack', // Should match hackathon events + event.groupAcronym, // Match group name + event.room.toLowerCase(), // Match room name + eventWithNote.note.substring(0, 10).toLowerCase() // Match partial note + ] + + for (const term of searchTerms) { + await searchInputLocator.fill(term) + // Let the UI update before checking each displayed row + await page.waitForTimeout(1000) + await expect(eventRowsLocator).not.toHaveCount(meetingData.schedule.length) + const rowsCount = await eventRowsLocator.count() + for (let idx = 0; idx < rowsCount; idx++) { + await expect(eventRowsLocator.nth(idx)).toContainText(term, { ignoreCase: true }) + } + } + + // Clear button + await page.locator('.agenda-search button').click() + await page.waitForTimeout(1000) + await expect(searchInputLocator).toHaveValue('') + await expect(eventRowsLocator).toHaveCount(meetingData.schedule.length) + // Invalid search + await searchInputLocator.fill(faker.vehicle.vin()) + await page.waitForTimeout(1000) + await expect(eventRowsLocator).toHaveCount(0) + await expect(page.locator('.agenda-table .agenda-table-display-noresult')).toContainText('No event matching your search query.') + // Closing search should clear search + await page.locator('.agenda-table > .agenda-table-search > button').click() + await expect(page.locator('.agenda-search')).not.toBeVisible() + await expect(eventRowsLocator).toHaveCount(meetingData.schedule.length) + }) + + test('agenda meeting materials dialog', async ({ page }) => { + const event = _.find(meetingData.schedule, s => s.flags.showAgenda && s.flags.agenda) + const eventStart = DateTime.fromISO(event.startDateTime) + const eventEnd = eventStart.plus({ seconds: event.duration }) + // Intercept meeting materials request + const materialsUrl = (new URL(event.agenda.url)).pathname + const materialsInfo = { + url: event.agenda.url, + slides: _.times(5, idx => ({ + id: 100000 + idx, + title: faker.commerce.productName(), + url: `/meeting/${meetingData.meeting.number}/materials/slides-${meetingData.meeting.number}-${event.acronym}-${faker.internet.domainWord()}`, + ext: ['pdf', 'html', 'md', 'txt', 'pptx'][idx] + })), + minutes: { + ext: 'md', + id: 123456, + title: 'Minutes IETF123 Testing', + url: `/meeting/${meetingData.meeting.number}/materials/minutes-${meetingData.meeting.number}-${event.acronym}-${faker.internet.domainWord()}` + } + } + await page.route(`**/api/meeting/session/${event.sessionId}/materials`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(materialsInfo) + }) + }) + await page.route(materialsUrl, route => { + route.fulfill({ + status: 200, + contentType: 'text/plain', + body: 'The internet is a series of tubes.' + }) + }) + await page.route(materialsInfo.minutes.url, route => { + route.fulfill({ + status: 200, + contentType: 'text/plain', + body: 'One does not simply walk into mordor.' + }) + }) + // Open dialog + await page.locator(`#agenda-rowid-${event.id} #btn-lnk-${event.id}-mat`).click() + await expect(page.locator('.agenda-eventdetails')).toBeVisible() + // Header + await expect(page.locator('.agenda-eventdetails .n-card-header__main > .detail-header > .bi')).toBeVisible() + await expect(page.locator('.agenda-eventdetails .n-card-header__main > .detail-header > .bi + span')).toContainText(eventStart.toFormat('DDDD')) + await expect(page.locator('.agenda-eventdetails .n-card-header__extra > .detail-header > .bi')).toBeVisible() + await expect(page.locator('.agenda-eventdetails .n-card-header__extra > .detail-header > .bi + strong')).toContainText(`${eventStart.toFormat('T')} - ${eventEnd.toFormat('T')}`) + await expect(page.locator('.agenda-eventdetails .detail-title > h6 > .bi')).toBeVisible() + await expect(page.locator('.agenda-eventdetails .detail-title > h6 > .bi + span')).toContainText(event.name) + await expect(page.locator('.agenda-eventdetails .detail-location > .bi')).toBeVisible() + await expect(page.locator('.agenda-eventdetails .detail-location > .bi + .badge')).toContainText(event.location.short) + await expect(page.locator('.agenda-eventdetails .detail-location > .bi + .badge + span')).toContainText(event.room) + // Navigation + const navLocator = await page.locator('.agenda-eventdetails .detail-nav > a') + await expect(navLocator).toHaveCount(3) + await expect(navLocator.first()).toHaveClass(/active/) + await expect(navLocator.nth(1)).not.toHaveClass(/active/) + await expect(navLocator.nth(2)).not.toHaveClass(/active/) + // Agenda Tab + await expect(page.locator('.agenda-eventdetails .detail-text > iframe')).toHaveAttribute('src', materialsUrl) + // Slides Tab + await navLocator.nth(1).click() + await expect(navLocator.nth(1)).toHaveClass(/active/) + await expect(navLocator.first()).not.toHaveClass(/active/) + const slidesLocator = page.locator('.agenda-eventdetails .detail-text > .list-group > .list-group-item') + await expect(slidesLocator).toHaveCount(materialsInfo.slides.length) + for (let idx = 0; idx < materialsInfo.slides.length; idx++) { + await expect(slidesLocator.nth(idx)).toHaveAttribute('href', materialsInfo.slides[idx].url) + await expect(slidesLocator.nth(idx).locator('.bi')).toHaveClass(new RegExp(`bi-filetype-${materialsInfo.slides[idx].ext}`)) + await expect(slidesLocator.nth(idx).locator('span')).toContainText(materialsInfo.slides[idx].title) + } + // Minutes Tab + await navLocator.last().click() + await expect(navLocator.last()).toHaveClass(/active/) + await expect(navLocator.nth(1)).not.toHaveClass(/active/) + await expect(page.locator('.agenda-eventdetails .detail-text > iframe')).toHaveAttribute('src', materialsInfo.minutes.url) + // Footer Buttons + const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` + const footerBtnsLocator = page.locator('.agenda-eventdetails .detail-action > a') + await expect(footerBtnsLocator).toHaveCount(3) + await expect(footerBtnsLocator.first()).toContainText('Download as tarball') + await expect(footerBtnsLocator.first()).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) + await expect(footerBtnsLocator.nth(1)).toContainText('Download as PDF') + await expect(footerBtnsLocator.nth(1)).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) + await expect(footerBtnsLocator.last()).toContainText('Notepad') + await expect(footerBtnsLocator.last()).toHaveAttribute('href', hedgeDocLink) + // Clicking X should close the dialog + await page.locator('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() + }) + + // -> SCHEDULE LIST -> Show Meeting Materials dialog (EMPTY VARIANT) + + test('agenda meeting materials dialog (empty variant)', async ({ page }) => { + const event = _.find(meetingData.schedule, s => s.flags.showAgenda && s.flags.agenda) + // Intercept meeting materials request + const materialsUrl = (new URL(event.agenda.url)).pathname + const materialsInfo = { + url: event.agenda.url, + slides: [], + minutes: null + } + await page.route(`**/api/meeting/session/${event.sessionId}/materials`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(materialsInfo) + }) + }) + await page.route(materialsUrl, route => { + route.fulfill({ + status: 200, + contentType: 'text/plain', + body: 'The internet is a series of tubes.' + }) + }) + // Open dialog + await page.locator(`#btn-lnk-${event.id}-mat`).click() + await expect(page.locator('.agenda-eventdetails')).toBeVisible() + // Slides Tab + await page.locator('.agenda-eventdetails .detail-nav > a').nth(1).click() + await expect(page.locator('.agenda-eventdetails .detail-text')).toContainText('No slides submitted for this session.') + // Minutes Tab + await page.locator('.agenda-eventdetails .detail-nav > a').nth(2).click() + await expect(page.locator('.agenda-eventdetails .detail-text')).toContainText('No minutes submitted for this session.') + // Clicking X should close the dialog + await page.locator('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() + }) + + // -> FILTER BY AREA/GROUP DIALOG + + test('agenda filter by area/group', async ({ page }) => { + test.slow() // Triple the default timeout + + // Open dialog + await page.locator('#agenda-quickaccess-filterbyareagroups-btn').click() + await expect(page.locator('.agenda-personalize')).toBeVisible() + // Check header elements + await expect(page.locator('.agenda-personalize .n-drawer-header__main > span')).toContainText('Filter Areas + Groups') + const diagHeaderBtnLocator = page.locator('.agenda-personalize .agenda-personalize-actions > button') + await expect(diagHeaderBtnLocator).toHaveCount(3) + await expect(diagHeaderBtnLocator.first()).toContainText('Clear Selection') + await expect(diagHeaderBtnLocator.nth(1)).toContainText('Cancel') + await expect(diagHeaderBtnLocator.last()).toContainText('Apply') + // Check categories + const catsLocator = page.locator('.agenda-personalize .agenda-personalize-category') + await expect(catsLocator).toHaveCount(meetingData.categories.length) + // Check areas + groups + for (let idx = 0; idx < meetingData.categories.length; idx++) { + const cat = meetingData.categories[idx] + const areasLocator = catsLocator.nth(idx).locator('.agenda-personalize-area') + await expect(areasLocator).toHaveCount(cat.length) + for (let areaIdx = 0; areaIdx < cat.length; areaIdx++) { + // Area Button + const area = cat[areaIdx] + if (area.label) { + await expect(areasLocator.nth(areaIdx).locator('.agenda-personalize-areamain > button')).toBeVisible() + await expect(areasLocator.nth(areaIdx).locator('.agenda-personalize-areamain > button')).toContainText(area.label) + } else { + await expect(areasLocator.nth(areaIdx).locator('.agenda-personalize-areamain > button')).not.toBeVisible() + } + // Group Buttons + const grpBtnsLocator = areasLocator.nth(areaIdx).locator('.agenda-personalize-groups > button') + await expect(grpBtnsLocator).toHaveCount(area.children.length) + for (let groupIdx = 0; groupIdx < area.children.length; groupIdx++) { + const group = area.children[groupIdx] + await expect(grpBtnsLocator.nth(groupIdx)).toBeVisible() + await expect(grpBtnsLocator.nth(groupIdx)).toContainText(group.label) + if (group.is_bof) { + await expect(grpBtnsLocator.nth(groupIdx)).toHaveClass(/is-bof/) + await expect(grpBtnsLocator.nth(groupIdx).locator('.badge')).toBeVisible() + await expect(grpBtnsLocator.nth(groupIdx).locator('.badge')).toContainText('BoF') + } + } + // Test Area Selection + if (area.label) { + await areasLocator.nth(areaIdx).locator('.agenda-personalize-areamain > button').click() + for (let groupIdx = 0; groupIdx < area.children.length; groupIdx++) { + await expect(grpBtnsLocator.nth(groupIdx)).toHaveClass(/is-checked/) + } + await areasLocator.nth(areaIdx).locator('.agenda-personalize-areamain > button').click() + for (let groupIdx = 0; groupIdx < area.children.length; groupIdx++) { + await expect(grpBtnsLocator.nth(groupIdx)).not.toHaveClass(/is-checked/) + } + } + // Test Group Selection + const randGroupIdx = random(area.children.length - 1) + const groupLocator = areasLocator.nth(areaIdx).locator('.agenda-personalize-groups > button').nth(randGroupIdx) + await groupLocator.click() + await expect(groupLocator).toHaveClass(/is-checked/) + await groupLocator.click() + await expect(groupLocator).not.toHaveClass(/is-checked/) + } + } + // Test multi-toggled_by button trigger + const bofBtnLocator = page.locator('.agenda-personalize .agenda-personalize-category:last-child .agenda-personalize-area:last-child .agenda-personalize-groups > button', { hasText: 'BoF' }) + const bofGroupsLocator = page.locator('.agenda-personalize .agenda-personalize-group:has(.badge)') + const bofGroupsCount = await bofGroupsLocator.count() + await bofBtnLocator.click() + for (let idx = 0; idx < bofGroupsCount; idx++) { + await expect(bofGroupsLocator.nth(idx)).toHaveClass(/is-checked/) + } + await bofBtnLocator.click() + for (let idx = 0; idx < bofGroupsCount; idx++) { + await expect(bofGroupsLocator.nth(idx)).not.toHaveClass(/is-checked/) + } + // Clicking all groups from area then area button should unselect all + const areaGroupsLocator = page.locator('.agenda-personalize .agenda-personalize-area >> nth=0 >> .agenda-personalize-groups > button') + const areaGroupsCount = await areaGroupsLocator.count() + for (let idx = 0; idx < areaGroupsCount; idx++) { + await areaGroupsLocator.nth(idx).click() + } + await page.locator('.agenda-personalize .agenda-personalize-area >> nth=0 >> .agenda-personalize-areamain:first-child > button').click() + for (let idx = 0; idx < areaGroupsCount; idx++) { + await expect(areaGroupsLocator.nth(idx)).not.toHaveClass(/is-checked/) + } + // Test Clear Selection + const groupsLocator = page.locator('.agenda-personalize .agenda-personalize-group') + const groupsCount = await groupsLocator.count() + const randGroupRange = _.take(shuffle(_.range(groupsCount)), 10) + for (const idx of randGroupRange) { + await groupsLocator.nth(idx).click() + } + await page.locator('.agenda-personalize .agenda-personalize-actions > button').first().click() + await expect(page.locator('.agenda-personalize .agenda-personalize-group.is-checked')).toHaveCount(0) + // Click Cancel should hide dialog + await page.locator('.agenda-personalize .agenda-personalize-actions > button').nth(1).click() + await expect(page.locator('.agenda-personalize')).not.toBeVisible() + }) + + // -> PICK SESSIONS + + test('agenda individual sessions picker', async ({ page }) => { + const pickBtnLocator = page.locator('#agenda-quickaccess-picksessions-btn') + const applyBtnLocator = page.locator('#agenda-quickaccess-applypick-btn') + const modifyBtnLocator = page.locator('#agenda-quickaccess-modifypick-btn') + const discardBtnLocator = page.locator('#agenda-quickaccess-discardpick-btn') + const checkboxesLocator = page.locator('.agenda .agenda-table-cell-check > .n-checkbox') + const checkedboxesLocator = page.locator('.agenda .agenda-table-cell-check > .n-checkbox.n-checkbox--checked') + const uncheckedboxesLocator = page.locator('.agenda .agenda-table-cell-check > .n-checkbox:not(.n-checkbox--checked)') + const eventsLocator = page.locator('.agenda .agenda-table-display-event') + + // Enter pick mode + await expect(pickBtnLocator).toBeVisible() + await pickBtnLocator.click() + await expect(pickBtnLocator).not.toBeVisible() + await expect(applyBtnLocator).toBeVisible() + await expect(discardBtnLocator).toBeVisible() + + // Pick 10 random sessions + await expect(checkboxesLocator).toHaveCount(meetingData.schedule.length) + const randSessionsRange = _.take(shuffle(_.range(meetingData.schedule.length)), 10) + for (const idx of randSessionsRange) { + await checkboxesLocator.nth(idx).click() + } + await applyBtnLocator.click() + await expect(applyBtnLocator).not.toBeVisible() + await expect(modifyBtnLocator).toBeVisible() + await expect(discardBtnLocator).toBeVisible() + await expect(eventsLocator).toHaveCount(10) + + // Change selection (keep existing 5 + add 5 new ones) + await modifyBtnLocator.click() + await expect(modifyBtnLocator).not.toBeVisible() + await expect(applyBtnLocator).toBeVisible() + await expect(discardBtnLocator).toBeVisible() + await expect(checkboxesLocator).toHaveCount(meetingData.schedule.length) + await expect(checkedboxesLocator).toHaveCount(10) + for (let idx = 0; idx < 5; idx++) { + await checkedboxesLocator.nth(idx).click() + } + const uncheckedCount = await uncheckedboxesLocator.count() + const uncheckedRandRange = _.take(shuffle(_.range(uncheckedCount - 1)), 5) + for (const idx of uncheckedRandRange) { + await uncheckedboxesLocator.nth(idx).click() + } + await applyBtnLocator.click() + await expect(eventsLocator).toHaveCount(10) + + // Discard should clear selection + await discardBtnLocator.click() + await expect(discardBtnLocator).not.toBeVisible() + await expect(modifyBtnLocator).not.toBeVisible() + await expect(pickBtnLocator).toBeVisible() + await expect(page.locator('.agenda .agenda-table-cell-check')).toHaveCount(0) + await expect(eventsLocator).toHaveCount(meetingData.schedule.length) + }) + + // -> CALENDAR VIEW + + test('agenda calendar view', async ({ page }) => { + const diagHeaderLocator = page.locator('.agenda-calendar .agenda-calendar-actions') + const tzButtonsLocator = diagHeaderLocator.locator('.n-button-group button') + const calHintLocator = page.locator('.agenda-calendar-hint > div') + + // Open dialog + await page.locator('#agenda-quickaccess-calview-btn').click() + await expect(page.locator('.agenda-calendar')).toBeVisible() + // Check header elements + await expect(page.locator('.agenda-calendar .n-drawer-header__main > span')).toContainText('Calendar View') + await expect(diagHeaderLocator.locator('> button')).toHaveCount(2) + await expect(diagHeaderLocator.locator('> button').first()).toContainText('Filter') + await expect(diagHeaderLocator.locator('> button').last()).toContainText('Close') + // ----------------------- + // Check timezone controls + // ----------------------- + await expect(diagHeaderLocator.locator('small').first()).toContainText('Timezone') + // Switch to local timezone + await tzButtonsLocator.nth(1).click() + await expect(tzButtonsLocator.nth(1)).toHaveClass(/n-button--primary-type/) + await expect(tzButtonsLocator.first()).not.toHaveClass(/n-button--primary-type/) + const localDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone(BROWSER_TIMEZONE) + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(localDateTime) + // Switch to UTC + await tzButtonsLocator.last().click() + await expect(tzButtonsLocator.last()).toHaveClass(/n-button--primary-type/) + await expect(tzButtonsLocator.nth(1)).not.toHaveClass(/n-button--primary-type/) + const utcDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone('utc') + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(utcDateTime) + // Switch back to meeting timezone + await tzButtonsLocator.first().click() + await expect(tzButtonsLocator.first()).toHaveClass(/n-button--primary-type/) + // ---------------------- + // Check Filters Shortcut + // ---------------------- + await diagHeaderLocator.locator('> button').first().click() + // Only check whether the dialog is shown. We already tested the dialog earlier. + await expect(page.locator('.agenda-personalize')).toBeVisible() + // Close dialog + await page.locator('.agenda-personalize .agenda-personalize-actions > button').nth(1).click() + await expect(page.locator('.agenda-personalize')).not.toBeVisible() + // ------------------ + // Check Event Dialog + // ------------------ + const firstEvent = meetingData.schedule[0] + const materialsUrl = (new URL(firstEvent.agenda.url)).pathname + const materialsInfo = { + url: firstEvent.agenda.url, + slides: [], + minutes: null + } + await page.route(`**/api/meeting/session/${firstEvent.sessionId}/materials`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(materialsInfo) + }) + }) + await page.route(materialsUrl, route => { + route.fulfill({ + status: 200, + contentType: 'text/plain', + body: 'The internet is a series of tubes.' + }) + }) + await page.locator('.agenda-calendar .fc-event').first().click() + // Only check whether the dialog is shown. We already tested the dialog earlier. + await expect(page.locator('.agenda-eventdetails')).toBeVisible() + // Close dialog + await page.locator('.agenda-eventdetails .n-card-header__extra > .detail-header > button').click() + // ----------- + // Event Hover + // ----------- + // First Event + let eventStart = DateTime.fromISO(firstEvent.startDateTime) + let eventEnd = eventStart.plus({ seconds: firstEvent.duration }) + let hoverDateTime = `${eventStart.toFormat('DDDD')} from ${eventStart.toFormat('T')} to ${eventEnd.toFormat('T')}` + await page.locator('.agenda-calendar .fc-event').first().hover() + await expect(calHintLocator.first()).toContainText(firstEvent.name) + await expect(calHintLocator.nth(1)).toContainText(firstEvent.location.short) + await expect(calHintLocator.nth(1)).toContainText(firstEvent.room) + await expect(calHintLocator.nth(2)).toContainText(hoverDateTime) + // Second Event + const secondEvent = meetingData.schedule[1] + eventStart = DateTime.fromISO(secondEvent.startDateTime) + eventEnd = eventStart.plus({ seconds: secondEvent.duration }) + hoverDateTime = `${eventStart.toFormat('DDDD')} from ${eventStart.toFormat('T')} to ${eventEnd.toFormat('T')}` + await page.locator('.agenda-calendar .fc-event').nth(1).hover() + await expect(calHintLocator.first()).toContainText(secondEvent.name) + await expect(calHintLocator.nth(1)).toContainText(secondEvent.location.short) + await expect(calHintLocator.nth(1)).toContainText(secondEvent.room) + await expect(calHintLocator.nth(2)).toContainText(hoverDateTime) + // ------------------------------ + // Click Close should hide dialog + // ------------------------------ + await diagHeaderLocator.locator('button').last().click() + await expect(page.locator('.agenda-calendar')).not.toBeVisible() + }) + + // -> SETTINGS DIALOG + + test('agenda settings', async ({ page, browserName }) => { + // Open dialog + await page.locator('.meeting-nav + button').click() + await expect(page.locator('.agenda-settings')).toBeVisible() + // Check header elements + await expect(page.locator('.agenda-settings .n-drawer-header__main > span')).toContainText('Agenda Settings') + await expect(page.locator('.agenda-settings .agenda-settings-actions > button')).toHaveCount(2) + await expect(page.locator('.agenda-settings .agenda-settings-actions > button').first()).toBeVisible() + await expect(page.locator('.agenda-settings .agenda-settings-actions > button').last()).toContainText('Close') + + // ------------------- + // Check export config + // ------------------- + await page.locator('.agenda-settings .agenda-settings-actions > button').first().click() + const [download] = await Promise.all([ + page.waitForEvent('download'), + page.locator('.n-dropdown-option:has-text("Export Configuration")').click() + ]) + + const downloadPath = await download.path() + try { + const downloadedConfig = JSON.parse(await fs.readFile(downloadPath, 'utf8')) + const expectedConfig = JSON.parse(await fs.readFile('data/agenda-settings.json', 'utf8')) + await expect(downloadedConfig).toEqual(expectedConfig) + } catch (err) { + expect(err).toBeUndefined() + } + + // ------------------- + // Check import config + // ------------------- + await test.step('import config', async () => { + if (browserName === 'chromium') { + // Chromium use the experimental file selector API so this test won't work, skipping... + // See https://github.com/microsoft/playwright/issues/8850') + return + } + await page.locator('.agenda-settings .agenda-settings-actions > button').first().click() + const [fileChooser] = await Promise.all([ + page.waitForEvent('filechooser'), + page.locator('.n-dropdown-option:has-text("Import Configuration")').click() + ]) + await fileChooser.setFiles('data/agenda-settings.json') + await expect(page.locator('.n-message')).toContainText('Config imported successfully') + }) + + // ----------------------- + // Check timezone controls + // ----------------------- + const tzMeetingBtnLocator = page.locator('#agenda-settings-tz-btn button:first-child') + const tzLocalBtnLocator = page.locator('#agenda-settings-tz-btn button:nth-child(2)') + const tzUtcBtnLocator = page.locator('#agenda-settings-tz-btn button:last-child') + await expect(page.locator('.agenda-settings-content > .n-divider').first()).toContainText('Timezone') + // Switch to local timezone + await tzLocalBtnLocator.click() + await expect(tzLocalBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(tzMeetingBtnLocator).not.toHaveClass(/n-button--primary-type/) + const localDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone(BROWSER_TIMEZONE) + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(localDateTime) + // Switch to UTC + await tzUtcBtnLocator.click() + await expect(tzUtcBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(tzLocalBtnLocator).not.toHaveClass(/n-button--primary-type/) + const utcDateTime = DateTime.fromISO(meetingData.meeting.updated) + .setZone('utc') + .setLocale(BROWSER_LOCALE) + .toFormat('DD \'at\' tt ZZZZ') + await expect(page.locator('.agenda h6').first()).toContainText(utcDateTime) + // Switch back to meeting timezone + await tzMeetingBtnLocator.click() + await expect(tzMeetingBtnLocator).toHaveClass(/n-button--primary-type/) + await expect(page.locator('#agenda-settings-tz-ddn')).toContainText('Tokyo') + + // ---------------------- + // Check display controls + // ---------------------- + await expect(page.locator('.agenda-settings-content > .n-divider').nth(1)).toContainText('Display') + // -> Test Current Meeting Info Note toggle + const infonoteSwitchLocator = page.locator('#agenda-settings-tgl-infonote div[role=switch]') + await infonoteSwitchLocator.click() + await expect(page.locator('.agenda .agenda-infonote')).not.toBeVisible() + await infonoteSwitchLocator.click() + await expect(page.locator('.agenda .agenda-infonote')).toBeVisible() + // -> Test Event Icons toggle + const eventiconsSwitchLocator = page.locator('#agenda-settings-tgl-eventicons div[role=switch]') + await eventiconsSwitchLocator.click() + await expect(page.locator('.agenda .agenda-event-icon')).toHaveCount(0) + await eventiconsSwitchLocator.click() + await expect(page.locator('.agenda .agenda-event-icon')).not.toHaveCount(0) + // -> Test Floor Indicators toggle + const floorindSwitchLocator = page.locator('#agenda-settings-tgl-floorind div[role=switch]') + await floorindSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-cell-room > span.badge')).toHaveCount(0) + await floorindSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-cell-room > span.badge')).not.toHaveCount(0) + // -> Test Group Area Indicators toggle + const groupindSwitchLocator = page.locator('#agenda-settings-tgl-groupind div[role=switch]') + await groupindSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-cell-group > span.badge')).toHaveCount(0) + await groupindSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-cell-group > span.badge')).not.toHaveCount(0) + // -> Test Bolder Text toggle + const boldertxtSwitchLocator = page.locator('#agenda-settings-tgl-boldertxt div[role=switch]') + await boldertxtSwitchLocator.click() + await expect(page.locator('.agenda')).toHaveClass(/bolder-text/) + await boldertxtSwitchLocator.click() + await expect(page.locator('.agenda')).not.toHaveClass(/bolder-text/) + + // ---------------------------- + // Check calendar view controls + // ---------------------------- + await expect(page.locator('.agenda-settings-content > .n-divider').nth(2)).toContainText('Calendar View') + // TODO: calendar view checks + // ---------------------------- + // Check calendar view controls + // ---------------------------- + await expect(page.locator('.agenda-settings-content > .n-divider').nth(3)).toContainText('Custom Colors / Tags') + // ------------------------------ + // Click Close should hide dialog + // ------------------------------ + await page.locator('.agenda-settings .agenda-settings-actions > button').last().click() + await expect(page.locator('.agenda-settings')).not.toBeVisible() + }) + + // -> ADD TO CALENDAR + + test('agenda add to calendar', async ({ page }) => { + await expect(page.locator('#agenda-quickaccess-addtocal-btn')).toContainText('Add to your calendar') + await page.locator('#agenda-quickaccess-addtocal-btn').click() + const ddnLocator = page.locator('.n-dropdown-menu > .n-dropdown-option') + await expect(ddnLocator).toHaveCount(2) + await expect(ddnLocator.first()).toContainText('Subscribe') + await expect(ddnLocator.last()).toContainText('Download') + + // Intercept Download ICS Call + await page.route(`**/meeting/${meetingData.meeting.number}/agenda.ics`, route => { + route.fulfill({ + status: 200, + contentType: 'text/calendar', + headers: { + 'Content-disposition': 'attachment; filename=agenda.ics' + }, + body: 'test' + }) + }) + + // Cannot test if webcal link works because external app handling not supported: + // See https://github.com/microsoft/playwright/issues/11014 + + // Test Download ICS + const [download] = await Promise.all([ + page.waitForEvent('download'), + ddnLocator.nth(1).click() + ]) + const downloadPath = await download.path() + try { + const testIcs = await fs.readFile(downloadPath, 'utf8') + await expect(testIcs).toEqual('test') + } catch (err) { + expect(err).toBeUndefined() + } + }) + + // -> JUMP TO DAY + + test('agenda jump to specific days', async ({ page, browserName }) => { + // -> Separator label + await expect(page.locator('div[role=separator]:above(.agenda .agenda-quickaccess-jumpto)').first()).toContainText('Jump to...') + + // -> Check nav items + const navItemLocator = page.locator('.agenda .agenda-quickaccess-jumpto > .nav-item') + await expect(navItemLocator).toHaveCount(7) + for (let idx = 0; idx < 7; idx++) { + const localDateTime = DateTime.fromISO(meetingData.meeting.startDate, { zone: BROWSER_TIMEZONE }) + .setZone(BROWSER_TIMEZONE) + .setLocale(BROWSER_LOCALE) + .plus({ days: idx }) + .toLocaleString(DateTime.DATE_HUGE) + await expect(navItemLocator.nth(idx)).toContainText(localDateTime) + } + + // -> Jump to specific days + if (browserName === 'chromium') { + // Exclude firefox as this test doesn't run reliably on it in CI + for (const idx of [6, 1, 5]) { + await navItemLocator.nth(idx).locator('a').click() + await setTimeout(2500) + await expect(await commonHelper.isIntersectingViewport(page, `.agenda-table-display-day >> nth=${idx}`)).toBeTruthy() + } + } + }) + + // -> Color Tagging + + test('agenda colors/tags assignment', async ({ page }) => { + test.slow() // Triple the default timeout + + const openBtnLocator = page.locator('.agenda .agenda-table-colorpicker') + const colorLgdLocator = page.locator('.agenda .agenda-colorlegend') + const eventRowsLocator = page.locator('.agenda .agenda-table-display-event') + const colorLgdSwitchLocator = page.locator('#agenda-settings-tgl-colorlgd div[role=switch]') + const colorNamesIptLocator = page.locator('.agenda-settings-colors-row .n-input') + const randColorNames = _.times(5, faker.music.genre) + + await expect(openBtnLocator).toBeVisible() + await openBtnLocator.click() + + // Check Legend + await expect(colorLgdLocator).toBeVisible() + await expect(colorLgdLocator.locator('> *')).toHaveCount(6) + await expect(colorLgdLocator.locator('> * >> nth=0')).toContainText('Color Legend') + + // Check color dots + await expect(page.locator('.agenda .agenda-table-display-event .agenda-table-colorindicator.is-active')).toHaveCount(meetingData.schedule.length) + + // ------------------------- + // Assign colors to sessions + // ------------------------- + + for (let idx = 0; idx < 5; idx++) { + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorindicator')).toBeVisible() + await eventRowsLocator.nth(idx).locator('.agenda-table-colorindicator').click() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices')).toBeVisible() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices > .agenda-table-colorchoice')).toHaveCount(6) + await eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices > .agenda-table-colorchoice').nth(idx + 1).click() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices')).not.toBeVisible() + } + + // Exit color assignment mode + await openBtnLocator.click() + await expect(page.locator('.agenda .agenda-table-display-event .agenda-table-colorindicator')).toHaveCount(5) + await expect(page.locator('.agenda .agenda-table-display-event .agenda-table-colorindicator.is-active')).toHaveCount(0) + await expect(colorLgdLocator).toBeVisible() + + // ---------------------------------------- + // Change color legend from settings dialog + // ---------------------------------------- + // Open dialog + await page.locator('.meeting-nav + button').click() + await expect(page.locator('.agenda-settings')).toBeVisible() + // Toggle color legend switch + await colorLgdSwitchLocator.click() + // Legend should be hidden + await expect(colorLgdLocator).not.toBeVisible() + // Toggle color legend back + await colorLgdSwitchLocator.click() + // Legend should be visible + await expect(colorLgdLocator).toBeVisible() + // Change color names + for (let idx = 0; idx < 5; idx++) { + await colorNamesIptLocator.nth(idx).locator('input').fill(randColorNames[idx]) + await setTimeout(1000) // Account for change debounce + await expect(colorLgdLocator.locator(`> * >> nth=${idx + 1}`)).toContainText(randColorNames[idx]) + } + // Close dialog + await page.locator('.agenda-settings .agenda-settings-actions > button').last().click() + await expect(page.locator('.agenda-settings')).not.toBeVisible() + + // --------------- + // Unassign colors + // --------------- + // Re-enter color assignment mode + await openBtnLocator.click() + // Remove color selection + for (let idx = 0; idx < 5; idx++) { + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorindicator')).toBeVisible() + await eventRowsLocator.nth(idx).locator('.agenda-table-colorindicator').click() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices')).toBeVisible() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices > .agenda-table-colorchoice')).toHaveCount(6) + await eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices > .agenda-table-colorchoice').first().click() + await expect(eventRowsLocator.nth(idx).locator('.agenda-table-colorchoices')).not.toBeVisible() + } + // Exit color assignment mode + await openBtnLocator.click() + // No colored dots should appear + await expect(page.locator('.agenda .agenda-table-display-event .agenda-table-colorindicator')).toHaveCount(0) + // Clear all colors from Settings menu + await page.locator('.meeting-nav + button').click() + await expect(page.locator('.agenda-settings')).toBeVisible() + await page.locator('.agenda-settings .agenda-settings-actions > button').first().click() + await page.locator('.n-dropdown-option:has-text("Clear Color")').click() + // Color legend should no longer be displayed + await expect(colorLgdLocator).not.toBeVisible() + await expect(page.locator('.agenda-settings')).not.toBeVisible() + }) +}) + +// ==================================================================== +// AGENDA (future meeting) | DESKTOP viewport +// ==================================================================== + +test.describe('future - desktop', () => { + let meetingData + + test.beforeAll(async () => { + // Generate meeting data + meetingData = meetingHelper.generateAgendaResponse({ dateMode: 'future' }) + }) + + test.beforeEach(async ({ page }) => { + // Intercept Meeting Data API + await page.route(`**/api/meeting/${meetingData.meeting.number}/agenda-data`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(meetingData) + }) + }) + + await page.setViewportSize({ + width: viewports.desktop[0], + height: viewports.desktop[1] + }) + + // Visit agenda page and await Meeting Data API call to complete + await Promise.all([ + page.waitForResponse(`**/api/meeting/${meetingData.meeting.number}/agenda-data`), + page.goto(`/meeting/${meetingData.meeting.number}/agenda-neue`) + ]) + + // Wait for page to be ready + await page.locator('.agenda h1').waitFor({ state: 'visible' }) + await setTimeout(500) + }) + + // -> SCHEDULE LIST -> Warning + + test('has current meeting warning', async ({ page }) => { + await expect(page.locator('.agenda .agenda-currentwarn')).toContainText('Note: IETF agendas are subject to change, up to and during a meeting.') + }) + + // -> SCHEDULE LIST -> Table Events + + test('has schedule list table events', async ({ page }) => { + test.slow() // Triple the default timeout + + const eventRowsLocator = page.locator('.agenda-table .agenda-table-display-event') + + await expect(eventRowsLocator).toHaveCount(meetingData.schedule.length) + + for (let idx = 0; idx < meetingData.schedule.length; idx++) { + const row = eventRowsLocator.nth(idx) + const event = meetingData.schedule[idx] + + // ----------------------- + // Buttons / Status Column + // ----------------------- + if (event.status === 'sched') { + const eventButtons = row.locator('.agenda-table-cell-links > .agenda-table-cell-links-buttons') + if (event.flags.showAgenda || ['regular', 'plenary'].includes(event.type)) { + if (event.flags.agenda) { + // Show meeting materials button + await expect(eventButtons.locator('i.bi.bi-collection')).toBeVisible() + // ZIP materials button + await expect(eventButtons.locator(`#btn-lnk-${event.id}-tar`)).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.tgz`) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-tar > i.bi`)).toBeVisible() + // PDF materials button + await expect(eventButtons.locator(`#btn-lnk-${event.id}-pdf`)).toHaveAttribute('href', `/meeting/${meetingData.meeting.number}/agenda/${event.acronym}-drafts.pdf`) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-pdf > i.bi`)).toBeVisible() + } else if (event.type === 'regular') { + // No meeting materials yet warning badge + await expect(eventButtons.locator('.no-meeting-materials')).toBeVisible() + } + // Notepad button + const hedgeDocLink = `https://notes.ietf.org/notes-ietf-${meetingData.meeting.number}-${event.type === 'plenary' ? 'plenary' : event.acronym}` + await expect(eventButtons.locator(`#btn-lnk-${event.id}-note`)).toHaveAttribute('href', hedgeDocLink) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-note > i.bi`)).toBeVisible() + // Chat room + await expect(eventButtons.locator(`#btn-lnk-${event.id}-room`)).toHaveAttribute('href', event.links.chat) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-room > i.bi`)).toBeVisible() + // Video Stream + if (event.links.videoStream) { + await expect(eventButtons.locator(`#btn-lnk-${event.id}-video`)).toHaveAttribute('href', meetingHelper.formatLinkUrl(event.links.videoStream, event, meetingData.meeting.number)) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-video > i.bi`)).toBeVisible() + } + // Onsite Tool + if (event.links.onsitetool) { + await expect(eventButtons.locator(`#btn-lnk-${event.id}-onsitetool`)).toHaveAttribute('href', meetingHelper.formatLinkUrl(event.links.onsitetool, event, meetingData.meeting.number)) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-onsitetool > i.bi`)).toBeVisible() + } + // Audio Stream + if (event.links.audioStream) { + await expect(eventButtons.locator(`#btn-lnk-${event.id}-audio`)).toHaveAttribute('href', meetingHelper.formatLinkUrl(event.links.audioStream, event, meetingData.meeting.number)) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-audio > i.bi`)).toBeVisible() + } + // Remote Call-In + let remoteCallInUrl = null + if (event.note) { + remoteCallInUrl = meetingHelper.findFirstConferenceUrl(event.note) + } + if (!remoteCallInUrl && event.remoteInstructions) { + remoteCallInUrl = meetingHelper.findFirstConferenceUrl(event.remoteInstructions) + } + if (!remoteCallInUrl && event.links.webex) { + remoteCallInUrl = event.links.webex + } + if (remoteCallInUrl) { + await expect(eventButtons.locator(`#btn-lnk-${event.id}-remotecallin`)).toHaveAttribute('href', remoteCallInUrl) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-remotecallin > i.bi`)).toBeVisible() + } + // calendar + if (event.links.calendar) { + await expect(eventButtons.locator(`#btn-lnk-${event.id}-calendar`)).toHaveAttribute('href', event.links.calendar) + await expect(eventButtons.locator(`#btn-lnk-${event.id}-calendar > i.bi`)).toBeVisible() + } + } else { + await expect(eventButtons).toHaveCount(0) + } + } + } + }) +}) + +// ==================================================================== +// AGENDA (live meeting) | DESKTOP viewport +// ==================================================================== + +test.describe('live - desktop', () => { + let meetingData + const currentTime = DateTime.fromISO('2022-02-01T13:45:15', { zone: 'Asia/Tokyo' }) + const liveEvents = [] + let lastLiveEvent = null + + test.beforeAll(async () => { + // Generate meeting data + meetingData = meetingHelper.generateAgendaResponse({ dateMode: 'current' }) + + // Calculate live events + let lastEventStartTime = null + for (const event of meetingData.schedule) { + const eventStart = DateTime.fromISO(event.startDateTime, { zone: 'Asia/Tokyo' }) + const eventEnd = eventStart.plus({ seconds: event.duration }) + if (currentTime >= eventStart && currentTime < eventEnd) { + liveEvents.push(event) + // -> Find last event before current time + if (lastEventStartTime === eventStart.toMillis()) { + continue + } else { + lastEventStartTime = eventStart.toMillis() + lastLiveEvent = event + } + } + // -> Skip future events + if (eventStart > currentTime) { + break + } + } + }) + + test.beforeEach(async ({ page }) => { + // Intercept Meeting Data API + await page.route(`**/api/meeting/${meetingData.meeting.number}/agenda-data`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(meetingData) + }) + }) + + await page.setViewportSize({ + width: viewports.desktop[0], + height: viewports.desktop[1] + }) + + // Override Date in page to fixed time + await page.addInitScript(`{ + // Extend Date constructor to default to fixed time + Date = class extends Date { + constructor(...args) { + if (args.length === 0) { + super(${currentTime.toMillis()}); + } else { + super(...args); + } + } + } + // Override Date.now() to start from fixed time + const __DateNowOffset = ${currentTime.toMillis()} - Date.now(); + const __DateNow = Date.now; + Date.now = () => __DateNow() + __DateNowOffset; + }`) + + // Visit agenda page and await Meeting Data API call to complete + await Promise.all([ + page.waitForResponse(`**/api/meeting/${meetingData.meeting.number}/agenda-data`), + page.goto(`/meeting/${meetingData.meeting.number}/agenda-neue`) + ]) + + // Wait for page to be ready + await page.locator('.agenda h1').waitFor({ state: 'visible' }) + await setTimeout(500) + }) + + // -> LIVE MEETING ELEMENTS + + test('live meeting elements', async ({ page }) => { + const navItemsLocator = page.locator('.agenda .agenda-quickaccess-jumpto > .nav-item') + // Highlighted Live Sessions + await expect(page.locator('.agenda .agenda-table-display-event.agenda-table-live')).toHaveCount(liveEvents.length) + + // Live Red Line + await expect(page.locator('.agenda .agenda-table-redhand')).toBeVisible() + const expectedOffsetTop = await page.locator(`#agenda-rowid-${lastLiveEvent.id}`).evaluate(node => node.offsetTop) + const offsetTop = await page.locator('.agenda .agenda-table-redhand').evaluate(node => node.offsetTop) + const isCloseEnough = offsetTop >= expectedOffsetTop - 15 && offsetTop <= expectedOffsetTop + 15 + await expect(isCloseEnough).toBeTruthy() + + // Jump to Now + await expect(navItemsLocator).toHaveCount(8) + await expect(navItemsLocator.first()).toContainText('Now') + await navItemsLocator.first().click() + await setTimeout(2500) + // red line position isn't pixel perfect on CI, so accept some range + const redlineBoundingBox = await page.locator('.agenda .agenda-table-redhand').boundingBox() + await expect(redlineBoundingBox.y >= -20 && redlineBoundingBox.y <= 20).toBeTruthy() + }) + + // -> HIDE RED LINE + + test('live red line toggle', async ({ page }) => { + // Open settings dialog + await page.locator('.meeting-nav + button').click() + await expect(page.locator('.agenda-settings')).toBeVisible() + // Toggle red line switch + const redlineSwitchLocator = page.locator('#agenda-settings-tgl-redline div[role=switch]') + await redlineSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-redhand')).not.toBeVisible() + await redlineSwitchLocator.click() + await expect(page.locator('.agenda .agenda-table-redhand')).toBeVisible() + // Close dialog + await page.locator('.agenda-settings .agenda-settings-actions > button').last().click() + await expect(page.locator('.agenda-settings')).not.toBeVisible() + }) +}) + +// ==================================================================== +// AGENDA (past meeting) | SMALL DESKTOP/TABLET/MOBILE viewports +// ==================================================================== + +test.describe('past - small screens', () => { + let meetingData + + test.beforeAll(async () => { + // Generate meeting data + meetingData = meetingHelper.generateAgendaResponse({ dateMode: 'past' }) + }) + + for (const vp of ['smallDesktop', 'tablet', 'mobile']) { + test(vp, async ({ page }) => { + // Intercept Meeting Data API + await page.route(`**/api/meeting/${meetingData.meeting.number}/agenda-data`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(meetingData) + }) + }) + + await page.setViewportSize({ + width: viewports[vp][0], + height: viewports[vp][1] + }) + + // Visit agenda page and await Meeting Data API call to complete + await Promise.all([ + page.waitForResponse(`**/api/meeting/${meetingData.meeting.number}/agenda-data`), + page.goto(`/meeting/${meetingData.meeting.number}/agenda-neue`) + ]) + + // Wait for page to be ready + await page.locator('.agenda h1').waitFor({ state: 'visible' }) + await setTimeout(500) + + // -> NARROW QUICK ACCESS PANEL (smallDesktop only) + + if (vp === 'smallDesktop') { + // Alternate labels for buttons + await expect(page.locator('#agenda-quickaccess-filterbyareagroups-btn')).toContainText('Filter...') + await expect(page.locator('#agenda-quickaccess-filterbyareagroups-btn + button')).toContainText('Pick...') + await expect(page.locator('#agenda-quickaccess-calview-btn')).toContainText('Cal View') + await expect(page.locator('#agenda-quickaccess-calview-btn + button')).toContainText('.ics') + // -> Shorter date labels for Jump to buttons + const jumpNavLocator = page.locator('.agenda .agenda-quickaccess-jumpto > .nav-item') + await expect(jumpNavLocator).toHaveCount(7) + for (let idx = 0; idx < 7; idx++) { + const localDateTime = DateTime.fromISO(meetingData.meeting.startDate, { zone: meetingData.meeting.timezone }) + .setLocale(BROWSER_LOCALE) + .plus({ days: idx }) + .toFormat('ccc LLL d') + await expect(jumpNavLocator.nth(idx)).toContainText(localDateTime) + await expect(jumpNavLocator.nth(idx).locator('i.bi')).not.toBeVisible() + } + } + + // Check for elements that should not exist on smaller screens + + if (vp === 'tablet' || vp === 'mobile') { + // has no updated date + await expect(page.locator('.agenda > h4 > h6')).not.toBeVisible() + + // has no timezone dropdown selector + await expect(page.locator('.agenda .agenda-tz-selector + .agenda-timezone-ddn')).not.toBeVisible() + + // has no floor + group indicators + const floorIndLocator = page.locator('.agenda .agenda-table-cell-room > .badge') + const floorIndCount = await floorIndLocator.count() + for (let idx = 0; idx < floorIndCount; idx++) { + await expect(floorIndLocator.nth(idx)).not.toBeVisible() + } + await expect(page.locator('.agenda .agenda-table-cell-group > .badge')).toHaveCount(0) + + // Session buttons should be hidden in a dropdown menu + const linkBtnsLocator = page.locator('.agenda .agenda-table-display-event .agenda-table-cell-links-buttons') + const linkBtnsCount = await linkBtnsLocator.count() + for (let idx; idx < linkBtnsCount; idx++) { + await expect(linkBtnsLocator.nth(idx).locator('> *')).toHaveCount(1) + } + + // TODO: Check for dropdown links once changed to a custom panel with standard links + + // Bottom Mobile Bar + const barBtnLocator = page.locator('.agenda-mobile-bar > button') + + // has no lateral quick access panel + await expect(page.locator('.agenda-quickaccess')).not.toBeVisible() + + // has a bottom mobile bar + await expect(page.locator('.agenda-mobile-bar')).toBeVisible() + await expect(barBtnLocator).toHaveCount(4) + await expect(barBtnLocator.first()).toContainText('Filters') + await expect(barBtnLocator.nth(1)).toContainText('Cal') + await expect(barBtnLocator.nth(2)).toContainText('.ics') + await expect(barBtnLocator.last().locator('> *')).toHaveCount(1) + await expect(barBtnLocator.last().locator('> *')).toHaveClass(/bi/) + + // can open the filters overlay + await barBtnLocator.first().click() + await expect(page.locator('.agenda-personalize')).toBeVisible() + await page.locator('.agenda-personalize .agenda-personalize-actions > button').nth(1).click() + await expect(page.locator('.agenda-personalize')).toBeHidden() + + // can open the calendar view + await barBtnLocator.nth(1).click() + await expect(page.locator('.agenda-calendar')).toBeVisible() + await page.locator('.agenda-calendar .agenda-calendar-actions > button').nth(1).click() + await expect(page.locator('.agenda-calendar')).toBeHidden() + + // can open the ics dropdown + await barBtnLocator.nth(2).click() + const calDdnLocator = page.locator('.n-dropdown-menu > .n-dropdown-option') + await expect(calDdnLocator).toHaveCount(2) + await expect(calDdnLocator.first()).toContainText('Subscribe') + await expect(calDdnLocator.last()).toContainText('Download') + + // can open the settings overlay + await barBtnLocator.last().click() + await expect(page.locator('.agenda-settings')).toBeVisible() + await page.locator('.agenda-settings .agenda-settings-actions > button').nth(1).click() + await expect(page.locator('.agenda-settings')).toBeHidden() + } + }) + } +}) diff --git a/playwright/tests/meeting/floor-plan.spec.js b/playwright/tests/meeting/floor-plan.spec.js new file mode 100644 index 000000000..c997308ef --- /dev/null +++ b/playwright/tests/meeting/floor-plan.spec.js @@ -0,0 +1,129 @@ +const { test, expect } = require('@playwright/test') +const { faker } = require('@faker-js/faker') +const seedrandom = require('seedrandom') +const meetingGenerator = require('../../helpers/meeting.js') +const viewports = require('../../helpers/viewports') +const { setTimeout } = require('timers/promises') + +const TEST_SEED = 123 + +// Set randomness seed +seedrandom(TEST_SEED.toString(), { global: true }) +faker.seed(TEST_SEED) + +// ==================================================================== +// FLOOR-PLAN-NEUE | All Viewports +// ==================================================================== + +test.describe('floor-plan', () => { + let meetingData + + test.beforeAll(async () => { + // Generate meeting data (without schedule data) + meetingData = meetingGenerator.generateAgendaResponse({ dateMode: 'past', skipSchedule: true }) + }) + + for (const vp of ['desktop', 'smallDesktop', 'tablet', 'mobile']) { + test(vp, async ({ page }) => { + // Intercept Meeting Data API + await page.route(`**/api/meeting/${meetingData.meeting.number}/agenda-data`, route => { + route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify(meetingData) + }) + }) + + await page.setViewportSize({ + width: viewports[vp][0], + height: viewports[vp][1] + }) + + // Visit floor plan page and await Meeting Data API call to complete + await Promise.all([ + page.waitForResponse(`**/api/meeting/${meetingData.meeting.number}/agenda-data`), + page.goto(`/meeting/${meetingData.meeting.number}/floor-plan-neue`) + ]) + + // Wait for page to be ready + await page.locator('.floorplan h1').waitFor({ state: 'visible' }) + await setTimeout(500) + + // -> HEADER + + await test.step(`has IETF ${meetingData.meeting.number} title`, async () => { + await expect(page.locator('.floorplan h1').first()).toContainText(`IETF ${meetingData.meeting.number} Floor Plan`) + }) + await test.step('has meeting city subtitle', async () => { + await expect(page.locator('.floorplan h4').first()).toContainText(meetingData.meeting.city) + }) + await test.step('has meeting date subtitle', async () => { + await expect(page.locator('.floorplan h4').first()).toContainText(/[a-zA-Z] [0-9]{1,2} - ([a-zA-Z]+ )?[0-9]{1,2}, [0-9]{4}/i) + }) + + // -> NAV + + await test.step('has the correct navigation items', async () => { + const navItemsLocator = page.locator('.floorplan .meeting-nav > li') + await expect(navItemsLocator).toHaveCount(3) + await expect(navItemsLocator.first()).toContainText('Agenda') + await expect(navItemsLocator.nth(1)).toContainText('Floor plan') + await expect(navItemsLocator.last()).toContainText('Plaintext') + }) + + // -> FLOORS + + await test.step('can switch between floors', async () => { + const floorsLocator = page.locator('.floorplan .floorplan-floors > .nav-link') + const floorImageLocator = page.locator('.floorplan .floorplan-plan > img') + + await expect(floorsLocator).toHaveCount(meetingData.floors.length) + for (let idx = 0; idx < meetingData.floors.length; idx++) { + await expect(floorsLocator.nth(idx)).toContainText(meetingData.floors[idx].name) + await floorsLocator.nth(idx).click() + await expect(floorsLocator.nth(idx)).toHaveClass(/active/) + await expect(page.locator('.floorplan .floorplan-floors > .nav-link:not(.active)')).toHaveCount(meetingData.floors.length - 1) + // Wait for image to load + verify + await expect(floorImageLocator).toBeVisible() + await setTimeout(100) + await expect(await floorImageLocator.evaluate(node => node.naturalWidth)).toBeGreaterThan(1) + } + }) + + // -> ROOMS + + await test.step('can select rooms', async () => { + const roomsLocator = page.locator('.floorplan .floorplan-rooms > .list-group-item') + const floorImageLocator = page.locator('.floorplan .floorplan-plan > img') + const pinLocator = page.locator('.floorplan .floorplan-plan-pin') + const floor = meetingData.floors[0] + await page.locator('.floorplan .floorplan-floors > .nav-link').first().click() + await expect(roomsLocator).toHaveCount(floor.rooms.length) + for (let idx = 0; idx < floor.rooms.length; idx++) { + // Room List + const room = floor.rooms[idx] + await expect(roomsLocator.nth(idx).locator('strong')).toContainText(room.name) + await expect(roomsLocator.nth(idx).locator('strong + small')).toContainText(room.functionalName) + await expect(roomsLocator.nth(idx).locator('.badge')).toContainText(floor.short) + await roomsLocator.nth(idx).click() + await expect(roomsLocator.nth(idx)).toHaveClass(/active/) + await expect(page.locator('.floorplan .floorplan-rooms > .list-group-item:not(.active)')).toHaveCount(floor.rooms.length - 1) + // URL query segment + await expect(page.url()).toMatch(`room=${room.slug}`) + // Pin Drop + const planxRatio = (await floorImageLocator.evaluate(node => node.width)) / floor.width + const planyRatio = (await floorImageLocator.evaluate(node => node.height)) / floor.height + await expect(pinLocator).toBeVisible() + // eslint-disable-next-line no-useless-escape, quotes + const pinMarginLeft = await page.evaluate(`parseInt(window.getComputedStyle(document.querySelector('.floorplan .floorplan-plan-pin')).getPropertyValue('margin-left').match(/\\d+/))`) + const xPos = Math.round((room.left + (room.right - room.left) / 2) * planxRatio) - 25 + pinMarginLeft + const yPos = Math.round((room.top + (room.bottom - room.top) / 2) * planyRatio) - 40 + const offsetLeft = await pinLocator.evaluate(node => node.offsetLeft) + const offsetTop = await pinLocator.evaluate(node => node.offsetTop) + expect(offsetLeft).toBe(xPos) + expect(offsetTop).toBe(yPos) + } + }) + }) + } +}) diff --git a/yarn.lock b/yarn.lock index 3e90ff4c3..de95c28d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2424,6 +2424,15 @@ browserlist@latest: languageName: node linkType: hard +"builtins@npm:^5.0.1": + version: 5.0.1 + resolution: "builtins@npm:5.0.1" + dependencies: + semver: ^7.0.0 + checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 + languageName: node + linkType: hard + "c8@npm:7.12.0": version: 7.12.0 resolution: "c8@npm:7.12.0" @@ -3999,6 +4008,24 @@ browserlist@latest: languageName: node linkType: hard +"eslint-plugin-n@npm:15.2.5": + version: 15.2.5 + resolution: "eslint-plugin-n@npm:15.2.5" + dependencies: + builtins: ^5.0.1 + eslint-plugin-es: ^4.1.0 + eslint-utils: ^3.0.0 + ignore: ^5.1.1 + is-core-module: ^2.10.0 + minimatch: ^3.1.2 + resolve: ^1.22.1 + semver: ^7.3.7 + peerDependencies: + eslint: ">=7.0.0" + checksum: 3be265957b3dda6a049841803335c17689cf98a4b3859eeed3e57b44850b241e7d20640890b2dea7e83816c938fc16274bf78d370f571e211d00d9a3c513f281 + languageName: node + linkType: hard + "eslint-plugin-node@npm:11.1.0": version: 11.1.0 resolution: "eslint-plugin-node@npm:11.1.0" @@ -5089,6 +5116,15 @@ browserlist@latest: languageName: node linkType: hard +"is-core-module@npm:^2.10.0, is-core-module@npm:^2.9.0": + version: 2.10.0 + resolution: "is-core-module@npm:2.10.0" + dependencies: + has: ^1.0.3 + checksum: 0f3f77811f430af3256fa7bbc806f9639534b140f8ee69476f632c3e1eb4e28a38be0b9d1b8ecf596179c841b53576129279df95e7051d694dac4ceb6f967593 + languageName: node + linkType: hard + "is-core-module@npm:^2.3.0, is-core-module@npm:^2.8.1": version: 2.9.0 resolution: "is-core-module@npm:2.9.0" @@ -6947,6 +6983,19 @@ browserlist@latest: languageName: node linkType: hard +"resolve@npm:^1.22.1": + version: 1.22.1 + resolution: "resolve@npm:1.22.1" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e + languageName: node + linkType: hard + "resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.15.1#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": version: 1.22.0 resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b" @@ -6960,6 +7009,19 @@ browserlist@latest: languageName: node linkType: hard +"resolve@patch:resolve@^1.22.1#~builtin": + version: 1.22.1 + resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -7055,6 +7117,7 @@ browserlist@latest: eslint-config-standard: 17.0.0 eslint-plugin-cypress: 2.12.1 eslint-plugin-import: 2.26.0 + eslint-plugin-n: 15.2.5 eslint-plugin-node: 11.1.0 eslint-plugin-promise: 6.0.1 eslint-plugin-vue: 9.4.0 @@ -7221,7 +7284,7 @@ browserlist@latest: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.6": +"semver@npm:^7.0.0, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7": version: 7.3.7 resolution: "semver@npm:7.3.7" dependencies: